ユーザ用ツール

サイト用ツール


ja:install:php

DokuWiki 向けの PHP 設定

DokuWiki は何も設定しないでもほぼすべての PHP 環境で動作し、インストーラーは最低限必要となる PHP の機能が利用可能かどうかをチェックします。

このページでは、DokuWiki の機能およびパフォーマンス、セキュリティ、移植性に影響を及ぼす PHP の設定をどのように調整するかについてのヒントを示します。

より詳しくは、PHP マニュアルを参考にしてください。

php.ini

PHP を設定するための基本的な手段は、設定ファイル (php.ini) によるものとなります。

サーバのモジュール版の PHP では、このファイルは Web サーバが起動したときの 1 回だけ読み込まれます。CGI 版および CLI 版では起動時に毎回読み込まれます。

このファイルには、PHP の振る舞いを制御するためのディレクティブのリストが含まれます。これらのディレクティブに関する詳しい参考資料については、インターネット上にある php.ini ディレクティブのページを参照してください。

ほとんどのケースにおいて DokuWiki は典型的な配布用 PHP の設定で「面倒な設定なしで」動作するものの、いくつかの設定オプションは DokuWiki にとって特別な重要性を持っています。

なお、何が良い設定となりうるのかについては常に注意しておいてください。DokuWiki で推奨される設定値であっても、いくつかのケースでは同じサーバ上でホストしている他の PHP アプリケーションを壊してしまう可能性があります。これは、register_globals などの安全でない PHP の機能に依存している他の PHP アプリケーションがあるのに PHP のセキュリティを向上させるディレクティブを有効化する場合に、特に言えることです。

register_globals

渡されたすべての CGI パラメータを、$_GET、$POST、$REQUEST からのみアクセス可能な状態に留めておかず、自動的にグローバル変数として登録するかどうかを制御します。これを有効化すると、多くの場合セキュリティの問題を引き起こします。

DokuWiki は register_globals が Off に設定されていても動作します。

  • 推奨: register_globals = Off

short_open_tag

<? タグを許可します。許可しない場合は <?php<script> タグだけが認識されます。

DokuWiki は shortopentag が Off に設定されていても動作します。

  • 推奨: shortopentag = Off

しかし、いくつかのテンプレートおよびプラグインではこの機能が On に設定されていることを当てにしている可能性があることに注意してください。

safe_mode

セーフモードは、特定の PHP の機能を制限もしくは無効化することによって共有サーバにおけるセキュリティ問題の解決を試みるための仕組みです。

DokuWiki は safe_mode が Off に設定されていても動作します。

しかし、共有サーバの管理者の設定によっては、設定項目: safemodehack を使用する必要があるかもしれません。

よくわからない場合、もしくはトラブルシュートを行う場合は、safe_mode = Off から始めてみてください。

output_buffering

出力バッファリングは、本文の内容を出力した後であってもヘッダ行 (Cookie を含む) を出力できるようにするための機能です。DokuWiki はこの設定に関係なく動作します。

  • 推奨: output_buffering = Off

output_handler

すべてのスクリプトのすべての出力を関数にリダイレクトします。outputhandler を設定すると outputbuffering が自動的に On になります。

この設定は、すべてのコンテンツをクライアントの Web ブラウザに送信する前に自動で gzip するために使用されます。画像やダウンロードファイルで問題を引き起こす可能性がありますので、代わりに DokuWiki の gzip_output 機能を有効化するようにしてください。

  • 推奨: output_handler =

zlib.output_compression

zlib ライブラリを使用した透過的な出力圧縮機能を提供します。一般的な設定である zlib.output_compression = On は DokuWiki でも非常にうまく動作します。

しかしながら DokuWiki は、設定項目: gzip_output で出力の圧縮をサポートしています。

  • 推奨: zlib.output_compression = Off

implicit_flush

PHP が 各出力ブロックの後で自動的に出力レイヤをフラッシュするよう指定します。このオプションを On すると著しい性能低下が生じるため、通常はデバッグ目的のみの利用が推奨されます。DokuWiki は必要に応じてバッファのフラッシュ処理を行います。

  • 推奨: implicit_flush = Off

allow_call_time_pass_reference

関数の呼び出し時に引数が参照で渡された場合に、引数の渡し方が非推奨であるとして警告するかどうかを設定します。参照で渡されなければならない引数は関数の宣言時に指定されるべきであり、関数の呼び出し時に指定すべきではありません。

  • 推奨: allowcalltimepassreference = Off

