コスギデンサン >> 情報系メモ >> CentOS7

PHP7 インストール 2017/10


■インストール

必要なライブラリのインストール
# yum install libxml2-devel

ソースのダウンロード
$ wget http://jp2.php.net/get/php-7.1.11.tar.bz2/from/this/mirror
$ mv mirror php-7.1.11.tar.bz2 /* mirrorという名前のファイルができるので */
$ sha256sum php-7.1.11.tar.bz2 /* ファイル確認 */
$ tar xjvf php-7.1.11.tar.bz2 

コンパイルとインストール
$ cd php-7.1.11
$ ./configure --enable-fpm --enable-mbstring --with-openssl
$ make
$ make test
# make install
※ /usr/local/etc 以下にphp-fpm関連のファイル群ができる。

開発用設定ファイルをコピー
# cp php.ini-development /usr/local/lib/php.ini

php-fpm用設定ファイルの作成
# cd /usr/local/etc
# cp php-fpm.conf.default php-fpm.conf
/* 125行目 */
include=NONE/etc/php-fpm.d/*.conf
include=/usr/local/etc/php-fpm.d/*.conf
# cd /usr/local/etc/php-fpm.d
# cp www.conf.default www.conf

php-fpmの自動起動設定
/usr/lib/systemd/system/php-fpm.serviceファイルを作成する。
[Unit]
Description=The PHP 7 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/usr/local/var/run/php-fpm.pid
ExecStart=/usr/local/sbin/php-fpm --nodaemonize --fpm-config /usr/local/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
# systemctl start php-fpm
# systemctl status php-fpm
● php-fpm.service - The PHP 7 FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since 火 2017-10-31 23:26:07 JST; 11s ago
 Main PID: 6727 (php-fpm)
   CGroup: /system.slice/php-fpm.service
           tq6727 php-fpm: master process (/usr/local/etc/php-fpm.conf)
           tq6728 php-fpm: pool www
           mq6729 php-fpm: pool www


■phpinfo()を表示する。

phpinfo.php
<?php phpinfo(); ?>
nginx.conf 下記をコメントアウト
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
    include        fastcgi_params;
}
※ fastcgi_param行を修正
# systemctl reload nginx
ブラウザでアクセスして表示内容を確認する。
http://hoeg/phpinfo.php


■PostgreSQLとの連携

undefined function pg_connect() エラーの時
$ ./configure --enable-fpm --enable-mbstring --with-openssl --with-pgsql=/usr/local/pgsql
$ make
$ make test
# systemctl stop php-fpm
# make install
# systemctl start php-fpm
※ 事前にPostgreSQLをインストール済み