【PHP】PHPをインストールしたらやっておきたい設定

Webアプリケーションを開発を行う前には、LAMP環境という環境を構築する必要があります。
LAMP環境のうち、アプリケーションの動作を制御するために利用するPHPというプログラム言語に関して、やっておきたい基本的な設定について紹介します。

前提

  • CentOS6.5で動作確認をしています。
  • 初心者を想定して記述しているドキュメントとなっています。
  • 開発用サーバとして動かすこと前提に記述しています。

 

PHPの設定を編集

PHPの設定は/etc/php.iniという設定ファイルによって行われています。
そのため、下記ではphp.iniというファイルを編集することによって、PHPの設定を変更していきます。

 

オリジナルphp.iniをバックアップ

# cp /etc/php.ini /etc/php.ini.origin   # デフォルトで生成されているphp.iniファイルをphp.ini.originというファイル名でコピーファイルを作成

エラー表示の設定を変更

  • error_reportingの設定を変更error_reporting = E_ALL | E_STRICT (開発環境においてはSTRICTを含めたすべてのレポートをさせる)
  • display_errorsの設定を変更display_errors = On (エラーがあった際にブラウザなどにエラー内容を表示するように設定)
  • log_errorsの設定を変更log_errors = On (エラーログを吐く設定を有効にしておく)
  • error_logの設定を変更error_log = /var/log/php.log(phpに関連するエラーログを/var/log/php.logに吐くように設定)

 

文字コード関連の設定

  • default_charset = “UTF-8″文字コードをUTF-8を利用するように設定
  • mbstring.language = Japanese日本語が利用できるように設定
  • mbstring.encoding_translation = Off
  • mbstring.detect_order = auto

 

メモリ管理に関する設定

  • memory_limit = 32MBPHPの1プロセスが利用可能なメモリー容量の設定。
  • post_max_size = 16M
    POSTのリクエストを受け付ける際の、最大のPOSTリクエストサイズを設定
  • upload_max_filesize = 8M
    ファイルアップロードを受け付ける際の、最大のファイル受付サイズを設定

 

セキュリティに関する設定

  • expose_php = OffこれがOnだとレスポンスヘッダにPHPのバージョン情報などが露呈してしまう
  • session.hash_function = 1セッションID発行のハッシュアルゴリズムをSHA-1(160bit)へ変更, 0だとMD5(128bit)。生成されたハッシュを32桁にしたい場合は、併せてsession.hash_bits_per_character = 5とする
  • session.entropy_file = /dev/urandom/dev/urandomが存在するときのみ
  • session.entropy_length = 32

 

その他の設定

  • short_open_tag = OffPHPファイルのタグをのみ利用可能と制限(<? ?>などを使用不可にする)
  • register_argc_argv = Onバッチのようなコマンドラインプログラムを書く場合は必須の設定
  • max_execution_time = 30PHPプログラムの1つの最大実行時間の設定。これも大きなファイルアップロードや大きいバッチ処理がある場合はプログラム側のini_set()などで随時設定する

 

変更した設定を読み込み

php.iniでの設定はApacheを再起動することによって再読込されるので、Apacheを再起動します。

# service httpd restart

 

まとめ

上記でPHPをインストールし、開発環境として利用する上での最小限の設定は完了です。
詳細な設定内容についてはより調べていただくか、『パーフェクトPHP』の12章などに詳しいので、参考にしてみてください。

 

NexSeedでは、プログラミングと英語を学べる「エンジニア留学」を提供しています。 プログラミングと英語、エンジニア/ IT留学に興味がある方は以下からチェック!

投稿者プロフィール

NexSeedメディア編集部
NexSeedメディア編集部
NexSeedメディア編集部です。英語学習について、フィリピン・セブ島の魅力、NexSeedでの留学生活などを伝えます!

記事に関するお問い合わせはこちらのメールアドレスにお願いします(・∀・)
ns-support@nexseed.net