php.iniでの設定項目の中には、.htaccessで設定を変更できる項目もあります。
全ての項目をまとめるのは大変なので、
今回は、よく使う設定項目だけまとめてみました。
と言っても、結構多いですが。。。
コンテンツ
「php_value」ディレクティブと「php_flag」ディレクティブ
.htaccessを使ってPHPの設定を行う場合には、「php_value」ディレクティブ、または、「php_flag」ディレクティブを使用します。
ディレクティブに設定する値が文字列の場合には「php_value」を、
ディレクティブに設定する値が論理値の場合には「php_flag」を
それぞれ使用します。
記述方法は、
php_value 設定項目 値
php_flag 設定項目 on(またはoff)
となります。
よく設定する項目
memory_limit:メモリ使用量の上限
【説明】
メモリ使用量の上限を設定します。
デフォルトだと「128M」に設定されています。
【使い方】
「128M」に設定する場合
php_value memory_limit 128M
無制限(上限なし)に設定する場合
php_value memory_limit -1
post_max_size:POSTの最大サイズ
【説明】
メモリ使用量の上限を設定します。
デフォルトだと「8M」に設定されています。
【使い方】
php_value post_max_size 64M
upload_max_filesize:1ファイル辺りの最大アップロードサイズ
【説明】
メモリ使用量の上限を設定します。
デフォルトだと「2M」に設定されています。
WordPressを使っている業者さんからよく出てくる要望として、
「ファイルのアップロードサイズが2Mだと小さい」というものがあります。
その場合には、この「upload_max_filesize」の値を変更すればOKです。
【使い方】
php_value upload_max_filesize 10M
↓
注意点
「memory_limit」「post_max_size」「upload_max_filesize」の3項目は、セットで設定を行う機会が多いです。
■設定例
php_value memory_limit 128M
php_value post_max_size 64M
php_value upload_max_filesize 10M
その際注意すべき点は、
各項目に設定する値が以下のよう関係になっていないと、意図した通りに設定が効かない点です。
memory_limit > post_max_size > upload_max_filesize
max_execution_time
【説明】
スクリプトが強制終了されるまでの最大時間を秒単位で設定します。
【使い方】
php_value max_execution_time 60
default_charset
【説明】
デフォルトの文字コードを設定します。
「Content-Type:text/html;charset=xxxx"」に設定される文字コードであって、
内部エンコーディングの文字コード設定ではないの注意して下さい。
【使い方】
php_value default_charset UTF-8
mbstring.internal_encoding
【説明】
PHPの内部エンコーディングの文字コードを設定します。
【使い方】
php_value mbstring.internal_encoding UTF-8
detect_order:デフォルトの文字コードの検出順序を設定
【説明】
文字コードを自動判別する際に、どの文字コードから検出するのかの順序を設定します。
【使い方】
php_value mbstring.detect_order UTF-8,SJIS-win,SJIS,eucJP-win,EUC-JP,JIS,ASCII
自動判別に設定する場合には「auto」を設定します。
php_value mbstring.detect_order auto
※勝手に検出順を判別されるので、「auto」ではなく明示しておいた方がいいです。
mbstring.language
【説明】
mbstringで使用するデフォルトの言語を設定します。
【使い方】
php_value mbstring.language Japanese
output_buffering
【説明】
出力バッファリングの設定を行います。
※「バッファリング」とはデータを専用の記憶領域に一時的に保存しておくことです。
【使い方】
■「On」に設定することで、全てのPHPスクリプトファイルで出力バッファリングを有効出来ます。
php_flag output_buffering Off
■バッファのサイズを制限したい場合には、最大のバイト数を設定します。
php_flag output_buffering 4096
■無効にしたい場合には「Off」を設定します。
php_flag output_buffering Off
【注意点】
output_bufferingをOffに設定しても、output_handlerを有効「On」に設定すると、出力バッファリングは有効になります。
max_input_vars
【説明】
POSTやGETなどで送信できるデータ数の上限を設定できます。
PHP5.3.9から導入された項目で、デフォルトでは1,000個まで送信可能になっています。
【使い方】
php_value max_input_vars 2000
cookie_secure
【説明】
HTTPS通信時(セキュアな接続時)にのみクッキー(Cookie)を送信できるように設定できます。
【使い方】
php_flag session.cookie_secure On
cookie_httponly
【説明】
JavaScriptのようなスクリプト言語からクッキー(Cookie)へアクセス出来ないように設定できます。
【使い方】
php_flag session.cookie_httponly On
【注意点】
これを設定しておくことにより、XSSによる攻撃を防いでくれます(100%防いでくれるみたいではないようです)。
ただし、対応していないブラウもあるので注意して下さい。
主要ブラウザはほとんど対応していますが、バージョンが古いと対応していな可能背もあります。
session.cookie_path
【説明】
クッキー(Cookie)が有効なパスを設定します。
【使い方】
ini_set("session.cookie_path", "/path/");
date.timezone:タイムゾーンを設定
【説明】
タイムゾーンの設定を行います。
【使い方】
php_value date.timezone "Asia/Tokyo"
でタイムゾーンを日本に設定できます。
【注意点】
ちなみに、日本の標準時間は世界標準時間(UTC)より9時間進んでいます。
タイムゾーンをゾーンを正確に設定しておかないと、date()関数などで正確な日付を取得できないので、気を付けて下さい。
short_open_tag
【説明】
PHPタグの短縮型( ?>)を有効・または、無効に設定します。
【使い方】
■短縮型を有効にする場合
php_flag short_open_tag On
■短縮型を無効にする場合
php_flag short_open_tag Off
【注意点】
最近は、デフォルトでは無効「Off」になっています。
短縮型を使うことによるメリットは無く、むしろ、「 ?>」はXMLでも使用されるためにプログラムが不具合を起こす可能性もあります。
昔組んだプログラムで短縮型( ?>)を使っている場合などを除いては、
基本的には無効「Off」のままにしておくことをおすすめします。
asp_tags
【説明】
ASP形式のタグ(<% %>)を有効・または、無効に設定します。
PHP7からは削除されています。
【使い方】
php_flag asp_tags On
display_errors
【説明】
PHPの内部エラーが発生した際に、エラーメッセージを画面に表示させるために使用します。
【使い方】
■エラーを出力させる場合には、「On」を設定します。
php_flag display_errors On
■エラーを出力させないようにする場合には、「Off」を設定します。
php_flag display_errors Off
error_reporting
【説明】
出力するPHPのエラーレベルを設定します。
【使い方】
■例えば、全てのPHPエラーを出力する場合には、「6135」を設定します。
php_value error_reporting 6135
■display_errorsと一緒に設定することも多いです。
php_flag display_errors On
php_value error_reporting 6135
log_errors
【説明】
エラーログを生成するかどうかの設定を行います。
【使い方】
■エラーログを生成する場合には、「On」を設定します。
php_flag log_errors On
■エラーログを生成しない場合には、「Off」を設定します。
php_flag log_errors Off
error_log
【説明】
エラーログの保存先パスの設定を行います。
【使い方】
php_value error_log "./logs/error.log"
■log_errorsとerror_logはセットで設定することも多いです。
php_flag log_errors On
php_value error_log "./logs/error.log"
■本番環境では画面にエラーを出さずに、ログにのみ書き込むことも多いです。
その場合には、display_errorsを「Off」に設定しておきます。
php_flag display_errors Off
php_flag log_errors On
php_value error_log "./logs/error.log"
この記事へのコメントはありません。