php.iniの記事一覧

memory limit

PHP で利用可能なメモリサイズは、php.ini で設定できます。メモリ不足に陥ると、

Fatal error: Allowed memory size of 8388608 bytes exhausted

というようなメッセージが表示されます。(8388608 の部分は環境により異なります。) WordPress や XOOPS 等の CMS で、大量のデータを扱う場合や、プラグインをたくさん導入する場合は、上記エラーが出やすいです。このメッセージが表示されたら、メモリ制限を大きくすると良いでしょう。

memory_limit = 32M

タグ

ファイルアップロード

ユーザーがファイルをアップロードすることを許可するかどうかの設定を php.ini で行うことができます。

アップロードを許可するには、php.ini で以下のように記述します。(通常は file_uploads = On になっていると思います)


file_uploads = On

アップロードするファイルの最大値も設定可能です。(通常は upload_max_filesize = 2M になっていると思います)


upload_max_filesize = 8M
post_max_size = 8M
memory_limit = 64M

大きいファイルをアップロードする場合は、あらかじめ設定しておく必要があります。POSTデータのサイズやスクリプトのメモリ使用量も、アップロードしたいファイルのサイズより大きくする必要があります。なお WordPress のデータインポートの最大サイズ制限は、この値を元にしているようなので、大きなサイトをサーバー移転するときは注意しましょう。

なお、アップロードができない場合、最大サイズ制限に引っかかる場合だけでなく、サーバー上のスクリプトタイムアウト (max_execution_time で設定)、ユーザー側でタイムアウトやセキュリティソフトの制限、等の可能性も考えられます。

タグ

allow_url_fopen

リモートファイル(別サーバー上のファイル)を読み込んで処理することを許可するかどうかを設定します。RSS取得プラグイン(ショートコード)などで外部RSS取得する場合には、この設定が有効になっている必要があります。

デフォルトはon(有効)となっていますが、リモートファイル読み込みを行う必要が無い場合は、offにすることをお勧めします。

関連オプションに、allow_url_include があります。allow_url_include は、リモートファイルをPHPスクリプトとして実行することを許可するかどうかを設定します。デフォルトはoffです。

allow_url_include をonにするのはセキュリティリスクが高いので避けましょう。

※PHP4では、allow_url_fopen のみが存在します。allow_url_fopen が on の時、スクリプトとしての読み込みも許可されます。

session.use_trans_sid

内部リンクおよび投稿フォームにセッションIDを埋め込むかどうかの設定をする。埋め込む場合は「1」を指定する。

session.use_trans_sid = 1

エンドユーザーからセッションクッキーを受け取らなかった時、内部リンクのURLパラメータにセッションIDを付与する。また投稿フォームにhiddenパラメータでセッションIDを埋め込む。
※クッキーが利用できない場合に発動するかのような印象を受けるかもしれないが、URLパラメータに付与するかどうかの判定は、セッションクッキーの有無でることに注意する。(詳細はPHPサイバーテロの技法)

セッションID漏洩=>セッションハイジャックというリスクが高まるため、通常は有効にすべきでは無い。携帯サイトなどで用いると便利であるが、利用する場合は細心の注意をすべきである。

なお .htaccess で設定する場合は、以下のように記述する。

php_flag session.use_trans_sid On

タグ