フリーソフト/Apache MPM
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
RIGHT: [[フリーソフトウェアのコンパイル]]
Apache MPM の覚え書き
Apache の MPM(Multi Processing Module) をスレッド型(Worke...
動かす場合,
PHP はスレッドセーフなモードで動かす必要があるようだ.
それには大きく分けて 2つの方法がある.
-(A) PHP-FPM(First PHP Module?) + FastCGI で PHP を動か...
Apache からは CGI として PHP を実行する.
-(B) ZTS(Zend Thread Safe) モードを組み込んだ PHP を動か...
以下,CentOS 7.4 + EPEL の PHP 5.6 でのお話
-----
*(1)Apache を Event MPM で動かす [#ya3a1139]
**1.1 以下の内容で /etc/httpd/conf.d/mpm.conf を作成する...
---------------------
# Event
<IfModule mpm_event_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
</Ifmodule>
# Prefork
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 256
MaxRequestWorkers 256
MaxConnectionsPerChild 4000
KeepAlive Off
# KeepAlive On
# MaxKeepAliveRequests 80
# KeepAliveTimeout 120
</IfModule>
---------------------
**1.2 以下の内容で /etc/httpd/conf.modules.d/00-mpm.conf ...
---------------------
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.s...
LoadModule mpm_event_module modules/mod_mpm_event.so <--...
---------------------
この設定後,apache を再起動すれば,
PHP のモジュールとして libphp5.so ではなく,libphp5-zts.s...
これにより,上記(B)は実現される.
なお,PHP の設定ファイルは
/etc/php.d/
でなく,
/etc/php-zts.d/
になる.
(B)の実現は楽チン.
----
*(2)PHP-FPM をインストール [#nfdadc8b]
# yum install php-fpm
/etc/php-fpm.d/www.conf を編集.
---------------------
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock
;listen.owner = nobody
;listen.group = nobody
listen.owner = apache
listen.group = apache
環境に合わせて編集(とりあえずデフォルトを使用)
pm =
pm.max_children =
pm.start_servers =
pm.min_spare_servers =
pm.max_spare_servers =
pm.max_requests =
---------------------
# systemctl enable php-fpm
# systemctl start php-fpm
*(3)PHP Handler の設定 [#zde79229]
Apache 2.4.10 以降では,下記の記述が可能.
(となっているが,CentOS7 の Apache 2.4.6 でも可能だった.)
<IfModule mpm_event_module>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi:/...
</FilesMatch>
</IfModule>
これで (A)の実現可能.
終了行:
RIGHT: [[フリーソフトウェアのコンパイル]]
Apache MPM の覚え書き
Apache の MPM(Multi Processing Module) をスレッド型(Worke...
動かす場合,
PHP はスレッドセーフなモードで動かす必要があるようだ.
それには大きく分けて 2つの方法がある.
-(A) PHP-FPM(First PHP Module?) + FastCGI で PHP を動か...
Apache からは CGI として PHP を実行する.
-(B) ZTS(Zend Thread Safe) モードを組み込んだ PHP を動か...
以下,CentOS 7.4 + EPEL の PHP 5.6 でのお話
-----
*(1)Apache を Event MPM で動かす [#ya3a1139]
**1.1 以下の内容で /etc/httpd/conf.d/mpm.conf を作成する...
---------------------
# Event
<IfModule mpm_event_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
</Ifmodule>
# Prefork
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 256
MaxRequestWorkers 256
MaxConnectionsPerChild 4000
KeepAlive Off
# KeepAlive On
# MaxKeepAliveRequests 80
# KeepAliveTimeout 120
</IfModule>
---------------------
**1.2 以下の内容で /etc/httpd/conf.modules.d/00-mpm.conf ...
---------------------
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.s...
LoadModule mpm_event_module modules/mod_mpm_event.so <--...
---------------------
この設定後,apache を再起動すれば,
PHP のモジュールとして libphp5.so ではなく,libphp5-zts.s...
これにより,上記(B)は実現される.
なお,PHP の設定ファイルは
/etc/php.d/
でなく,
/etc/php-zts.d/
になる.
(B)の実現は楽チン.
----
*(2)PHP-FPM をインストール [#nfdadc8b]
# yum install php-fpm
/etc/php-fpm.d/www.conf を編集.
---------------------
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock
;listen.owner = nobody
;listen.group = nobody
listen.owner = apache
listen.group = apache
環境に合わせて編集(とりあえずデフォルトを使用)
pm =
pm.max_children =
pm.start_servers =
pm.min_spare_servers =
pm.max_spare_servers =
pm.max_requests =
---------------------
# systemctl enable php-fpm
# systemctl start php-fpm
*(3)PHP Handler の設定 [#zde79229]
Apache 2.4.10 以降では,下記の記述が可能.
(となっているが,CentOS7 の Apache 2.4.6 でも可能だった.)
<IfModule mpm_event_module>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi:/...
</FilesMatch>
</IfModule>
これで (A)の実現可能.
ページ名: