![Apache 启动错误,符号链接配置文件具有 777 权限](https://linux22.com/image/145871/Apache%20%E5%90%AF%E5%8A%A8%E9%94%99%E8%AF%AF%EF%BC%8C%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%85%B7%E6%9C%89%20777%20%E6%9D%83%E9%99%90.png)
带有 Apache 2.4.7 的 Ubuntu 虚拟机
我收到这些错误:
apache2: Syntax error on line 216 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/conf-enabled/servername.conf: No such file or directory Action 'configtest' failed.
注意:当我运行时apachectl configtest
,它说Syntax OK
但是有这样一个文件!事实上,Apache 自己发现了这一切。上面提到的第 216 行是IncludeOptional conf-enabled/*.conf
.所以我猜它形成了一个外壳扩展并获取了conf文件列表,然后确定其中一个不存在。为什么?
众所周知, in/etc/apache2/conf-enabled
是一堆指向 中文件的符号链接/etc/apache2/conf-available
,用a2enconf
.
就我而言,servername.conf
inconf-available
本身就是一个符号链接,指向我自己的一组用于设置虚拟机的配置文件(用于 apache 和其他服务)。由于某种原因,尽管 Apache 找到了符号链接,但它报告它不存在。我不明白为什么这是一个问题,因为 phpMyAdmin 使用另一个符号链接来链接到其配置文件并且不会导致错误。
phpMyAdmin 文件和我的文件之间的一个区别是我的文件(及其所有父目录)具有 777 权限。它位于从虚拟机外部安装的共享文件夹中(与 Windows 8.1 主机共享)。
Apache 配置文件中的 777 权限是否有问题?
编辑:这是ls -l
评论中要求的输出。
vagrant@vagrant-ubuntu-trusty-64:/vagrant/data$ ls -l /etc/apache2/conf-enabled/servername.conf lrwxrwxrwx 1 root root 33 Jun 29 2016 /etc/apache2/conf-enabled/servername.conf -> ../conf-available/servername.conf
这是符号链接的符号链接:
vagrant@vagrant-ubuntu-trusty-64:/etc/apache2/conf-available$ ls -l servername.conf lrwxrwxrwx 1 root root 31 Jun 29 2016 servername.conf -> /vagrant/config/servername.conf
这是常规文件:
vagrant@vagrant-ubuntu-trusty-64:/vagrant/config$ ls -l servername.conf -rwxrwxrwx 1 vagrant vagrant 24 Jun 29 2016 servername.conf