Actions
Bug(バグ) #2279
openApacheモジュール版PHP で safe mode を有効にしている環境では cache ディレクトリ以下に作成されたファイルの一部が読み込めない
Start date:
2011-07-19
Due date:
% Done:
0%
Estimated time:
3.6 で発生するか:
Yes
3.8 で発生するか:
Description
Overview (現象)¶
Apacheモジュール版PHP で safe mode を有効にしている環境では cache ディレクトリ以下に作成されたファイルの一部が読み込めない
Causes (原因)¶
Apacheモジュール版PHP で safe mode を有効にしている環境では、実行可能な権限に設定されていても、実行する web/index.php の所有者と所有者が一致したファイルしか読み込めない。
その為、ブラウザアクセスがトリガーで cache 以下に作成される所有者が apache のファイルを読み込むことが出来ないため、OpenPNE3は上記環境下では正常に動作しない。
Way to fix (修正内容)¶
修正方針¶
【案】ブラウザアクセス駆動でキャッシュディレクトリ下に作成されるディレクトリ・ファイルをインストール時などににあらかじめ作成しておく。
元のバグ報告内容¶
【補足2】CORESERVER の safe mode 下で OpenPNE を動作させるためにやったこと
- キャッシュディレクトリ下に作成されうるサブディレクトリをあらかじめ作成し、webディレクトリのPHPスクリプトファイルの所有者と一致させた
- safe_mode のファイルアクセスの制限を回避するため、キャッシュディレクトリ下に作成されうるすべてのサブディレクトリの所有者がwebディレクトリのPHPスクリプトファイルの所有者と一致している必要がある
- PHPスクリプトファイルの所有者がPHP実行ユーザーと異なる状態で動作させる場合、キャッシュディレクトリ下にあらかじめPHPスクリプトファイルの所有者がサブディレクトリを作成しておく必要がある
- 今回は招待メールの送信に必要なキャッシュディレクトリのみを事前に作成した状態で検証を行った
- ただし、この方法でOpenPNEの全機能を正常に動作させるためには、キャッシュディレクトリ下に作成されうるすべてのサブディレクトリを事前に推測する必要があり、非常に困難である
- PHPスクリプトファイルの所有者の方をPHPの実行ユーザーにする方法を取る場合
- CORESERVER においては Apache 経由でディレクトリ、ファイルの所有者を変更する必要がある(未検証)
- 初期状態の include_path が "." のみになるようにした
- CORESERVER 側の設定にあらかじめ含まれている
/usr/local/lib/php
への realpath() 関数の適用で Warning が発生したため - config/ProjectConfiguration.class.php の冒頭に以下の記述を追加した
set_include_path('.');
- CORESERVER 側の設定にあらかじめ含まれている
- セッションストレージの設定を DB に変更した(これはおそらく必須ではない)
# config/OpenPNE.yml session_storage: name: "database" options:
Updated by Shingo Yamada over 13 years ago
- Tracker changed from Bug(バグ) to Enhancement(機能追加・改善)
Updated by Shingo Yamada over 13 years ago
- Subject changed from PHPのsafe modeを使用している環境で動作しない to PHPのsafe modeを使用している環境で動作しない点の改善
Updated by Shingo Yamada over 13 years ago
- Priority changed from High(高め) to Normal(通常)
Updated by Shingo Yamada over 13 years ago
- Tracker changed from Enhancement(機能追加・改善) to Bug(バグ)
- Subject changed from PHPのsafe modeを使用している環境で動作しない点の改善 to Apacheモジュール版PHP で safe mode を有効にしている環境では cache ディレクトリ以下に作成されたファイルの一部が読み込めない
Updated by Shouta Kashiwagi almost 13 years ago
- Target version changed from OpenPNE 3.7.0 to 252
Updated by Shouta Kashiwagi almost 13 years ago
- Target version changed from 252 to OpenPNE 3.8.x
Actions