我有一台 Ubuntu 服务器(16.04.3 LTS),安装了 Apache 2.4.18 和 redmine,如下所示本安装指南。
因此我编辑了我的 ssl.confapache2/sites-available
并添加了以下几行:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
...
<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>
</VirtualHost>
</IfModule>
这曾经可以工作几个月,但今天我编辑了ssl.conf
以添加另一个位置。现在 Apache 重启失败并systemctl status apache2.service
显示以下错误消息:
无效命令‘PassengerResolveSymlinksInDocumentRoot’,可能是拼写错误或由服务器配置中未包含的模块定义
我既没有更改 redmine 部分的任何内容,ssl.conf
也没有启用或禁用任何 Apache 模块。
即使恢复更改也无助于避免出现此错误消息。
评论PassengerResolveSymlinksInDocumentRoot
使 Apache 再次工作,但禁用 redmine 安装。
passenger-config validate-install
如果该行被注释掉,则返回零错误;如果该行被取消注释,则返回“您的 Apache 安装可能已损坏”。
有什么方法可以修复此错误吗?或者我应该检查其他文件来修复此错误吗?
答案1
我已经解决了这个问题
PassengerResolveSymlinksInDocumentRoot
根据以下说明,该选项已在 5.2.0 版本中删除:
https://blog.phusion.nl/2018/01/29/passenger-5-2-0/
因此有两种方法可以解决这个问题
1.不要在 DocumentRoot 中使用符号链接
2.在虚拟主机Apache中使用参数PassengerAppRoot(如果您在DocumentRoot中使用符号链接)
<VirtualHost *:443>
ServerName myservername
DocumentRoot /var/www/redmine
PassengerAppRoot /opt/redmine/redmine
…
</VirtualHost>
# ls -l /var/www/redmine
lrwxrwxrwx 1 root root 27 Apr 27 2017 /var/www/redmine -> /opt/redmine/redmine/public