PHP7.4 のインストール
公開日:2019-06-04
更新日:2020-07-21
更新日:2020-07-21
1. 概要
PHP7.3 をインストールします。
最新の PHP をインストールするには、EPEL と Remi のリポジトリが必要になります。
まだ追加していない場合には、 yum の使い方 を参考にして追加してください。
最新の PHP をインストールするには、EPEL と Remi のリポジトリが必要になります。
まだ追加していない場合には、 yum の使い方 を参考にして追加してください。
2. PHP7.4 のインストール
インストール
yum install --enablerepo=remi-php74 php
remi-php74 は無効となっているため、--enablerepo で一時的に有効にします。状態は「yum repolist all」で確認できます。
有効にしない場合、古いバージョンの php がインストールされます。
以下でバージョンが表示されればインストール完了です。
php -v
apache と PHP を連携するためのモジュールを確認します。
ll /etc/httpd/modules/
libphp7.so がない場合には、PHP をアンインストールして、異なるリポジトリで再インストールしてください。
3. PHP と apache の連携
PHPファイルの作成
http://192.168.233.100/index.php にアクセスすると、
apache と PHP の連携ができていないため、ソースがそのまま出ます。
apache と PHP を連携させるため、/etc/httpd/conf/httpd.conf を修正します。
「Include conf.modules.d/*.conf」の下に、以下を追記します。
「<IfModule mime_module>」内の一番下に、以下を追記します。
vi で「/Include」と入力すると「Include」の場所を検索できます。「n」と「N」 で次の候補へ移動。
「i」で挿入モード、挿入後「ESC」で抜けて、「:w」で上書き保存、「:q」で終了します。
Apache を再起動します
http://192.168.233.100/index.php にアクセスして、phpinfo が表示されればOKです。
echo '<?php print(date("c")); phpinfo(); ?>' > /var/www/html/index.php
http://192.168.233.100/index.php にアクセスすると、
apache と PHP の連携ができていないため、ソースがそのまま出ます。
apache と PHP を連携させるため、/etc/httpd/conf/httpd.conf を修正します。
「Include conf.modules.d/*.conf」の下に、以下を追記します。
LoadModule php7_module /etc/httpd/modules/libphp7.so
「<IfModule mime_module>」内の一番下に、以下を追記します。
AddType application/x-httpd-php .php
vi で「/Include」と入力すると「Include」の場所を検索できます。「n」と「N」 で次の候補へ移動。
「i」で挿入モード、挿入後「ESC」で抜けて、「:w」で上書き保存、「:q」で終了します。
Apache を再起動します
systemctl restart httpd
http://192.168.233.100/index.php にアクセスして、phpinfo が表示されればOKです。
4. mbstring のインストール
マルチバイト文字の操作を行うので、mbstring をインストールします。
インストール
PHPファイルの作成
Apache を再起動します
http://192.168.233.100/test.php にアクセスして、1 と表示されればOKです。
通常、追加したモジュールは、php.ini で extension の追記をして、 モジュールを読み込ませる必要がありますが、 追記なしで mbstring が使用できました。
これは、php.ini の Dynamic Extensions の Note に書いてありますが、
/etc/php.d 配下の ini ファイルは、自動的にロードされるためです。
phpinfo の「Additional .ini files parsed」でも、 ini を読み込んでいることが確認できます。
インストールした mbstring のモジュールは、
また、php-mbstring のインストール時に、20-mbstring.ini が作成されたこともわかります。
ini には mbstring とだけ書いてありますが、
これは、phpinfo の extension_dir が /usr/lib64/php/modules になっているためです。
そのため相対パスで指定しています。
上記により、mbstring は php.ini を修正せずに使用できましたが、 モジュールをインストールしても有効にならない場合は、 必要に応じて php.ini に extension を追記して、 モジュールを読み込ませる必要があります。
インストール
yum install --enablerepo=remi-php74 php-mbstring
PHPファイルの作成
echo '<?php print(mb_strlen("あ")); ?>' > /var/www/html/test.php
Apache を再起動します
systemctl restart httpd
http://192.168.233.100/test.php にアクセスして、1 と表示されればOKです。
通常、追加したモジュールは、php.ini で extension の追記をして、 モジュールを読み込ませる必要がありますが、 追記なしで mbstring が使用できました。
これは、php.ini の Dynamic Extensions の Note に書いてありますが、
/etc/php.d 配下の ini ファイルは、自動的にロードされるためです。
cat /etc/php.d/20-mbstring.ini
-> extension=mbstring
phpinfo の「Additional .ini files parsed」でも、 ini を読み込んでいることが確認できます。
インストールした mbstring のモジュールは、
rpm -ql php-mbstring
で、/usr/lib64/php/modules/mbstring.so にあることがわかります。また、php-mbstring のインストール時に、20-mbstring.ini が作成されたこともわかります。
ini には mbstring とだけ書いてありますが、
これは、phpinfo の extension_dir が /usr/lib64/php/modules になっているためです。
そのため相対パスで指定しています。
上記により、mbstring は php.ini を修正せずに使用できましたが、 モジュールをインストールしても有効にならない場合は、 必要に応じて php.ini に extension を追記して、 モジュールを読み込ませる必要があります。
5. タイムゾーンの変更
デフォルトのタイムゾーンは UTC のため、9時間遅れになります。
vi /etc/php.ini で date.timezone を以下のようにしてください。
php.ini の変更後、Apache を再起動してください。
vi /etc/php.ini で date.timezone を以下のようにしてください。
date.timezone = "Asia/Tokyo"
php.ini の変更後、Apache を再起動してください。

