3

PHPセッションをRAMディスクに保存しようとしています。許可の問題がありますが、どこに問題があるのか​​ わかりません。

  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. 私のエラー:

    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"

作成した RAM ディスクをマウントすると、セッションを /rand フォルダーに保存できます。マウントできません。chmod 0777 1777 で chmod root:root / apache:apache も試しました。今は 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
4

1 に答える 1

0

以下を実行して、SELinux が強制モードになっているかどうかを確認します。

# sestatus

その場合は、root として (または sudo を使用して) 以下を実行して、SELinux を無効にしてみてください。

# setenforce 0

これにより、SELinux はポリシーの適用を停止します。これで問題が解決した場合は、SELinux をオフのままにするか、ポリシーを拡張して、この新しいパスが正しく機能するようにする必要があります。その時点まで到達した場合は、その手順を実行する方法について、https://serverfault.com/a/323528/165777を参照してください。

また、それが影響を及ぼさなかった場合、および/または SELinux を再度有効にしたい場合は、次を実行します。

# setenforce 1
于 2013-03-25T14:49:50.473 に答える