PHP会话保存在RAM磁盘中

3
我正在尝试将我的php会话保存在ramdisk上。我遇到了权限问题,但我看不出问题所在。
  1. 我有ramdisk:
  2. /dev/ram0 407M 2.4M 404M 1% /var/lib/php/session/ramd

  3. 我有权限:
  4. drwxrwx---. 3 root apache 1024 Mar 24 01:53 ramd

  5. 我的错误信息:
  6. Warning: 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 Warning: Unknown: open(/var/lib/php/session/ramd/sess_b0ko6hl3p6ojj2ot3qfqvm9km1, O_RDWR) failed: Permission denied (13) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session/ramd) in Unknown on line 0

  7. 在php.ini中,session.save_path变量设置为"/var/lib/php/session"
  8. 在我的脚本中,我将session.save_path设置为"var/lib/php/session/ramd"

如果我卸载我创建的ramdisk,我可以将会话保存在/rand文件夹中。如果我挂载..就不行。我还尝试了chmod root:root / apache:apache以及chmod 0777 1777。现在是0770。

我使用的是CentOS 6.4,PHP 5.3.3,Apache/2.2.15

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

LE:

[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

你尝试过你写下的内容了吗?还是你实际执行了:chown -R root:root /var/lib/php/session/ramdchmod -R 0777 /var/lib/php/session/ramd - Rick Kuipers
是的,我尝试写一个简短的版本:)。chown -R root:root /var/lib/php/session/ramd chmod -R 0777 /var/lib/php/session/ramdchown -R apache:apache /var/lib/php/session/ramd chmod -R 0777 /var/lib/php/session/ramd - Crsr
Apache模块。我会为ps aux编辑我的问题。 - Crsr
1
在使用 CentOS 一段时间后,我发现禁用 SELinux 是解决许多权限问题的答案。 - dev-null-dweller
1
如果以root身份运行chown apache:apache /var/lib/php/session/ramd,然后再试试呢? - Alexey
显示剩余2条评论
1个回答

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

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

这将使SELinux停止执行任何策略。如果这解决了问题,您将不得不关闭SELinux或增加策略以允许这个新路径正确工作。如果到了那一步,请参考https://serverfault.com/a/323528/165777获取有关如何执行该步骤的信息!

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

# setenforce 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接