无法在 apache RedHat 上使用 session_start()
Posted
技术标签:
【中文标题】无法在 apache RedHat 上使用 session_start()【英文标题】:Cannot use session_start() on apache RedHat 【发布时间】:2021-04-19 00:58:09 【问题描述】:完整的错误是...
Warning: session_start(): open(../../ses/sess_38tlqpsudl0vr77vsipikik025, O_RDWR) failed: Permission denied (13) in /var/www/html/UK_Libraries_Site/shared/classes/StaffUtils.class.php on line 361
Warning: session_start(): Failed to read session data: files (path: /var/www/html/UK_Libraries_Site/ses) in /var/www/html/UK_Libraries_Site/shared/classes/StaffUtils.class.php on line 361
使用 Red Hat Enterprise Linux 8.3 版 (Ootpa)
完整项目目录和所有权的 777 权限匹配 httpd apache:apache
我知道这已被到处引用,但我无法让它工作,这让我认为这是 Red Hat 的事情,这不是我第一次在此服务器上遇到 RedHat 特定问题。在本地一切正常。
我还更改了“var/lib/php/session”中库目录的所有权和权限(我知道错误表明它在不同的目录中,但为什么不尝试一切)就像他们在Cannot start session without errors in phpMyAdmin 中提到的那样。
我尝试过不同的浏览器、清除 cookie 和缓存、不同的设备,甚至拔掉头发,但没有任何效果。
调用 session_start() 的方法在 $path = "../../ses"; (错误中给出的目录)
ini_set("session.save_path", "$path");
ini_set("session.gc_maxlifetime", "3600");
//start the session
session_start();
如果您知道问题是什么,甚至还有其他未提及的方法,请告诉我。
【问题讨论】:
【参考方案1】:问题是特定于 RedHat 的,请参阅 https://www.serverlab.ca/tutorials/linux/web-servers-linux/configuring-selinux-policies-for-apache-web-servers/
下面使用的命令(ses 是目录名) sudo chcon -R -t httpd_sys_rw_content_t ses
【讨论】:
以上是关于无法在 apache RedHat 上使用 session_start()的主要内容,如果未能解决你的问题,请参考以下文章
org.apache.shiro.session.InvalidSessionException: java.lang.IllegalStateException: getAttribute: Ses