在安装openstack kilo版本时有一步检测apache无法启动,搜遍了google没有搜到相关信息只好自己动手了,我用的是CentOS-7-x86_64位系统,报错信息如下:
一、
ERROR : Error appeared during Puppet run: 192.168.209.143_horizon.pp
Error: Could not start Service[httpd]: Execution of '/usr/bin/systemctl start httpd' returned 1: Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
按照提示信息执行了一下"journalctl -xe",其中找到了以下信息:
Dec 29 11:06:33 controller httpd[29959]: AH00526: Syntax error on line 11 of /etc/httpd/conf.d/fcgid.conf:
Dec 29 11:06:33 controller httpd[29959]: Invalid command 'FcgidIPCDir', perhaps misspelled or defined by a module not included in the server configuration
Dec 29 11:06:33 controller systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 29 11:06:33 controller kill[29963]: kill: cannot find process ""
Dec 29 11:06:33 controller systemd[1]: httpd.service: control process exited, code=exited status=1
Dec 29 11:06:33 controller systemd[1]: Failed to start The Apache HTTP Server.
其中两段红色英文字体提示/etc/httpd/conf.d/fcgid.conf 这个文件有无效的命令Invalid command 'FcgidIPCDir',有可能是拼写错误也有可能是模块未加载导致,看文件全部信息如下:
[root@controller ~]# cat /etc/httpd/conf.d/fcgid.conf
# This is the Apache server configuration file for providing FastCGI support
# through mod_fcgid
#
# Documentation is available at
# http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
# Use FastCGI to process .fcg .fcgi & .fpl scripts
AddHandler fcgid-script fcg fcgi fpl
# Sane place to put sockets and shared memory file
FcgidIPCDir /run/mod_fcgid
FcgidProcessTableFile /run/mod_fcgid/fcgid_shm
这是一个调用mod_fcgid模块并提供FastCGI 的apache server的配置文件,一看文件中确实没有加载mod_fcgid模块,
所以在文件中加载该模块
LoadModule fcgid_module modules/mod_fcgid.so
完整文件如下:
fcgid.conf
# This is the Apache server configuration file for providing FastCGI support
# through mod_fcgid
#
# Documentation is available at
# http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
LoadModule fcgid_module modules/mod_fcgid.so
# Use FastCGI to process .fcg .fcgi & .fpl scripts
AddHandler fcgid-script fcg fcgi fpl
# Sane place to put sockets and shared memory file
FcgidIPCDir /var/run/mod_fcgid
FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm
在启动一下
[root@controller ~]# apachectl start
[root@controller ~]# apachectl status
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
`-openstack-dashboard.conf
Active: active (running) since Fri 2016-12-30 16:45:48 CST; 6s ago
Docs: man:httpd(8)
二、Invalid command 'SSLPassPhraseDialog', perhaps misspelled or ...tion
[root@controller ~]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
└─openstack-dashboard.conf
Active: failed (Result: exit-code) since Tue 2017-01-17 06:07:41 CST; 7min ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 16002 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 16000 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Process: 15956 ExecStartPre=/usr/bin/python /usr/share/openstack-dashboard/manage.py compress --force (code=exited, status=0/SUCCESS)
Process: 15937 ExecStartPre=/usr/bin/python /usr/share/openstack-dashboard/manage.py collectstatic --noinput --clear (code=exited, status=0/SUCCESS)
Main PID: 16000 (code=exited, status=1/FAILURE)
Jan 17 06:07:41 controller.example.com python[15956]: Compressing... done
Jan 17 06:07:41 controller.example.com python[15956]: Compressed 5 block(s) from 3 template(s) for 1 context(s).
Jan 17 06:07:41 controller.example.com httpd[16000]: AH00526: Syntax error on line 18 of /etc/httpd/conf.d/ssl.conf:
Jan 17 06:07:41 controller.example.com httpd[16000]: Invalid command 'SSLPassPhraseDialog', perhaps misspelled or ...tion
Jan 17 06:07:41 controller.example.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jan 17 06:07:41 controller.example.com kill[16002]: kill: cannot find process ""
Jan 17 06:07:41 controller.example.com systemd[1]: httpd.service: control process exited, code=exited status=1
Jan 17 06:07:41 controller.example.com systemd[1]: Failed to start The Apache HTTP Server.
Jan 17 06:07:41 controller.example.com systemd[1]: Unit httpd.service entered failed state.
Jan 17 06:07:41 controller.example.com systemd[1]: httpd.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
openstack安装horizon时修改了http的配置文件,其中没有加载“conf.modules.d/*.conf”,
所以在/etc/httpd/conf/httpd.conf 中加载即可;
# echo 'Include conf.modules.d/*.conf' >> /etc/httpd/conf/httpd.conf