end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

centos 8 & apache2.4 における php7 と php5 の共存

先日、centos8 に php7 を install しましたが、 今回は、その環境へ php5 を install し、共存させます。

install php ver.7.3.15 and wordpress ver.5.3.2 - end0tknr's kipple - 新web写経開発

Win10環境のIISにおける 複数verのphp (php 5 , php7) の共存は 既に実施していますので、そちらをご覧ください。

Win10環境のIISにおける 複数verのphp (php 5 , php7) の共存 - end0tknr's kipple - 新web写経開発

php 5.6 の install

以下の通りです。 前回のphp7との相違点は、 configure時の prefix=/usr/local/php5 や、opensslのver です。

$ wget https://www.php.net/distributions/php-5.6.40.tar.gz
$ tar -zxvf php-5.6.40.tar.gz
./configure \
  --prefix=/usr/local/php5 \
  --enable-mbstring \
  --with-mysqli=mysqlnd \
  --with-pdo-mysql=mysqlnd \
  --with-openssl=/usr/local/openssl_1_0_2 \
  --with-zlib=/usr
$ make
$ make test
$ sudo make install

$ /usr/local/php5/bin/php -v
PHP 5.6.40 (cli) (built: Apr 30 2020 01:42:01) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

php の旧verは、次のurlにて配布されています。

https://www.php.net/releases/

php の設定 ( php.ini )

[Thu Apr 30 02:25:36.696856 2020] [cgid:error]
  [pid 25391:tid 139769904359168] [client 192.168.63.1:13500]
     malformed header from script 'test.php5': Bad header: <b>Security Alert!</b> The PHP

apache の error_log に↑上記のようなエラーが表示される為、 php.ini を作成し、「 cgi.force_redirect = 0 」を設定します

$ /usr/local/php5/bin/php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/php5/lib

$ sudo vi /usr/local/php5/lib/php.ini
cgi.force_redirect = 0

apache 2.4 の設定

拡張子=.php は、module版php の ver.7 で動作させ、 拡張子=.php5 は、cgiphp の ver.5 で動作させます。

以下は、apache設定ファイル(httpd.conf)の抜粋です。

$ vi /home/end0tknr/local/apache/conf/httpd.conf
LoadModule cgid_module modules/mod_cgid.so

<Directory "/home/end0tknr/dev/Test">
   AllowOverride All
   Order allow,deny
   Allow from all

   Options ExecCGI
   AddHandler cgi-script .php5
   AddHandler cgi-script .pl
</Directory>
Alias /Test /home/end0tknr/dev/Test

php cgi ファイルの作成

$ vi /home/end0tknr/dev/Test/test.php5

$ chmod 755 *php5

#!/usr/local/php5/bin/php-cgi
<?php
phpinfo();
?>