我有一个 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 配置匹配,并且似乎按预期工作。
希望有帮助