skimemo


skimemo - 日記/2019-12-05/CentOS7+ApacheでPHP5とPHP7を共存させる の変更点


#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,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などでステップ実行している時間も算入されますので、デバッグする場合は長めにする必要があります。
 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: &#x5b;[[Linux>日記/Category/Linux]]&#x5d; - 12:11:43
----
RIGHT:&blog2trackback();
#comment(above)
#blog2navi()