下記の条件でインストールされている環境として解説と手順を進めています。
- PHP-7.2(PHPのバージョン7.2)のモジュール版がインストールされている
参照ページ
CentOS-7/PHP-7.2/インストール(FastCGI・suEXEC対応)
- PHP-FPMがインストールされている
参照ページ
CentOS-7/PHP-7.2/インストール(FastCGI・suEXEC対応)
- Apacheのモジュール「mod_fcgid」がインストールされている
参照ページ
CentOS-7/Apache/インストール(suEXEC対応)
モジュール版としてインストールしたPHPのモジュール機能を無効にして、FastCGIの機能を有効になるように設定していきます。
PHP-FPMの起動と自動起動の設定
インストール済のPHP-FPMを起動し、自動起動もONに設定します。
PHP-FPMを起動させます
PHP-FPMを起動します。
既に起動させている場合は、スルーしてください。
PHP-FPM 起動
[root@vm ~]# systemctl start php72-php-fpm
[root@vm ~]#
PHP-FPMの自動起動を設定します
PHP-FPMのサービスをONにして有効化します。PHP-FPM サービス 有効化
[root@vm ~]# systemctl enable php72-php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php72-php-fpm.service to /usr/lib/systemd/system/php72-php-fpm.service.
[root@vm ~]#
モジュール版PHPを無効化させる
yumコマンドでPHP-7.2をインストールした場合、モジュール仕様になっていると思います。FastCGIに対応させるならば、モジュール版のPHPを動かしている必要はないです。
ということで、ここでは、モジュール版のPHPを無効に設定します。
設定ファイルをバックアップ
[root@vm ~]# cp -a /etc/httpd/conf.d/php72-php.conf /etc/httpd/conf.d/php72-php.conf.org
[root@vm ~]#
php72-php.conf モジュール無効化
#----- php.conf を編集して、モジュール版を無効にする
# vi /etc/httpd/conf.d/php72-php.conf
#--------------------------------------------------
<FilesMatch \.(php|phar)$>
SetHandler application/x-httpd-php
</FilesMatch>
↓ コメントアウト化する
#<FilesMatch \.(php|phar)$>
# SetHandler application/x-httpd-php
#</FilesMatch>
#--------------------------------------------------
#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#
Apacheを再読込または再起動します
Apacheの設定を変更したので、httpd の設定を再読込またはサービスを再起動します。
Apache リロードまたは再起動
#----- httpdを再読み込みします
[root@vm ~]# systemctl reload httpd.service
[root@vm ~]#
#----- httpdの再起動でもOK
[root@vm ~]# systemctl restart httpd.service
[root@vm ~]#
FastCGIに対応する設定
FastCGIに対応する設定を追加していきます。
/usr/bin/php72-cgi のシンボリックリンクとして、/usr/local/bin/php を作成します。
ユーザーのホームディレクトリ配下に自動作成されるように設定しています。
これを追加しておかないと、Linuxユーザーを追加作成する度に手動でファイルを作成する必要があります。
PHPの関数 phpinfo(); で確認することにします。
既に設置してある場合は、スルーしてください。
設置していない場合は、例えば adminユーザーの配下にファイルを設置してください。
設置した場所のアドレスをWebブラウザに入力して、アクセスします。
例:http://192.168.56.250/phpinfo.php
PHP Version 7.2.18 のページが表示されれば、正常に動作しています。
モジュール版からFastCGI版として動作するように設定しているので、
【Server API】は、「CGI/FastCGI」が表示されていると思います。
PHP-7.2(PHPのバージョン7.2)をFastCGIとして動作させる方法の手順を解説しました。
以上、CentOS-7のPHP-7.2(PHPのバージョン7.2)のFastCGIの設定でした。
シンボリックリンクを作成する
シンボリックリンクの作成 PHPバージョン7.2 をデフォルトのPHPとして動作させる為、/usr/bin/php72-cgi のシンボリックリンクとして、/usr/local/bin/php を作成します。
php72-cgi シンボリックリンク作成
#----- php72-cgi のシンボリックリンクを作成
[root@vm ~]# ln -s /usr/bin/php72-cgi /usr/local/bin/php
[root@vm ~]#
php.cgiを作成する
ユーザーのホームディレクトリ配下に、fast-cgi-bin を設定する為のディレクトリ「.fast-cgi-bin」とファイル「php.cgi」を作成します。fast-cgi-bin ディレクトリ作成
#----- fast-cgi-binのディレクトリを作成する
[root@vm ~]# mkdir /home/admin/.fast-cgi-bin
[root@vm ~]#
php.cgi 作成
[root@vm ~]# vi /home/admin/.fast-cgi-bin/php.cgi
#--------------------------------------------------
#!/bin/sh
exec /usr/local/bin/php
#--------------------------------------------------
#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#
.fast-cgi-bin 所有者 変更
[root@vm ~]# chown -R admin:admin /home/admin/.fast-cgi-bin
[root@vm ~]#
php.cgi パーミッション 変更
[root@vm ~]# chmod 0711 /home/admin/.fast-cgi-bin/php.cgi
[root@vm ~]#
ApacheのVirtualHostに設定を追加する
ApacheのVirtualHostの設定で、adminユーザーを設定しているものとして、 adminユーザーに、FastCGI用の設定を追記します。Apache VirtualHost 設定
#----- /etc/httpd/conf.d/vhost.conf に FcgidWrapper を追加する
# vi /etc/httpd/conf.d/vhost.conf
#--------------------------------------------------
<VirtualHost _default_:80>
#★ 追記する
FcgidWrapper /home/admin/.fast-cgi-bin/php.cgi .php
</VirtualHost>
<VirtualHost _default_:443>
#★ 追記する
FcgidWrapper /home/admin/.fast-cgi-bin/php.cgi .php
</VirtualHost>
#--------------------------------------------------
#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#
ユーザー追加作成時の設定
Linuxユーザーを追加作成したと同時にFastCGI用のファイルが自動で作成されるよに設定します。ユーザーのホームディレクトリ配下に自動作成されるように設定しています。
これを追加しておかないと、Linuxユーザーを追加作成する度に手動でファイルを作成する必要があります。
fast-cgi-bin ディレクトリ 作成
[root@vm ~]# mkdir /etc/skel/.fast-cgi-bin
[root@vm ~]#
php.cgi 作成
[root@vm ~]# vi /etc/skel/.fast-cgi-bin/php.cgi
#--------------------------------------------------
#!/bin/sh
exec /usr/local/bin/php
#--------------------------------------------------
#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#
php.cgi パーミッション 変更
[root@vm ~]# chmod 0711 /etc/skel/.fast-cgi-bin/php.cgi
[root@vm ~]#
動作確認
最後に確認します。PHPの関数 phpinfo(); で確認することにします。
既に設置してある場合は、スルーしてください。
設置していない場合は、例えば adminユーザーの配下にファイルを設置してください。
サンプリページ作成
[root@vm ~]# echo " /home/admin/public_html/phpinfo.php
[root@vm ~]#
所有者 変更
[root@vm ~]# chown admin:admin /home/admin/public_html/phpinfo.php
[root@vm~]#
設置した場所のアドレスをWebブラウザに入力して、アクセスします。
例:http://192.168.56.250/phpinfo.php
PHP Version 7.2.18 のページが表示されれば、正常に動作しています。
モジュール版からFastCGI版として動作するように設定しているので、
【Server API】は、「CGI/FastCGI」が表示されていると思います。
PHP-7.2(PHPのバージョン7.2)をFastCGIとして動作させる方法の手順を解説しました。
以上、CentOS-7のPHP-7.2(PHPのバージョン7.2)のFastCGIの設定でした。
0 件のコメント:
コメントを投稿