PHP5.6.40をFPM(mod_fcgid)で動かすための備忘録

まずはダウンロード

cd /usr/local/src
wget https://www.php.net/distributions/php-5.6.40.tar.gz
wget wget https://www.openssl.org/source/old/0.9.x/openssl-0.9.8zf.tar.gz
tar -xvzf  php-5.6.40.tar.gz
./configure --prefix=/opt/php-5.6.40f --enable-fpm --enable-mbstring --enable-mysqlnd --with-curl --with-gd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pcre-dir --with-pdo-mysql=mysqlnd --with-pear --with-regex=php --with-zlib

ここでエラー。エラーが出なかった場合、makeに進む
必要なライブラリをyumでインストール

yum install gcc libxm2-devel libpng-devel lib curl-devel

コンパイルが通ったら

make
make install

FPMの設定

FPMの設定デフォルトファイルをコピー

cp /opt/php-5.6.40f/etc/php-fpm.conf.default /opt/php-5.6.40f/etc/php-fpm.conf
vim /opt/php-5.6.40f/etc/php-fpm.conf

PHP-FPMの設定ファイルを編集

[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log

[www]
user = apache
group = apache
listen = var/run/php-fpm.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660

ApacheモジュールとしてインストールしていないためApacheの起動ではPHPが動かないためphp-fpmの起動スクリプトをコピーして編集

cp /usr/local/src/php-5.6.40/sapi/fpm /php-fpm.service /etc/systemd/system/php-fpm-5.6.40.service
PIDFile=/opt/php-5.6.40f/var/run/php-fpm.pid
ExecStart=/opt/php-5.6.40f/sbin/php-fpm --nodaemonize --fpm-config /opt/php-5.6.40f/etc/php-fpm.conf

systemdを有効化

systemctl daemon-reload
systemctl enable php-fpm-5.6.40.service

#起動
systemctl start php-fpm-5.6.40.service

Apache (mod_fcgid)の設定

今回はApacheのmod_fcgidを利用するためApache CONFのPHP-FPMを使いたいDirectoryディレクティブに下記SetHandlerを記述

AddHandler fcgid-script .php
<FilesMatch \.php$>
       SetHandler "proxy:unix:/opt/php-5.6.40f/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>

複数バージョンのPHP-FPMがある場合 SetHandlerでバージョン分けが可能。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次