Мои настройки производятся следующим образом:
- Ubuntu 10.10
- рельсы 3.1.1
- Пассажир 3.0.9
- Синатра 1.3.1
- Apache 2.2.17
Я протестировал свое приложение на своей машине для разработки без проблем, но при развертывании на моем производственном сервере появляется сообщение об ошибке «Страница не найдена» (не обычная apache).
Я могу работать с помощью rackup config.ru без проблем, поэтому предположим, что это проблема apache / passenger и, возможно, связана с путем. Теперь я устал на двух разных серверах, оба выдают одну и ту же ошибку.
Мой файл config.ru выглядит следующим образом:
require 'rubygems'
require 'sinatra'
use Rack::ShowExceptions
#set :public_folder, File.expand_path(File.dirname(__FILE__) + "/public")
#set :views, File.expand_path(File.dirname(__FILE__) + "/views")
root_dir = File.dirname(__FILE__)
set :root, root_dir
disable :run
FileUtils.mkdir_p 'log' unless File.exists?('log')
log = File.new("log/sinatra.log", "a")
$stdout.reopen(log)
$stderr.reopen(log)
#use Rack::ShowExceptions
require File.dirname(__FILE__) + "/bin/hsloginapp"
run Sinatra::Application
Файл моего виртуального хоста:
<VirtualHost *:4090>
ServerName sinatra-demo.xxxxxxx.net
DocumentRoot "/var/www/html/hsloginapp/production/current/public"
<Directory /var/www/html/hsloginapp/public>
Order allow,deny
Allow from all
Options FollowSymLinks
</Directory>
</VirtualHost>
Мое приложение слишком сложное, чтобы вставлять все сюда, но я рад вставить части, если требуется.
У меня нет проблем с простым приложением sinatra, и поэтому я чувствую, что все работает нормально. Теперь потратил четыре дня на это - это сводит меня с ума.
Не могу даже увидеть, откуда идет этот 404. Все, что я вижу в моем файле sinatra.log:
[16/Oct/2011 20:55:41] "GET / " 404 18 0.0008
У меня нет индексного файла в моей общей папке - хотя у меня его нет в других моих приложениях для пассажиров / рельсов ...
Любые предложения с благодарностью !!
- ОБНОВЛЕНИЕ -
Думая, что мой конфиг apache мог быть заполнен, я установил nginx и получил ту же страницу Not Found. Которого, похоже, нет в моей файловой системе.
Просматривая журнал Синатры, я вижу, что вебрик запускается - хотя я понятия не имею, почему?
2011-10-22 15:13:12] INFO WEBrick 1.3.1
[2011-10-22 15:13:12] INFO ruby 1.8.7 (2010-08-16) [x86_64-linux]
[2011-10-22 15:13:17] WARN TCPServer Error: Address already in use - bind(2)
== Someone is already performing on port 4990!
94.194.200.254 - - [22/Oct/2011 15:13:17] "GET / " 404 18 0.0636
94.194.200.254 - - [22/Oct/2011 15:13:18] "GET /favicon.ico " 404 18 0.0012
Думаю, в этом проблема ?! Нужна помощь:)
- ОБНОВЛЕНИЕ 2 -
Только что заметил в моем журнале ошибок nginx, что система пытается загрузить public / index.html
*9 "/var/www/html/hotspotlogin/public/index.html" is not found (2: No such file or directory)
Разве пассажир / nginx не должен знать, что здесь делать ??!