无法在 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()的主要内容,如果未能解决你的问题,请参考以下文章

Apache编译后无法正常工作

org.apache.shiro.session.InvalidSessionException: java.lang.IllegalStateException: getAttribute: Ses

redhat5.2下的 Apache2.2服务开机启动,如何不让他自动运行!!

RedHat 7 安装配置Apache 2.4

RedHat 7 安装配置Apache 2.4

Linux Redhat 6.5 apache虚拟目录和多端口多主机名配置