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
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
.htaccessのphp_flagが使えなかったりと、まだまだ問題はあるが、これから動作テストをしてみる。
ひとまず、これで起動はできた。