在Linux下,PHP-FPM(FastCGI Process Manager)的权限设置对于确保系统安全和正常运行非常重要。以下是一些建议的权限设置:
用户和组设置:
PHP-FPM通常以一个特定的用户和组身份运行,例如www-data或php-fpm。这样可以限制PHP-FPM进程访问其他系统资源的能力。你可以在/etc/php-fpm.d/www.conf(或其他相应的配置文件)中找到这些设置。
user = www-data
group = www-data
确保这个用户和组拥有访问你的网站文件和目录的权限。通常,将文件权限设置为644,目录权限设置为755是一个不错的选择。
监听套接字或端口的权限: PHP-FPM可以通过Unix套接字或TCP/IP端口与Web服务器通信。确保监听套接字的文件权限设置正确,以防止未经授权的访问。例如,如果你使用Unix套接字,可以这样设置:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
如果你使用TCP/IP端口,请确保防火墙允许相应的端口通信。
文件和目录权限: 确保你的网站文件和目录权限设置正确。通常,将文件权限设置为644,目录权限设置为755是一个不错的选择。对于包含敏感信息的文件(如数据库配置文件),可以设置更严格的权限,例如600。
PHP-FPM进程限制:
在/etc/php-fpm.d/www.conf中,你可以设置PHP-FPM进程的数量和资源限制。例如,你可以限制每个子进程的最大请求数,以防止内存泄漏:
pm.max_requests = 500
你还可以设置进程管理器类型(如dynamic、static或ondemand)以及启动的子进程数量。
安全模块和配置:
根据你的需求,可以考虑启用PHP安全模块,如OPcache、Xdebug等。同时,确保你的PHP配置文件(php.ini)中的设置是安全的,例如禁用危险的功能(如allow_url_fopen)。
总之,确保PHP-FPM在Linux下的权限设置正确,可以提高系统安全性并防止潜在的攻击。请根据你的具体需求和环境调整这些建议。