2015年07月02日
Tweet
まずは初期状態の確認を行います。
$ sudo apache2ctl -V
Server version: Apache/2.4.7 (Ubuntu)
Server built: Mar 10 2015 13:05:59
Server's Module Magic Number: 20120211:27
Server loaded: APR 1.5.1-dev, APR-UTIL 1.5.3
Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
■mpm_prefork を無効にします。
sudo a2dismod mpm_prefork
■mpm_event を有効にします。
sudo a2enmod mpm_event
Considering conflict mpm_worker for mpm_event:
Considering conflict mpm_prefork for mpm_event:
Considering conflict mpm_itk for mpm_event:
Enabling module mpm_event.
To activate the new configuration, you need to run:
service apache2 restart
■サービスを再起動します。
service apache2 restart
■モジュールが有効になっていることを確認します。
sudo apache2ctl -V |grep MPM:
Server MPM: event
※うまく出力されない場合には、grep を除いて、もう一度。
sudo apache2ctl -V
[Thu Jul XX XX:XX:XX 2015] [:crit] [pid 26926:tid 140673109821312] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
AH00013: Pre-configuration failed
Action '-V' failed.
The Apache error log may have more information.
PHPのモジュールがあるので、ダメだということですね。
■PHPモジュールをOFFにする
sudo sudo a2dismod php5
Module php5 disabled.
To activate the new configuration, you need to run:
service apache2 restart
■サービスを再起動します。
service apache2 restart
■モジュールが有効になっていることを確認します。
sudo apache2ctl -V |grep MPM:
以上でOKです。しかしこれだとPHPが利用できません・・・
fcgid をインストールしたいと思いますが、これは別記事にて。
※なお初期状態のまま ab -n 100 -c 10 http://localhost/testsite/ でテストしたところ、以下のような感じでした。(Wordpressの初期状態に近い感じです)
・mpm_prefork + php5_module
Requests per second: 5.05 [#/sec] (mean)
・mpm_event + fcgid
Requests per second: 4.14 [#/sec] (mean)
やや mpm_event の方が遅かった・・。チューニングが必要かもしれません。
※無効にする前に有効にしようとしたところ、以下のようなエラーがでました。disabled first!だそうです。
$ sudo a2enmod mpm_event
Considering conflict mpm_worker for mpm_event:
Considering conflict mpm_prefork for mpm_event:
ERROR: Module mpm_prefork is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_itk for mpm_event:
※ mpm_prefork を無効にした状態で Apache を再起動しようとすると、以下のようなエラーが。MPMモジュールは何かロードしてね。ってことみたいです。
$ sudo apache2ctl stop
AH00534: apache2: Configuration error: No MPM loaded.
Action 'stop' failed.
The Apache error log may have more information.
$ sudo apache2ctl -V
Server version: Apache/2.4.7 (Ubuntu)
Server built: Mar 10 2015 13:05:59
Server's Module Magic Number: 20120211:27
Server loaded: APR 1.5.1-dev, APR-UTIL 1.5.3
Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
■mpm_prefork を無効にします。
sudo a2dismod mpm_prefork
■mpm_event を有効にします。
sudo a2enmod mpm_event
Considering conflict mpm_worker for mpm_event:
Considering conflict mpm_prefork for mpm_event:
Considering conflict mpm_itk for mpm_event:
Enabling module mpm_event.
To activate the new configuration, you need to run:
service apache2 restart
■サービスを再起動します。
service apache2 restart
■モジュールが有効になっていることを確認します。
sudo apache2ctl -V |grep MPM:
Server MPM: event
※うまく出力されない場合には、grep を除いて、もう一度。
sudo apache2ctl -V
[Thu Jul XX XX:XX:XX 2015] [:crit] [pid 26926:tid 140673109821312] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
AH00013: Pre-configuration failed
Action '-V' failed.
The Apache error log may have more information.
PHPのモジュールがあるので、ダメだということですね。
■PHPモジュールをOFFにする
sudo sudo a2dismod php5
Module php5 disabled.
To activate the new configuration, you need to run:
service apache2 restart
■サービスを再起動します。
service apache2 restart
■モジュールが有効になっていることを確認します。
sudo apache2ctl -V |grep MPM:
以上でOKです。しかしこれだとPHPが利用できません・・・
fcgid をインストールしたいと思いますが、これは別記事にて。
※なお初期状態のまま ab -n 100 -c 10 http://localhost/testsite/ でテストしたところ、以下のような感じでした。(Wordpressの初期状態に近い感じです)
・mpm_prefork + php5_module
Requests per second: 5.05 [#/sec] (mean)
・mpm_event + fcgid
Requests per second: 4.14 [#/sec] (mean)
やや mpm_event の方が遅かった・・。チューニングが必要かもしれません。
※無効にする前に有効にしようとしたところ、以下のようなエラーがでました。disabled first!だそうです。
$ sudo a2enmod mpm_event
Considering conflict mpm_worker for mpm_event:
Considering conflict mpm_prefork for mpm_event:
ERROR: Module mpm_prefork is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_itk for mpm_event:
※ mpm_prefork を無効にした状態で Apache を再起動しようとすると、以下のようなエラーが。MPMモジュールは何かロードしてね。ってことみたいです。
$ sudo apache2ctl stop
AH00534: apache2: Configuration error: No MPM loaded.
Action 'stop' failed.
The Apache error log may have more information.