Apacheをマルチスレッド(worker)環境にしてPHP(CGI/FastCGI)を動かす

環境は以下のとおり

どちらもローカル環境だったのでyumで取得しました。

まずはApacheの停止

/etc/init.d/httpd stop

Apacheのmpmを変更

vi /etc/sysconfig/httpd

#
# The default processing model (MPM) is the process-based
# 'prefork' model.  A thread-based model, 'worker', is also
# available, but does not work with some modules (such as PHP).
# The service must be stopped before changing this variable.
#
HTTPD=/usr/sbin/httpd.worker  #コメントを外す

PHPモジュールを一旦解除

vi /etc/httpd/conf.d/php.conf

#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#

#LoadModule php5_module modules/libphp5.so  #コメント化

#
# Cause the PHP interpreter to handle files with a .php extension.
#
#AddHandler php5-script .html .htm .php .php4 .php3 .phtml           #コメント化
#AddType application/x-httpd-php .html .htm .php .php4 .php3 .phtml  #コメント化

FastCGIのインストール(ローカルだしyumでやっちゃいます)

yum install mod_fcgid

httpd.confにPHPCGIとして動かす設定を追加

vi /etc/httpd/conf/httpd.conf

<IfModule mod_fcgid.c>
    AddHandler fcgid-script .php
    <Directory "/home/*****/public_html/"> #phpを動かすディレクトリ
        FCGIWrapper /usr/bin/php-cgi .php #php-cgiへのパス
        Options +ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</IfModule>

php-cgiへのパスが分からなければ、以下のコマンドで確認

which php-cgi

最後にApacheの起動

/etc/init.d/httpd start

.htaccessphp_flagが使えなかったりと、まだまだ問題はあるが、これから動作テストをしてみる。
ひとまず、これで起動はできた。


プライバシーポリシー お問い合わせ