Project

General

Profile

Bug(バグ) #2279

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

Added by Shingo Yamada almost 9 years ago. Updated about 8 years ago.

Status:
New(新規)
Priority:
Normal(通常)
Assignee:
-
Target version:
Start date:
2011-07-19
Due date:
% Done:

0%

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

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

  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:
      

Related issues

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

History

#1 Updated by Shingo Yamada almost 9 years ago

  • Tracker changed from Bug(バグ) to Enhancement(機能追加・改善)

#2 Updated by Shingo Yamada almost 9 years ago

  • Subject changed from PHPのsafe modeを使用している環境で動作しない to PHPのsafe modeを使用している環境で動作しない点の改善

#3 Updated by Shingo Yamada almost 9 years ago

  • Priority changed from High(高め) to Normal(通常)

#4 Updated by Shingo Yamada almost 9 years ago

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

#5 Updated by Shouta Kashiwagi about 8 years ago

  • Target version changed from OpenPNE 3.7.0 to 252

#6 Updated by Shouta Kashiwagi about 8 years ago

  • Target version changed from 252 to OpenPNE 3.8.x

Also available in: Atom PDF