我刚刚完成了 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
提前致谢!
答案1
它不仅检查/srv/redmine/.htaccess
,还检查/srv/.htaccess
和/.htaccess
。如果启用,Apache 将统计每个请求的位置AllowOverride
- 它只记录那个,因为它存在,但 Apache 运行的用户无法访问它。请参阅这里。
.htaccess
不过,它试图打开无法打开的文件这一事实应该不会影响应用程序是否正常运行。除了该警告之外,应用程序还存在什么问题?