我正在尝试设置支持 PHP 的 Lighttpd 网络服务器。我基本上按照本文,但重新启动服务器后(虽然我没有收到错误消息并systemctl status lighttpd.service
声称它正在运行),服务器没有响应。
其中/var/log/lighttpd/error.log
说
(mod_fastcgi.c.978) bind failed for: unix:/var/lib/lighttpd/sockets/php-fastcgi-1.socket-0 Permission denied
这本身就是一条直截了当的消息,显然服务器缺乏访问var/lib/lighttpd/sockets
目录的权限。但是,我确实将目录的所有权(递归)更改为,lighttpd:lighttpd
并ls -al /var/lib/lighttpd
给出了以下信息:
drwxr-xr-x. 3 lighttpd lighttpd 4096 Mar 13 17:12 .
drwxr-xr-x. 42 root root 4096 Mar 13 17:10 ..
drwxr-xr-x. 2 lighttpd lighttpd 4096 Mar 13 17:12 sockets
看起来这已经成功了,服务器应该拥有所有必要的权限。这里是不是有什么我没看到的地方?
答案1
看起来像是 SELinux 的问题。您可以暂时禁用 SELinux 并测试此理论。尝试在命令行上执行
sudo echo 0 >/selinux/enforce
然后重启 lighttpd。看看它是否能正常工作。如果不起作用,则不是 SELinux 问题。重启机器以重新启用 SELinux 或执行:
sudo echo 1 >/selinux/enforce
如果它确实解决了问题,您可以禁用 SELinux 或将其设置为宽容以永久解决问题,如下所示:
编辑/etc/selinux/config
并设置
SELINUX=enforcing
到
SELINUX=permissive
然后重新启动。不要将 SELinux 设置为禁用,因为这可能会在您稍后希望重新激活 SELinux 时造成麻烦。