Я только что закончил перенос своей установки Redmine, и после тестирования ее с помощью webrick все прошло нормально, и сайт действительно хорошо работал с http://localhost:3000
Затем я установил и настроил mod_passenger, добавил отдельный виртуальный хост и просто скопировал конфигурацию с предыдущего сервера. Поскольку абсолютный путь приложения не изменился, я предположил, что оно будет работать сразу же, но это было неправдой, и, по-видимому, пассажир не получает доступ к нужному каталогу. Вот что появляется в журнале ошибок для этого виртуального хоста:
Permission denied: /srv/redmine/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
Вот файлы конфигурации:
Виртуальный хост
<VirtualHost *:80>
ServerName redmine
DocumentRoot /srv/redmine/public
ErrorLog /var/log/apache2/redmine_error.log
RailsEnv production
PassengerRoot /srv/redmine/public
<Directory /srv/redmine/public>
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
allow from all
RailsBaseURI /
PassengerResolveSymlinksInDocumentRoot on
</Directory>
</VirtualHost>
Файл конфигурации пассажира
<IfModule mod_passenger.c>
PassengerRoot /usr
PassengerRuby /usr/bin/ruby
PassengerDefaultUser www-data
# Below are some lines to tweak mod-passenger.
# This keeps some Ruby processes running,
# but the average response time is a lot lower
# on low-traffic sites.
RailsSpawnMethod smart
PassengerPoolIdleTime 3000
RailsAppSpawnerIdleTime 0
PassengerMaxRequests 1000
</IfModule>
Любые идеи, почему (согласно ошибке) Пассажир пытается найти .htaccess в /srv/redmine/
тогда как он должен был искать /srv/redmine/public/
?
Я также должен отметить, что каталог public / ниже был рекурсивно изменен с помощью chmodded 755
Заранее спасибо!
Это не только проверка /srv/redmine/.htaccess
, это также проверка /srv/.htaccess
и /.htaccess
. Apache будет регистрировать эти местоположения для каждого запроса, если AllowOverride
включен - он просто регистрирует только тот, поскольку он существует, но недоступен для пользователя, от имени которого запущен Apache. Видеть Вот.
Тот факт, что он пытается открыть .htaccess
файл, который он не может открыть, не должен иметь никакого отношения к работе приложения. Какие проблемы возникают у приложения, кроме этого предупреждения?