- 追加された行はこの色です。
- 削除された行はこの色です。
#blog2navi()
*CentOS7+ApacheでPHP5とPHP7を共存させる [#rc879c88]
** 概要 [#bbae49af]
-- もともとApache+PHP5.6で動いているサーバー
-- 既存の環境には影響を与えたくない
-- 新たなVirtualHostだけPHP7で動作させる~
これらを実現するため、PHP5.6は今まで通りモジュールで動かし、PHP7はfcgiで動かします。
** 手順 [#sefdb1bc]
+ PHP7.3のインストール~
sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum install yum-utils
sudo yum-config-manager --enable remi
sudo yum install php73-php-{opcache,pecl-apcu,pecl-memcached}
sudo yum install php73-php-{opcache,pecl-apcu,pecl-memcached,cli,gd,mbstring,mcrypt,mysqlnd,pdo,xml}
sudo yum install php73-php-fpm
remiリポジトリでインストールすると、既存のPHP5環境には影響を与えず、別のディレクトリ群にPHP7をインストールすることができます。~
~
+ php-fpmの設定
sudo vi /etc/opt/remi/php73/php-fpm.d/www.conf
以下の部分を変更します。(UNIX socketで接続するケース)
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
pidファイルを作成するためのディレクトリを作ります。
sudo mkdir /var/run/php-fpm
~
+ Apacheの設定
sudo vi /etc/httpd/conf.d/vhost.conf
php-fpmとの連携を追記します。
<VirtualHost *:443>
ServerName vhost.example.jp
DocumentRoot /var/www/hoge
<FilesMatch \.php$>
SetHandler proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost
</FilesMatch>
:
</VirtualHost>
通常のVirtualHost設定に、<FilesMatch>〜</FilesMatch>部分を追加するだけです。~
~
また、長い処理がタイムアウトにならないよう、適当な時間を設定してあげます。これは、xdebugなどでステップ実行している時間も算入されますので、デバッグする場合は長めにする必要があります。
<IfModule fcgid_module>
FcgidIOTimeout 120
</IfModule>
ProxyTimeout 300
~
+ 起動
sudo systemctl start php73-php-fpm
sudo systemctl enable php73-php-fpm
sudo systemctl reload httpd
上記の例で言うと、&inlinecode{/var/www/hoge/inde.php};などを作って、&inlinecode{https://vhost.example.jp/};にアクセスし、表示されれば成功です。~
上記の例で言うと、&inlinecode{/var/www/hoge/index.php};などを作って、&inlinecode{https://vhost.example.jp/};にアクセスし、表示されれば成功です。~
この方法であれば、恐らく(試してないけど)何個でも異なるバージョンのPHPを共存させることが可能だと思います。(その場合sockファイル名は分ける)
** 参考 [#z60cb277]
-- [[Yum で複数バージョンの PHP を共存させる:https://qiita.com/bezeklik/items/860ba080bf4c664cd8e9]]
-- [[ApacheでPHP-FPMを動かすなら、ProxyPassMatchではなくSetHandlerを使うのがいいらしい:https://qiita.com/shimoju/items/8e9c2a7bddd64e878799]]
#htmlinsert(twitterbutton.html)
RIGHT:Category: [[[Linux>日記/Category/Linux]]] - 12:11:43
----
RIGHT:&blog2trackback();
#comment(above)
#blog2navi()