動作確認環境
事情によりバージョンをダウングレードしました。新しいバージョンでも動作するはずです。
- 仮想環境 VMware Workstation Player 12.5.9
- OS Windows 10 Pro 64bit
仮想環境
- OS CentOS 7.4 (1708) minimalインストール
- メモリ 2GB
- HDD 250GB
前提条件
- gcc 8.1.0
- cmake 3.11.4
- MySQL 5.7.22
- OpenSSL 1.1.0.h
- Apache 2.4.33
依存するパッケージをインストール
yumでパッケージをインストールすると2つのパッケージが「利用できません」と表示されるので、事前にインストールする。
パッケージ libmcrypt-devel は利用できません。
パッケージ libtidy-devel は利用できません。
2つのパッケージは通常のyum
のインストールではできないのでepel-release
を利用する。epel-release
をインストールしてから、それぞれのパッケージをインストールする。
yum -y install epel-release
yum -y --enablerepo=epel install libmcrypt-devel
yum -y --enablerepo=epel install libtidy-devel
PHPで必要なパッケージをインストールする。
yum -y install libxml2-devel openssl-devel freetype-devel libcurl-devel net-snmp-devel libpng-devel libjpeg-turbo-devel openldap-devel readline-devel gd-devel bzip2-devel libicu-devel libwebp-devel gmp-devel libxslt-devel
ダウンロード・展開
最新バージョンの確認
PHP: Downloads
/usr/local/src
ディレクトリを移動する。
cd /usr/local/src
ソースファイルをダウンロードする。
wget http://jp2.php.net/get/php-7.2.6.tar.gz/from/this/mirror
ファイル名がmirror
になっているので、変更する。
mv mirror php-7.2.6.tar.gz
ダウンロードしたファイルを展開する。
tar zxvf php-7.2.6.tar.gz
コンパイル・インストール
展開したディレクトリに移動します。
cd php-7.2.6
コンパイル・インストール
./buildconf --force
./configure --with-libdir=lib64 --with-pic --with-bz2 --with-freetype-dir --with-png-dir --with-xpm-dir --with-gettext --with-gmp --with-iconv --with-jpeg-dir --with-curl --with-webp-dir --with-png-dir --with-openssl --with-pcre-regex --with-zlib --with-layout=GNU --enable-exif --enable-ftp --enable-sockets --with-kerberos --enable-shmop --enable-calendar --with-libxml-dir --with-mhash --with-ldap --with-readline --with-snmp --with-tidy --with-xsl --with-gnu-ld --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --enable-mbstring --with-gd --with-apxs2=/usr/local/apache2/bin/apxs
make
make install
エラー対策
./configure
にて以下の内容のエラーで停止した場合。
configure: error: Cannot find libtidy
libtidy
関連のパッケージをインストールする。
yum -y install libtidy libtidy-devel
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/l/libwebp-0.4.3-3.el6.x86_64.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/l/libwebp-devel-0.4.3-3.el6.x86_64.rpm
この後、./configure
が実行できる。
設定
初期設定
設定ファイルphp.ini
をソースファイルからコピーする。
cp php.ini-development /usr/local/etc/php.ini
エラーログの出力先を作成、オーナーの変更、パーミッションを変更する。
mkdir /var/log/php
chown daemon /var/log/php
chmod 755 /var/log/php
php.iniの設定
php.ini
を編集する。
vi /usr/local/etc/php.ini
変更内容
error_log = "/var/log/php/php_errors.log"
expose_php = Off
date.timezone = 'Asia/Tokyo'
post_max_size = 100M
upload_max_filesize = 100M
Apacheの設定
httpd.confを編集する。
vi /usr/local/apache2/conf/httpd.conf
libphp7.so
が記入されていることを確認する。
LoadModule php7_module modules/libphp7.so
以下の項目をLoadModule
の下に追記する。(場所の指定はありませんが、わかりやすくするため)
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
以上で、apacheを再起動しエラーが表示されず、apacheで設定したhtml及びphpの初期ディレクトリ(標準では/usr/local/apache2/htdocs
)にindex.phpを作成phpinfo()コマンドを保存し、ブラウザでPHPの設定内容が表示されればWebサーバ、PHP共に起動が成功です。
この状態ではHTTP2及びHTTPS(SSL)にはなっていません。
<?php
phpinfo();
?>
参考
CentOS7.1 64bitのyumリポジトリにEPELを追加 | kakiro-web カキローウェブ
PHP compile errors – CentOS WebPanel Wiki