PHPの設定(CentOS 7)

PHPを利用するためPHPと関連ソフトウェアをインストールし、文字コードを指定するなどの初期設定を行います。

環境

CentOS 7.2.x
PHP 7.x.x

1.EPELリポジトリの確認

CentOS7標準のPHP5.4ではなくPHP7.1をインストールするため、EPELリポジトリとremiリポジトリを使用できるようにします。
ただし、さくらのVPSでは、最初からEPELが使用可能になっていますので、EPELがインストールされているか確認します。

[root@ ~]# rpm -qa | grep epel

下記の表示が出ればインストール済みです。

epel-release-7-11.noarch

2.remiリポジトリのインストール

次に、remiリポジトリをインストールします。

[root@ ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

3.PHPのインストール

EPELリポジトリとremiリポジトリの準備ができたら、PHPとPHP関連ソフトウェアをインストールします。
Complete!と表示されればインストール完了です。

[root@ ~]# yum install -y --enablerepo=remi,remi-php71 php php-devel php-mbstring php-mysqlnd php-pdo php-gd

4.PHPのバージョン確認

下記のコマンドでインストールしたPHPのバージョンを確認します。

[root@ ~]# php -v
PHP 7.1.27 (cli) (built: Mar  6 2018 08:53:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

5.PHPの初期設定(php.ini)

このままでもPHPを利用できるのですが、文字コードを指定するなどの場合には、初期設定を行います。
vi /etc/php.ini と入力して、php.iniの編集を開始します。

[root@ ~]# vi /etc/php.ini

PHPでアップロードできるファイルの上限サイズを変更します。(64MBに設定)

post_max_size = 8M

(↓8Mを64Mに変更)

post_max_size = 64M
upload_max_filesize = 2M

(↓2Mを64Mに変更)

upload_max_filesize = 64M

mbstringで使用されるデフォルト言語を日本語にするため、行頭の「;」を削除し、有効にします。

;mbstring.language = Japanese

(↓行頭の;を削除)

mbstring.language = Japanese

デフォルトの文字コードを指定します。

;mbstring.internal_encoding =

(↓行頭の;を削除、文字コードをUTF-8)

mbstring.internal_encoding = UTF-8

HTTP通信時のインプットとアウトプットの文字コード変換を指定をします。文字コードを自動変換されてしまうと動作不良が起きる場合があるため、変換しないように指定します。

;mbstring.http_input =

(↓行頭の;を削除、passを追記)

mbstring.http_input = pass
;mbstring.http_output =

(↓行頭の;を削除、passを追記)

mbstring.http_output = pass

文字エンコーディング検出や内部文字エンコーディングへの変換を行う文字エンコーディングフィルタを無効にします。

;mbstring.encoding_translation = Off

(↓行頭の;を削除)

mbstring.encoding_translation = Off

文字コードの自動検出時の優先順位を指定します。また、autoでは優先順位が順不同のため、明示的に指定します。

;mbstring.detect_order =

(↓行頭の;を削除、文字コードを追記)

mbstring.detect_order = UTF-8,EUC-JP,SJIS,JIS,ASCII

変換に失敗した場合や無効な文字の代わりに表示する文字を指定します。表示する必要がないのでnoneを指定します。

;mbstring.substitute_character = none;

(↓行頭の;を削除)

mbstring.substitute_character = none;

以上でphp.iniの編集は終了です。:wqを入力して設定を保存します。
Apacheを再起動して、設定内容を反映させます。

[root@ ~]# systemctl restart httpd

以上でPHPの設定は完了です。