PHPをインストールしたら、そのままデフォルト設定にしておくのではなく、主な設定項目について確認して設定しておくことをおすすめします。
今回は、CentOS6にPHP7をインストールしたらやっておくべき初期設定について説明します。
※以下の作業環境を例に説明します。
- サーバOS:CentOS6
- PHP:PHP7
1.php.iniのバックアップ
PHPの設定は、「/etc」フォルダ配下にある「php.ini」ファイル(PHPの設定ファイル)で設定します。
「php.ini」ファイルを編集する前に、「php.ini」ファイルのバックアップを行いましょう。
① まず、サーバにrootユーザでログインします。
[root@ ~]#
② 次に、「php.ini」ファイルがある「/etc」フォルダへ移動します。
「cd /etc」と入力してEnterを押します。
[root@ ~]# cd /etc
「/etc」フォルダへ移動できました。
[root@ etc]#
③ 編集前の「php.ini」ファイルをバックアップするため、「php.ini」ファイルをコピーして、「php.ini.yyyymmdd」というファイル名で保存します。
「cp php.ini php.ini.yyyymmdd」と入力してEnterを押します。
なお、「yyyymmdd」は設定変更を行う日など任意の年月日とします。
(以下は、20170311とした例)
[root@ etc]# cp php.ini php.ini.20170311
これで、「php.ini」ファイルをバックアップできました。
2.php.iniの編集
「php.ini」ファイルをバックアップできたら、「php.ini」ファイルを編集していきます。
「vim php.ini」と入力してEnterを押します。
[root@ etc]# vim php.ini
「php.ini」ファイルの内容が表示されます。
以降の手順に従って、一気に編集していきましょう。
2-1.日本語環境にする設定
PHPを日本語環境で利用するために必要な設定を行います。
default_charset
default_charsetで、デフォルトの文字コードを設定します。
「UTF-8」を指定します。
default_charset = "UTF-8"
mbstring.language
mbstring.languageで、mbstringのデフォルトの言語を設定します。
「Japanese」を指定します。
mbstring.language = Japanese
mbstring.internal_encoding
mbstring.internal_encodingは、内部文字のエンコーディングのデフォルト値を設定する項目です。
PHP5.6.0以降非推奨となっているので、コメントアウトし、使用しないようにします。
;mbstring.internal_encoding =
mbstring.http_input
mbstring.http_inputは、HTTP入力文字のエンコーディングのデフォルト値を設定する項目です。
PHP5.6.0以降非推奨となっているので、コメントアウトし、使用しないようにします。
;mbstring.http_input =
mbstring.http_output
mbstring.http_outputは、HTTP出力文字のエンコーディングのデフォルト値を設定する項目です。
PHP5.6.0以降非推奨となっているので、コメントアウトし、使用しないようにします。
;mbstring.http_output =
mbstring.encoding_translation
mbstring.encoding_translationで、HTTP入力文字のエンコーディングを内部文字のエンコーディングに自動的に変換するかどうかを設定します。
「Off」を指定し、自動的に変換しないようにします。
mbstring.encoding_translation = Off
mbstring.detect_order
mbstring.detect_orderで、文字コードを自動検出する際の優先順位を設定します。
「UTF-8,SJIS,EUC-JP,JIS,ASCII」を指定します。
なお、「auto」と指定すると、ASCII,JIS,UTF-8,EUC-JP,SJISの順となります。
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
2-2.日本時間にする設定
PHPを日本時間で利用するために必要な設定を行います。
date.timezone
date.timezoneで、タイムゾーンを設定します。
「Asia/Tokyo」を指定し、日本標準時間とします。
date.timezone = Asia/Tokyo
2-3.セキュリティに関する設定
PHPのセキュリティに関する設定を行います。
expose_php
expose_phpで、HTTPのレスポンスにPHPのバージョン情報を出力するX-Powered-Byヘッダを含めるかどうかを設定します。
「Off」を指定し、HTTPのレスポンスによりPHPのバージョン情報が露呈してしまわないようにします。
expose_php = Off
2-4.パフォーマンスに関する設定
PHPのパフォーマンスに関する設定を行います。
memory_limit
memory_limitで、PHPが利用できるメモリの最大サイズを設定します。
POSTリクエストのデータは、まずはサーバのメモリ上に保持されるため、後述のpost_max_sizeよりも大きい値を指定する必要があります。
今回は、デフォルト値である「128M」を指定しておきます。
memory_limit = 128M
post_max_size
post_max_sizeで、POSTリクエストのデータの最大サイズを設定します。
前述のmemory_limitの設定値に合わせて、デフォルト値の「8M」から「128M」に変更します。
post_max_size = 128M
upload_max_filesize
upload_max_filesizeで、ファイルをアップロードする際のアップロードファイルの最大サイズを設定します。
前述のmemory_limit、post_max_sizeの設定値に合わせて、デフォルト値の「2M」から「128M」に変更します。
upload_max_filesize = 128M
3.php.iniの有効化
php.iniの設定が完了したら、設定を保存して有効化します。
① vimで開いた「php.ini」ファイルの設定を保存し、ファイルを閉じます。
「:wq」と入力してEnterを押します。
:wq
② 設定した内容を有効化するために、Apacheを再起動します。
「service httpd restart」と入力してEnterを押します。
[root@ conf]# service httpd restart
Apacheの再起動が完了しました。
httpd を停止中: [ OK ] httpd を起動中: [ OK ]
これで、PHPの設定が有効化されました。