max_execution_time

各スクリプトの最大の実行時間を秒単位で指定します。

  • 推奨: maxexecutiontime = 30

max_input_time

各スクリプトでリクエストデータの解析に費やすことができる最大の時間を指定します。

  • 推奨: maxinputtime = 60

memory_limit

スクリプトが利用できるメモリの最大容量を指定します。

  • 推奨: memory_limit = 32M

error_reporting

どのエラーを報告するかを指定します。

  • 推奨: errorreporting = EALL & ~E_NOTICE

display_errors

エラーを (出力の一部として) 表示します。本番用の Web サイトではこの機能を Off にすることが強く推奨されます。代わりにエラーのログ出力機能を使用してください。

  • 推奨: display_errors = Off

display_startup_errors

PHP の起動シーケンスで発生したエラーを表示します (displayerrors ではこれらのエラーを制御できません)。デバッグ時を除き、displaystartup_errorsOff にしておくことが強く推奨されます。

  • 推奨: displaystartuperrors = Off

log_errors

エラーをログファイルに記録します。error_log についても適宜設定してください。

  • 推奨: log_errors = On

variables_order

PHP が環境変数 (Environment)、GET、POST、Cookie、サーバ変数 (Server) といった変数 (それぞれ E、G、P、C、S) を登録する順番を指定します。

  • 推奨: variables_order = “EGPCS”

register_argc_argv

argv および argc 変数を宣言するかどうかを指定します (これらには GET の情報が格納されます)。

  • 推奨: registerargcargv = Off

マジッククォート

マジッククォートは、PHP スクリプトへの入力データを自動的にエスケープする機能です。マジッククォートが Off の状態でコーディングし、実行時に必要に応じてデータをエスケープすることが推奨されます。

DokuWiki はマジッククォート関係の設定値を検出し、入力データを必要に応じて処理します。しかし、このオプションは Off にしておくことが推奨されます。

magic_quotes_gpc

HTTP のリクエストデータ (GPC: GET、POST、Cookie) に影響します。

  • 推奨: magicquotesgpc = Off

magic_quotes_runtime

有効にした場合は、データベースやテキストファイルを含む外部ソースからのデータを返すほとんどの関数において、返り値に含まれる引用符がバックスラッシュでエスケープされるようになります。

  • 推奨: magicquotesruntime = Off

magic_quotes_sybase

Sybase スタイルのマジッククォート (シングルクォートをバックスラッシュではなくシングルクォートでエスケープする) を使用します。

  • 推奨: magicquotessybase = Off

file_uploads

HTTP ファイルアップロードを許可するかどうかを指定します。

  • 推奨: file_uploads = On

upload_max_filesize

アップロードできる最大のファイルサイズです。アップロードされるメディアファイルで予想される最大サイズと一致させるのが良いでしょう。

session.use_cookies

Cookie を使用するかどうかを指定します。

  • 推奨: session.use_cookies = 1

session.cache_limiter

クライアントに送信されるキャッシュ制御用の HTTP ヘッダを定義します。これらのヘッダでは、ページの内容がクライアントによってキャッシュされるのか、あるいは中間にあるプロキシによってキャッシュされるのか、というルールを決めます。設定できる値は、nonenocache (デフォルト値)、privateprivatenoexpire および public です。キャッシュリミッタに nocache を設定すると、クライアントとプロキシの両方でキャッシュ不許可となります。設定値 public ではクライアントとプロキシの両方でキャッシュ許可となり、private ではプロキシではキャッシュ不許可となるもののクライアントでのコンテンツのキャッシュは許可されます。private モードでは、クライアントに送信される Expire ヘッダが Mozilla を含むいくつかの Web ブラウザを混乱させてしまいます。privatenoexpire モードを使用することによってこの問題を避けることができます。このモードでは Expire ヘッダがクライアントに送信されなくなります。

キャッシュに問題がある場合 (すなわち、ページを編集したにも関わらずページを見ると変更が反映されていない場合) は、session.cache_limiter = nocache という設定を試してみてください。

拡張モジュール

動的にロード可能な拡張モジュールです。

GD

libGD 2 (グラフィックライブラリ) を利用するための PHP の GD 拡張モジュールは、推奨ではありますが必須ではありません。利用可能な場合は画像のリサイズに使用されます。

ja/install/php.txt · 最終更新: 2017/01/12 by N_Miya