php-fpm 和 mkdir() 权限被拒绝-但 libphp7-zts.so 工作正常

php-fpm 和 mkdir() 权限被拒绝-但 libphp7-zts.so 工作正常

我有一个 Concrete5 网站,需要将其从 libphp7-zts 移至 php-fpm。

我已使用 Unix 套接字正常配置 PHP-FPM,并且 PHP(例如“PHP 信息”)正常运行。我已确保 PHP-FPM 以“Apache”用户和“Apache”组 (RHEL7) 身份运行。

php-fpm相关配置:

[www]

user = apache
group = apache

listen = /run/php-fpm/www.sock

listen.owner = apache
listen.group = apache
listen.mode = 0660

listen.allowed_clients = 127.0.0.1

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on

php_value[session.save_handler] = files
php_value[session.save_path]    = /var/lib/php/fpm/session
php_value[soap.wsdl_cache_dir]  = /var/lib/php/fpm/wsdlcache

不幸的是,当应用程序(CMS,Concrete5)尝试对内容执行任何操作时,我收到“权限被拒绝”的消息 - 因此如标题所示:

mkdir() 权限被拒绝。

Selinux 处于宽容模式,文件和文件夹的权限似乎没问题,因为(现在不受支持的)libphp7-zts 运行良好。

任何想法都值得赞赏。提前谢谢

答案1

我发现并更正了此设置的问题。这是配置中应该归咎的部分:

php_value[session.save_path]    = /var/lib/php/fpm/session
php_value[soap.wsdl_cache_dir]  = /var/lib/php/fpm/wsdlcache

php.ini因此,您所输入的任何内容session.save_path都会被覆盖(可以这么说),并且需要 php-fpm 运行的用户拥有正确的权限才能写入。在我的实例中,我已将其与 php.ini 配置匹配,并且似乎按预期工作。

希望有帮助

相关内容