我用
- Centos 7(最新更新)
- Apache 2.4.6
- PHP 7.2
我想更改服务器上存储会话的目录,默认目录是/var/lib/php/session/
,我可以毫无问题地使用这个目录,但是当我更改PHP.ini
文件中的目录时,出现错误:
session_start(): open(/var/www/session/sess_dug784eu96aj06eh1gte4hak2f, O_RDWR) failed: Permission denied (13)
我还在php.conf
里面进行了编辑/etc/httpd/conf.d
并删除了此行以阻止会话目录被覆盖:
php_value session.save_path "/var/lib/php/session"
如您所见,我使用/var/www/session/
新目录来存储会话,并且该目录存在并具有与默认目录完全相同的权限:
0770 / owner : root / group : Apache
我还尝试将现有会话文件从默认目录复制到新目录,但仍然出现相同的错误!
感谢您的帮助。
答案1
好的,我找到了解决方案,谢谢@womble 指出问题所在,我至少可以用正确的方式进行搜索,
如果其他人遇到同样的问题,则必须禁用 SELinux(不推荐),或者必须将其配置为允许 Apache 访问新目录:
chcon -t httpd_sys_rw_content_t /var/www/session -R