以前php.iniを使ったPHPの各種設定変更方法を書きました。しかしながら、レンタルサーバによってはユーザがphp.iniファイルを作成する事を許可してない場合があります。当方の場合、まさにサイトC(このサイト)を設置している000webhostがそうだったのですが、そういったケースではphp.iniファイルを使わず.htaccessファイルで設定の変更を行います。
.htaccessでPHPの設定を変更する場合、変更する値のタイプによって書き方が2種類存在します。具体的には、論理値を指定する場合に使うphp_flagと、それ以外の値を指定する場合に使うphp_valueです。そこで実際サイトCにおいて私が行った設定を例にしながら、2種類の書式を見てみましょう。
論理値を指定するタイプ
論理値を指定する場合というのは、PHPのオプション機能の有効/無効を指定する場合で、書式は次のようになります。
php_flag 設定項目 On php_flag 設定項目 Off
繰り返しになりますが、文の最後には改行が必要です。実例として、PHPプログラムでエラーが発生した際の、エラーメッセージをブラウザに出力する設定をアクティブにしてみます。
php_flag display_errors On
このオプションが有効になっていると、実行したプログラムの何行目でどのようなエラーが起こったかを親切に表示してくれます。もちろんサイト訪問者側からもエラー内容が見えてしまうことになるので、必要の無いときにはOffを指定しておきましょう。
他の値(文字列、数値)を指定するタイプ
文字列や数値を指定する場合には、以下の書式を使います。
php_value 設定項目 設定内容
実例としてはphp.iniの解説で挙げたデフォルト文字コードの指定があります。これは.htaccessで設定する場合以下のようになります。
php_value default_charset UTF-8
UTF-8の部分をダブルクォーテーションで囲んでも適用されるようです。
数値の例としては、処理がタイムアウトになるまでの秒数であるmax_execution_timeを挙げます。
php_value max_execution_time 60
その他の設定項目も、この2種類の書式で指定することができます。どのような項目があるかはphpinfo()やPHPパッケージ付属のphp.iniで知ることができます。ただしレンタルサーバによっては特定の項目のユーザー側からの変更をブロックしている場合がありますので、そういう場合についてはあきらめて別の方法を模索しましょう。