PHPのインストール DSO Ver.7.2.19

 libxml2 yum インストール
rpm 確認
# rpm -qa | grep libxml2

# yum install libxml2-devel


 libxml2 インストール
# cd /tmp
# wget ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz
# tar zxvf libxml2-2.9.4.tar.gz
# cd libxml2-2.9.4
# ./configure
# make
# make install
configure: error: xml2-config not found. Please check your libxml2 installation.
というエラーが発生した場合、"libxml2"をインストール

libxml2-2.9.4:2016.10.31現在 最新バージョン


 mcrypt インストール
# yum install libmcrypt-devel

もしくは

# wget http://jaist.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
# tar zxvf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8/
# ./configure
# make
# make install
参考URL MCrypt 2014.07.28現在 最新バージョン:libmcrypt-2.5.8

 コンパイル
# cd /tmp
# wget http://jp2.php.net/distributions/php-7.1.2.tar.gz
# tar zxvf php-7.1.0.tar.gz
# cd php-7.1.0
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mcrypt --enable-mbstring --enable-mbregex
# make
# make install
PostgreSQLを使用する場合
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pgsql=/usr/local/pgsql --with-mcrypt --enable-mbstring --enable-mbregex

exifを使用する場合
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mcrypt --enable-mbstring --enable-mbregex --enable-exif


 php.ini コピー
# cp php.ini-production /usr/local/lib/php.ini


 /usr/local/lib/php.ini の編集
101行目
output_buffering = On

447行目
default_charset = "UTF-8"

1171行目
mbstring.language = Japanese

1176行目
mbstring.internal_encoding = EUC-JP

1183行目
mbstring.http_output = SJIS

1190行目
mbstring.encoding_translation = On

1194行目
mbstring.detect_order = auto

1198行目
mbstring.substitute_character = none;


 /usr/local/apache2/conf/httpd.conf の編集
53行目
LoadModule php5_module modules/libphp5.so

310行目
AddType application/x-httpd-php .php


 httpd.conf チェック
# /usr/local/apache2/bin/httpd -t

# /usr/local/apache2/bin/apachectl configtest

ともに "Syntax OK" となればOK


 エラーがでたら
/usr/local/apache2/bin/apachectl start Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf:Cannot load /usr/local/apache2/modules/libphp5.so into server:/usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc:Permission denied

# chcon -c -v -R -u system_u -r object_r -t lib_t /usr/local/apache2/modules/ libphp5.so


 直らなければ、SELinuxを停止する。
スタートアップ時にカーネルコマンドラインにselinux=0を渡す。
この場合SELinuxは完全に無効になり、新しいファイルに正しいファイルコンテキストのラベル付けがされず、SELinuxを有効化したときに再ラベル付けをしなければならなくなるので、この方法はお勧めしない。


 もしくは
# vi /etc/selinux/config


 編集
SELINUX=disabled
permissive(許容)モードは、開発やトラブルシューティングのために用意されている。このモードでも、試行された操作が許可されているかどうかがセキュリティポリシーでチェックされ、拒否の場合にはシステムログに記録されるが、実際にはどの操作も拒否されない。
参考
The XML C parser and toolkit of Gnome
Shoulder.jp
SELinux を無効にするには?
@ITMySQL+Apache+PHPをインストールしよう


更新 2019.05.30