CentOS8(さくらのVPS)にPHP7.4をインストール

PHP
Edo EmmerigによるPixabayからの画像

CentOS8標準のPHP7.2ではなくRemi’s RPM repositoryを利用しPHP7.4をインストールする。

環境

  • さくらのVPS CentOS8
  • Apache 2.4.37

CentOS8 での Apache は、MPM (Multi Processing Module)のデフォルト値が “event” になり、古いバージョンのApacheで利用される mod_php は利用できない。その代わりに php-fpm (FastCGI Process Manager)が利用される。

リポジトリの追加

さくらのVPSは初めからEPELリポジトリが使用可能になっているので、remiリポジトリを追加する。

# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-8.rpm

PHPのインストール

php本体だけでなく、phpの拡張パッケージも合わせて導入する。

# dnf install -y php php-devel php-mbstring php-mysqlnd php-pdo php-gd

最後に Complete! と表示されれば完了。

インストールされたパッケージの確認

$ dnf list installed | grep php

バージョン確認

$ php -v
PHP 7.4.8 (cli) (built: Jul 9 2020 08:57:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.8, Copyright (c), by Zend Technologies

php-fpm 起動と自動起動

# systemctl start php-fpm
# systemctl enable php-fpm

CentOS8では PHP-FPM が使われる。以下引用

PHP はデフォルトで FastCGI Process Manager (FPM) を使用します (スレッド化された httpd で安全に使用できます)。

PHP スクリプトのエラーと警告のログは、/var/log/httpd/error.log ではなく /var/log/php- fpm/www-error.log ファイルに記録されます。

PHP スクリプトを実行するユーザーが、FPM プール設定 (/etc/php-fpm/d/www.conf ファイ ル、apache ユーザーがデフォルト) に設定されるようになりました。

設定を変更した場合、または新しい拡張機能をインストールした場合は、php-fpm サービスを 再起動する必要があります。

15.1.3. PHP への主な変更点

Apacheの再起動

# systemctl restart httpd

php.iniを編集

ファイルをバックアップしてから、

# cp -p /etc/php.ini /etc/php.ini.backup

編集する。

# vi /etc/php.ini

アップロードサイズの変更

WordPressで大きな画像ファイルをアップロードするときにエラーにならないよう、「post_max_size」と「upload_max_filesize」の値を大きくしておく。

; post_max_size = 8M
post_max_size = 128M
; upload_max_filesize = 2M
upload_max_filesize = 128M

タイムゾーンの設定

;date.timezone =
date.timezone = "Asia/Tokyo"

php.ini設定ファイルの反映

変更を反映するためにphp-fpmサービスを再起動する。

# systemctl restart php-fpm

テスト用のファイル作成と確認

動作確認のためテスト用ファイルを作成し、

# vi /var/www/html/phptest.php
<?php
phpinfo();

ブラウザで”https://xxx.xxx.xx.xx/phptest.php”へアクセス。(xxxはサーバーのIPアドレスかホスト名)

確認が終わったらセキュリティ上よろしくないのでphptest.phpファイルを削除する。

# rm /var/www/html/phptest.php
rm: remove regular file '/var/www/html/phptest.php'? y
タイトルとURLをコピーしました