2013-03-24 39 views
3

我试图把我的php会话保存在ramdisk上。我有一个权限问题,但我不明白是什么问题。保存在ramdisk中的php会话

  1. 我有ramdisk的:

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

  2. 我的权限:

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

  3. 我的错误:

    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

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

  5. 在我的剧本我的session.save_path设置为"var/lib/php/session/ramd"

如果我umont我创建ramdisk的,我能救我的会话在/ rand文件夹中。我挂载..我不能。我也尝试搭配chmod根:根/阿帕奇:阿帕奇使用chmod 0777 1777现在是0770.

我使用:CentOS的6.4,PHP 5.3.3,阿帕奇/ 2.2.15

任何人可以帮助我问题??

LE:

[[email protected] ~]# 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 

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

你尝试你写下什么,或者你真的这样做:'乔敦 - R的root:root/var/lib/php/session/ramd'和'chmod -R 0777/var/lib/php/session/ramd'? – 2013-03-24 09:25:00

+0

是的,我试着写一个简短的版本:)。 'chown -R root:root/var/lib/php/session/ramd chmod -R 0777/var/lib/php/session/ramd'和'chown -R apache:apache/var/lib/php/session/ramd chmod -R 0777/var/lib/php/session/ramd' – Crsr 2013-03-24 09:41:18

+0

PHP是以cgi进程运行还是作为apache模块运行?你能显示'ps aux'命令的输出,只有apache/php进程吗? – Alexey 2013-03-24 09:50:37

回答

0

执行以下,看是否SELinux的是在执行模式:

# sestatus 

如果是这样,你可能想尝试通过运行下面的根禁用SELinux的(或与sudo):

# setenforce 0 

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

另外,如果未造成冲击和/或要重新启用SELinux的,执行:

# setenforce 1