LoginSignup
4
4

More than 3 years have passed since last update.

RedHat Enterprise Linux 7でRHSCL PHP 7.2を使う

Last updated at Posted at 2019-04-29

前置き

WordPressの次期バージョンからはPHP 5.4で動作しなくなり、PHP 5.6以上が要求される。試しにRedHat Enterprise Linux 7 (RHEL7)の環境でWordPress 5.2 beta3をインストールしようとすると以下のようなメッセージが表示されるだけでインストール画面すら表示されない。

Your server is running PHP version 5.4.16 but WordPress 5.2-beta3 requires at least 5.6.20.

CentOSであればRemiリポジトリを使って新しいPHPを利用することが一般的だと思われる。しかしRHEL7で同様にするとRedHatのサポートが得られなくなってしまうため、サポートを得られる方法で新しいバージョンのPHPを使う方法を考える。

対策方法

RedHat Software Collections (RHSCL)を利用する方法があり、期間の制限はあるがRedHatのサポートが得られる。PHP 7.2であれば2020/11までサポートされる。2019年12月に追加されたPHP 7.3は2021/12までとなっている。
既にPHP 5.6は2018/4でサポートが終了しているため、今回は検討しない。

インストールする環境について

PHP 7.2を導入する際にはいくつかの方法が考えられるが、RHSCL版PHPとApache httpdをセットでインストールする方法は他の人が書いていると思われる。
そのため、以下のような環境を想定してみる。

  • 同一サーバで他にもPHPアプリが動作している
  • 他のPHPアプリはPHP 7.2で動作するか検証できてない
  • 既存のPHPアプリへの影響が無いように設定する
  • そのため指定したPHPアプリでだけPHP 7.2を利用する
  • httpdを2つ動作させて80と81ポートで待ち受けのようなことはしたくない

というケースを想定して導入してみる。
両方でDSO(mod_php)を利用しようとすると条件を満たせないため、少なくともPHP 7.2ではphp-fpmを利用する必要がある(リバースプロキシの導入は今回は考えない)。

インストールと設定

httpdとPHP 5.4、PHP7.2をインストールする。

# yum install httpd php

# yum-config-manager --enable rhel-server-rhscl-7-rpms
# yum install rh-php72 rh-php72-php-fpm

php-fpm を起動する。必要に応じて事前にポート番号を変えたりUNIXソケットを利用するよう設定を変えておく。

# systemctl start rh-php72-php-fpm
# systemctl enable rh-php72-php-fpm

テスト用のディレクトリとファイルを作成する。

# mkdir -p /var/www/html/php56
# echo '<?php phpinfo();' > /var/www/html/php56/phpinfo.php

# mkdir -p /var/www/html/php72
# echo '<?php phpinfo();' > /var/www/html/php72/phpinfo.php

テスト用のhttpdの設定を行う。

/etc/httpd/conf.d/test.conf
<Directory /var/www/html/php56>
</Directory>

<Directory /var/www/html/php72>
  <FilesMatch "\.php$">
    SetHandler application/x-httpd-php
    SetHandler proxy:fcgi://127.0.0.1:9000
  </FilesMatch>
</Directory>

httpdをリロードする

# systemctl reload httpd

ウェブブラウザで両方のディレクトリにアクセスして表示されるPHPのバージョンを確認する。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4