我使用的服务器是 Centos 7 和 nginx,PHP5.4。我托管 Magento,一切运行良好。现在我只需删除已安装的 PHP5.4,然后安装 PHP7,并更改所有需要的内容
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx
我还使用 setenforce 0 将 SELINUX 设置为 permissive。需要注意的是,安装 PHP5.4 时,必须遵循该教程https://www.cloudinsidr.com/content/troubleshooting-php-7-tcp-sockets-with-selinux-on-centos-7-rhelfedora/让 php-fpm 工作,否则我会收到禁止错误。
现在安装 PHP7 并更改所有需要的内容后,如果我运行
sudo cat /var/log/nginx/error.log
2016/08/10 13:15:54 [alert] 2118#2118: setrlimit(RLIMIT_NOFILE, 100000) failed (1: Operation not permitted)
前端是 502 Bad Gateway。所以我认为这可能是与 PHP5.4 相同的问题,所以我再次执行了该教程。但问题仍然没有解决。
笔记
我没有更改任何文件夹或文件权限。那么问题出在哪里?
谢谢
答案1
SELinux 太烂了。
但除非您确切知道自己在做什么,否则我不建议禁用它/长时间以非强制方式运行。
哪里有问题?
虽然您可能需要花几个月的时间来了解 SELinux 和 Redhat 类型强制策略应该如何工作(我们将跳过它并不总是以这种方式工作的事实)但我希望您正在寻找更快的解决方案。
反而:
- 向 NSA 和 Redhat 的 SELinux 维护者献上小小的血祭
- 重新标记所有内容 (
touch /.autorelabel ; reboot
) - 通过命令行将其设置为非强制(setenforcing 0)
- 尝试对系统的所有功能进行回归测试
- 使用 audit2allow 创建例外策略
- 启用策略
- 再次发出强制令
- 定期重复上述步骤
或者重新格式化您的服务器,安装 OpenSuse 或 Ubuntu 并使用 Apparmor。
答案2
尝试这个 :
猫/etc/security/limits.d/nofile.conf
- 软文件 10000
- 硬文件 1000000