保存在 ramdisk 中的 php session

标签 php apache session centos ramdisk

我正在尝试将我的 php session 保存在 ramdisk 上。我有权限问题,但我看不出问题出在哪里。

  1. 我有虚拟磁盘:

    /dev/ram0 407M 2.4M 404M 1%/var/lib/php/session/ramd

  2. 我有权限:

    drwxrwx---。 3 root apache 1024 Mar 24 01:53 ramd

  3. 我的错误:

    警告:session_start(): open(/var/lib/php/session/ramd/sess_b0ko6hl3p6ojj2ot3qfqvm9km1, O_RDWR) failed: Permission denied (13) in/var/www/html/index.php on line 3警告:未知:打开(/var/lib/php/session/ramd/sess_b0ko6hl3p6ojj2ot3qfqvm9km1,O_RDWR)失败:第 0 行未知中的权限被拒绝(13)警告:未知:无法写入 session 数据(文件)。请验证 Unknown on line 0 中 session.save_path 的当前设置是否正确(/var/lib/php/session/ramd)

  4. 在 php.ini 中,session.save_path 变量设置为 "/var/lib/php/session"

  5. 在我的脚本中,我将 session.save_path 设置为 "var/lib/php/session/ramd"

如果我卸载我创建的 ramdisk,我可以将我的 session 保存在/rand 文件夹中。它我安装..我不能。我还尝试了 chmod root:root/apache:apache 和 chmod 0777 1777。现在是 0770。

我使用:CentOS 6.4、PHP 5.3.3、Apache/2.2.15

谁能帮我解决这个问题??

乐:

[root@localhost ~]# ps aux | grep apache
apache    2355  0.0  0.4 394868  7840 ?        S    01:53   0:00 /usr/sbin/httpd
apache    2356  0.0  0.4 394876  7844 ?        S    01:53   0:00 /usr/sbin/httpd
apache    2357  0.0  0.4 394876  7824 ?        S    01:53   0:00 /usr/sbin/httpd
apache    2358  0.0  0.4 394876  7816 ?        S    01:53   0:00 /usr/sbin/httpd
apache    2360  0.0  0.4 394876  7900 ?        S    01:53   0:00 /usr/sbin/httpd
apache    2361  0.0  0.4 394876  7800 ?        S    01:53   0:00 /usr/sbin/httpd
apache    2362  0.0  0.4 394876  7844 ?        S    01:53   0:00 /usr/sbin/httpd
apache    2363  0.0  0.4 394868  7716 ?        S    01:53   0:00 /usr/sbin/httpd
root      3119  0.0  0.0 103248   868 pts/0    S+   02:52   0:00 grep apache

[root@localhost ~]# ps aux | grep php
root      3132  0.0  0.0 103244   868 pts/0    S+   02:54   0:00 grep php

最佳答案

执行以下命令查看 SELinux 是否处于强制模式:

# sestatus

如果是这样,您可能想通过以 root 身份(或使用 sudo)运行以下命令来尝试禁用 SELinux:

# setenforce 0

这将使 SELinux 停止执行任何策略。如果这解决了问题,您将不得不关闭 SELinux 或增加策略以允许此新路径正确运行。如果确实达到了这一点,请引用 https://serverfault.com/a/323528/165777有关如何执行该步骤的一些信息!

此外,如果这没有产生影响和/或您想重新启用 SELinux,请执行:

# setenforce 1

关于保存在 ramdisk 中的 php session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15596843/

相关文章:

php - 如何在 Yii 2 中启用 'Web' 日志?

apache - 重写所有带有 .html 扩展名的 url(index.html 除外)

apache - 从不同的计算机访问修改后的 localhost 目录

javascript - 如何在浏览器窗口关闭时终止应用程序 session ?

php - Model.php 行 827 : Class not found 中的 Laravel FatalErrorException

php - JavaScript 无法在 <head> 或 <body> 标签内工作

php - 当来自第 3 方 IFRAME 时,Chrome 不保留我的 _SESSION 变量,但直接访问时效果很好

node.js - Node, express, passport - 更新记录后更新 session

php - 在什么情况下可以在浏览器中查看 PHP 文件的源代码?

linux - 在 Debian 中使用 apache 托管站点