このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

CentOS-7/PHP-7.2/FastCGI設定(suEXEC対応)

CentOS-7のPHP-7.2(PHPのバージョン7.2)で、FastCGIの設定をおこなっていきます。

下記の条件でインストールされている環境として解説と手順を進めています。

  1. PHP-7.2(PHPのバージョン7.2)のモジュール版がインストールされている
    参照ページ
    CentOS-7/PHP-7.2/インストール(FastCGI・suEXEC対応)
     
  2. PHP-FPMがインストールされている
    参照ページ
    CentOS-7/PHP-7.2/インストール(FastCGI・suEXEC対応)
     
  3. 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に対応する設定を追加していきます。

シンボリックリンクを作成する

シンボリックリンクの作成 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 件のコメント:

人気記事

このブログを検索