Edited at

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

More than 3 years have passed since last update.


前提

CentOS6.5で動作確認をしています。

初心者を想定して記述しているドキュメントとなっています。

開発用サーバとして動かすこと前提に記述しています。

※ 上記初心者対象という事由により、PHPのバージョンはCentOSデフォルトでyum installできるPHP5.3.3を対象にしています。

※ 既に5.3系のPHPがオフィシャルサポート終了になっているのは承知のうえで、設定上の大きな変更はないものに絞って記述しています。


PHPをインストール

# yum install php php-devel php-pear php-mbstring php-gd php-mysql php-xml php-mcrypt -y   # php関連の基本ファイルをインストール


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の設定を変更(513行目あたり)

    error_reporting = E_ALL | E_STRICT (開発環境においてはSTRICTを含めたすべてのレポートをさせる)


  • display_errorsの設定を変更(530行目あたり)

    display_errors = On (エラーがあった際にブラウザなどにエラー内容を表示するように設定)


  • log_errorsの設定を変更(551行目あたり)

    log_errors = On (エラーログを吐く設定を有効にしておく)


  • error_logの設定を変更(636行目あたり)

    error_log = /var/log/php.log(phpに関連するエラーログを/var/log/php.logに吐くように設定)



文字コード関連の設定


  • default_charset = "UTF-8"

  • mbstring.language = Japanese

  • mbstring.internal_encoding = UTF-8

  • mbstring.encoding_translation = Off

  • mbstring.http_input = pass

  • mbstring.http_output = pass

  • mbstring.detect_order = auto


メモリ管理に関する設定


  • memory_limit = 32MB

    PHPの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 = Off

    PHPファイルのタグを<?php ?>のみ利用可能と制限(<? ?>などを使用不可にする)

  • register_argc_argv = On

    バッチのようなコマンドラインプログラムを書く場合は必須の設定

  • max_execution_time = 30

    PHPプログラムの1つの最大実行時間の設定。これも大きなファイルアップロードや大きいバッチ処理がある場合はプログラム側のini_set()などで随時設定する


変更した設定を読み込み

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

# service httpd restart


まとめ

上記でPHPをインストールし、開発環境として利用する上での最小限の設定は完了です。

詳細な設定内容についてはより調べていただくか、『パーフェクトPHP』の12章などに詳しいので、参考にしてみてください。