※ 2021/1/31 追記
一度、php 7.2でmod_php をmake しましたが、pdo 等が利用できなかった為、 その後、php 7.3.26 を使用しています。
以前の CentOS6 では、
# yum install httpd-devel php-devel
により、mod_php ( /etc/httpd/modules/libphp5.so )がinstallされていました。
2020/11時点で最新の CentOS8 / RHEL8 へ apache + php を install しても、 mod_php (libphp7.so)は installされません。
RHEL8 より、apache の MPM の defaultが prefork→event に変更され、 phpに関してもdefaultが mod_php → php-fpm に変更されたようです。
以降では、RHEL8 における Apache2.4 & php7 (from yum) + mod_php(from source) の install を記載します。
STEP 1 - install Apache2.4 & php7 from yum
$ sudo yum install httpd-devel $ sudo yum install php-devel
まず、yum で apache & php を install します。 この状態では、apache は MPM=event 、 php は mod_phpなし ( /etc/httpd/modules/libphp7.so ) です
$ /usr/sbin/httpd -V Server version: Apache/2.4.37 (Red Hat Enterprise Linux) Server built: Jun 15 2020 11:51:05 Server's Module Magic Number: 20120211:83 Server loaded: APR 1.6.3, APR-UTIL 1.6.1 Compiled using: APR 1.6.3, APR-UTIL 1.6.1 Architecture: 64-bit Server MPM: event ★★ HERE ★★ threaded: yes (fixed thread count) forked: yes (variable process count) : $ ls /etc/httpd/modules/libphp* ls: cannot access '/etc/httpd/modules/libphp*': No such file or directory
STEP 2 - Apache2.4 MPM の event → prefork 化
以下のように、apache 設定ファイル修正 & apache 再起動だけでOKです。
$ sudo vi /etc/httpd/conf.modules.d/00-mpm.conf old) #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so old) LoadModule mpm_event_module modules/mod_mpm_event.so new) LoadModule mpm_prefork_module modules/mod_mpm_prefork.so new) #LoadModule mpm_event_module modules/mod_mpm_event.so $ sudo systemctl restart httpd $ /usr/sbin/httpd -V Server version: Apache/2.4.37 (Red Hat Enterprise Linux) Server built: Jun 15 2020 11:51:05 Server's Module Magic Number: 20120211:83 Server loaded: APR 1.6.3, APR-UTIL 1.6.1 Compiled using: APR 1.6.3, APR-UTIL 1.6.1 Architecture: 64-bit Server MPM: prefork ★★ HERE ★★ threaded: no forked: yes (variable process count)
STEP 3 - install mod_php ( /etc/httpd/modules/libphp5.so )
私が探した限り、yum では mod_php を単独で install できないようですので source から build します。
まず、前準備
$ sudo yum install wget $ sudo yum install make $ sudo yum install libxml2-devel
次に、source download や build.
「--with-apxs2=/usr/bin/apxs」により、libphp7.so が buildされるので、 これを /etc/httpd/modules/libphp7.so へ copy すれば、完了です。
$ wget https://www.php.net/distributions/php-7.2.24.tar.gz $ tar -xvf php-7.2.24.tar.gz $ cd php-7.2.24 $ ./configure \ --with-apxs2=/usr/bin/apxs \ --enable-mbstring \ --with-mysqli=/usr/bin/mysql_config \ --with-pdo-mysql=/usr/bin/mysql_config \ --with-mysql=/usr/bin/mysql_config \ --with-pdo-pgsql=/usr/bin/pg_config $ make $ make test $ ls -lh ./libs/libphp7.so -rwxrwxr-x. 1 44M Nov 28 22:06 ./libs/libphp7.so $ sudo cp libs/libphp7.so /etc/httpd/modules/
STEP 4 - apache の設定変更
この前のSTEP までに、mod_php の installは完了していますので apacheの設定file (httpd.conf)へ mod_php の設定を追加して下さい。
$ sudo vi /etc/httpd/conf/httpd.conf LoadModule php7_module modules/libphp7.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> $ sudo systemctl restart httpd
STEP 5 - mod_php の動作確認
いつもの? phpinfo() を仕込んだ後に、ブラウザでアクセスし、 表示されれば、OKかと思います。
$ sudo vi /var/www/html/test.php <?php phpinfo(); ?>