Webサーバーの設定を変更してApacheを起動しようとしたら、「Job for httpd.service failed because the control process exited with error code. See “systemctl status httpd.service” and “journalctl -xe” for details.」と表示されてApacheの起動に失敗する。
原因を調査して対策します。
Apacheの状態を調べる
systemctlで調査
エラー表示の中に「See "systemctl status httpd.service"」と書いてあるので、まずsystemctlコマンドでApacheのステータスを調べます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since 水 2022-09-14 10:29:45 JST; 1min 5s ago Docs: man:httpd(8) man:apachectl(8) Process: 393 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE) Main PID: 393 (code=exited, status=1/FAILURE) 9月 14 10:29:45 sv1.example.jp systemd[1]: Starting The Apache HTTP Server... 9月 14 10:29:45 sv1.example.jp httpd[393]: AH00526: Syntax error on line 377 of /etc/httpd/conf/httpd.conf: 9月 14 10:29:45 sv1.example.jp httpd[393]: Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration 9月 14 10:29:45 sv1.example.jp systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE 9月 14 10:29:45 sv1.example.jp systemd[1]: Failed to start The Apache HTTP Server. 9月 14 10:29:45 sv1.example.jp systemd[1]: Unit httpd.service entered failed state. 9月 14 10:29:45 sv1.example.jp systemd[1]: httpd.service failed. |
service httpd configtestで調査
service httpd configtestでApacheの設定ファイルにエラーが無いか調べます。
1 2 3 |
# service httpd configtest AH00526: Syntax error on line 377 of /etc/httpd/conf/httpd.conf: Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration |
apachectl -Vで調査
1 2 3 |
# apachectl -V AH00526: Syntax error on line 377 of /etc/httpd/conf/httpd.conf: Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration |
調査結果を確認してみると、どの調査でも、
AH00526: Syntax error on line 377 of /etc/httpd/conf/httpd.conf:
Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration
という記述がありますので、今回のApache起動時のエラーの原因は、Apacheの設定ファイル(httpd.conf)の377行目にある「php_admin_value」という記述がSyntax errorとなっていたためでした。
PHP-FPM環境(mod_phpが無効化された環境)では、Apache設定ファイル内の「php_admin_value」という記述はエラーになります。
対策(httpd.confの修正)
vi等で/etc/httpd/conf/httpd.confを開き、377行目の「php_admin_value」から始まる行をコメントアウトします。
1 2 3 4 |
■変更前 php_admin_value engine Off ■変更後 #php_admin_value engine Off |
動作確認
Apacheを起動し、ステータスを確認します。
1 |
# systemctl start httpd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# apachectl -V Server version: Apache/2.4.6 (CentOS) Server built: Jan 25 2022 20:03:26 Server's Module Magic Number: 20120211:24 Server loaded: APR 1.4.8, APR-UTIL 1.5.2 Compiled using: APR 1.4.8, APR-UTIL 1.5.2 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/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="/run/httpd/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 水 2022-09-14 10:51:34 JST; 36s ago Docs: man:httpd(8) man:apachectl(8) Process: 5343 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 5379 (httpd) Status: "Total requests: 3; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─5379 /usr/sbin/httpd -DFOREGROUND ├─5380 /usr/sbin/httpd -DFOREGROUND ├─5381 /usr/sbin/httpd -DFOREGROUND ├─5382 /usr/sbin/httpd -DFOREGROUND ├─5383 /usr/sbin/httpd -DFOREGROUND ├─5384 /usr/sbin/httpd -DFOREGROUND └─5385 /usr/sbin/httpd -DFOREGROUND 9月 14 10:51:34 sv1.example.jp systemd[1]: Starting The Apache HTTP Server... 9月 14 10:51:34 sv1.example.jp systemd[1]: Started The Apache HTTP Server. |
Apacheの正常起動が確認できました。
以上で解決です。