0

最近 FC13 をインストールし、収集したデータを特定のディレクトリにキャッシュするメカニズムを PHP コードに記述しようとしています (ここでは、/var/www/html/_php_resources/cache と呼びます)。

ファイルを /var/www/html ディレクトリにコピーし、新しいデータに対して実行chown -R apache:apache /var/www/html/*します。chmod a+w /var/www/html/_php_resources/cache現時点では、便宜上、グローバル書き込み権限を使用しています。後で権限を調整します。

chmodまたはmkdirPHP 関数を使用しようとすると、次のようになります。

警告: chmod(): /var/www/html/_include/php/CacheInit.php で許可が拒否されました

また

警告: mkdir(): /var/www/html/_include/php/CacheInit.php で許可が拒否されました

今、SELinux を無効にすると、すべて正常に動作します。問題は、誰かがそのような明示的な制御を持っていないサーバーに移植できるように、SELinux を無効にして実際に正しく権限を設定したくないということです。

例として、私の個人サイトのホストでは、ディレクトリに読み取り/書き込み権限を設定できますが、SELinux ポリシーの変更は許可されません。


ご参考までに:

  • uname -r = 2.6.34.7-56.fc13
  • * php -バージョン * = PHP 5.3.3
  • rpm -qa | grep httpd = httpd-2.2.16-1.fc13

誰か提案はありますか?

4

1 に答える 1

1

PHPからmkdirしようとして、同じ問題がありました。Googleに関する情報はそれほど多くありませんが、これが私が見つけたものであり、これが正しい解決策だと思います. apache がディレクトリを作成するディレクトリにラベルを付ける必要があります。

ラベルは「httpd_sys_script_rw_t」である必要があり、ここでその情報を見つけました:http://docs.fedoraproject.org/en-US/Fedora_Core/5/html/SELinux_FAQ/index.html#id672528

ディレクトリにラベルを付ける方法は次のchcon -R -t httpd_sys_script_rw_t <dir> とおりです

これが誰かを助けることを願っています。

于 2012-05-12T12:49:28.180 に答える