プロジェクト

全般

プロフィール

Bug(バグ) #2279

Apacheモジュール版PHP で safe mode を有効にしている環境では cache ディレクトリ以下に作成されたファイルの一部が読み込めない

Shingo Yamadaほぼ13年前に追加. 約12年前に更新.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
開始日:
2011-07-19
期日:
進捗率:

0%

3.6 で発生するか:
Yes
3.8 で発生するか:
Unknown (未調査)

説明

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 を動作させるためにやったこと

  1. キャッシュディレクトリ下に作成されうるサブディレクトリをあらかじめ作成し、webディレクトリのPHPスクリプトファイルの所有者と一致させた
    • safe_mode のファイルアクセスの制限を回避するため、キャッシュディレクトリ下に作成されうるすべてのサブディレクトリの所有者がwebディレクトリのPHPスクリプトファイルの所有者と一致している必要がある
    • PHPスクリプトファイルの所有者がPHP実行ユーザーと異なる状態で動作させる場合、キャッシュディレクトリ下にあらかじめPHPスクリプトファイルの所有者がサブディレクトリを作成しておく必要がある
      • 今回は招待メールの送信に必要なキャッシュディレクトリのみを事前に作成した状態で検証を行った
      • ただし、この方法でOpenPNEの全機能を正常に動作させるためには、キャッシュディレクトリ下に作成されうるすべてのサブディレクトリを事前に推測する必要があり、非常に困難である
    • PHPスクリプトファイルの所有者の方をPHPの実行ユーザーにする方法を取る場合
      • CORESERVER においては Apache 経由でディレクトリ、ファイルの所有者を変更する必要がある(未検証)
  2. 初期状態の include_path が "." のみになるようにした
    • CORESERVER 側の設定にあらかじめ含まれている /usr/local/lib/php への realpath() 関数の適用で Warning が発生したため
    • config/ProjectConfiguration.class.php の冒頭に以下の記述を追加した
      set_include_path('.');
  3. セッションストレージの設定を DB に変更した(これはおそらく必須ではない)
    • # config/OpenPNE.yml
      session_storage:
        name: "database" 
        options:
      

関連するチケット

関連している OpenPNE 3 - Bug(バグ) #1331: PHPのsafe modeを使用している環境でmail_envelope_fromを設定するとメールが送信できない Fixed(完了) 2010-07-13

履歴

#1 Shingo Yamadaほぼ13年前に更新

  • トラッカーBug(バグ) から Enhancement(機能追加・改善) に変更

#2 Shingo Yamadaほぼ13年前に更新

  • 題名PHPのsafe modeを使用している環境で動作しない から PHPのsafe modeを使用している環境で動作しない点の改善 に変更

#3 Shingo Yamadaほぼ13年前に更新

  • 優先度High(高め) から Normal(通常) に変更

#4 Shingo Yamadaほぼ13年前に更新

  • トラッカーEnhancement(機能追加・改善) から Bug(バグ) に変更
  • 題名PHPのsafe modeを使用している環境で動作しない点の改善 から Apacheモジュール版PHP で safe mode を有効にしている環境では cache ディレクトリ以下に作成されたファイルの一部が読み込めない に変更

#5 Shouta Kashiwagi約12年前に更新

  • 対象バージョンOpenPNE 3.7.0 から 252 に変更

#6 Shouta Kashiwagi約12年前に更新

  • 対象バージョン252 から OpenPNE 3.8.x に変更

他の形式にエクスポート: Atom PDF