Apacheを別ポートで起動して、php7を使えるようにする
問題
既存のApacheを流用して別ポートで起動して、php7を使えるようにしたいです。
http://192.0.2.123/ → php5(モジュール版) http://192.0.2.123:8000/ → php7(モジュール版)
答え
ポートを変えてしまえば、片方はfastcgi版などしなくてよいのがいいですね。
以下、CentOSにて。
1.Apacheインストール
apache、php5は、標準のリポジトリからのRPMでインストールしてあるものとする。
yum install httpd php
2.Apacheを別ポートで起動する設定
1) ServerRootをコピー
cp -pr /etc/httpd /etc/httpd-php7
2) logs(ログファイル置き場), run(pidファイルなどが入る)のディレクトリ作成(ディレクトリ構成によっては不要)
mkdir /var/log/httpd-php7 mkdir /var/run/httpd-php7
3) シンボリックリンクを修正(ディレクトリ構成によっては不要)
cd /etc/httpd-php7 rm logs rm run ln -s ../../var/log/httpd-php7 logs ln -s ../../var/run/httpd-php7 run
4) httpd.conf を修正
Listen 80 → 8000 ServerName 192.0.2.123:80 → 192.0.2.123:8000 ServerRoot /etc/httpd → /etc/httpd-php7 (PidFile は run/httpd.pid と指定されていたら、シンボリックリンクを修正してあるのでそのままでよい。)
3.php7(モジュール版)を用意
–with-apxs2 付きで自前でコンパイル。
wget http://jp2.php.net/get/php-7.0.4.tar.xz/from/this/mirror -O php-7.0.4.tar.xz xz -d php-7.0.4.tar.xz tar -xf php-7.0.4.tar cd php-7.0.4 ./configure --with-apxs2 --prefix=/usr/local/php/7.0.4 --以下-オプションは-お好みで make make install
make install すると、最初にインストールしてある方の /etc/httpd/conf/httpd.conf が書き換えられてしまうので、LoadModule が追加されていたらコメントアウトする。
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so ↓ #LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
4.別ポートで起動するApacheでphp7を実行できるようにする
別ポート用に用意した /etc/httpd-php7 の方で、設定変更。
yum install php していたら、php5 の設定が conf.d/php.conf に書かれていると思うので、conf.d/php.conf の内容を削除して、php7 の LoadModule を追加する。
LoadModule php7_module modules/libphp7.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
5.別ポートでApache起動
とりあえずは以下のようにconfファイルを指定して起動すればOK。
/usr/sbin/httpd -f /etc/httpd-php7/conf/httpd.conf -k start
サービスに登録したり、自動起動スクリプトをいじったりをしてもよい。
コメント