RedHatLinuxenterprise5
starthttpdfaild
linuxhttpd:httpd启动failed
我在虚拟机里面遇到此问题,试了很多方法都没法启动,后来发现,问题出在/etc/httpd/conf/目录里面有一个叫httpd.conf的文件。在同一目录下还有另外一个叫httpd.conf.bak,只要把httpd.conf.bak的内容复制httpd.conf文件中,覆盖原来的内容就能启动了,到shell里运行servicehttpdstart,惊喜发现,starthttpdok。启动httpd确定
用servicehttpdstatus可以看到httpd正运行中。心情舒服啊。虽然只是个很菜的新手问题,嘿嘿,但我还是写下来,或许哪个新手也遇到此问题能帮上忙。后来我又详细排查了一下是什么问题导至的。结果是意料之外啊。原来是使用了[系统]-[管理]-[服务器设置]-[HTTP]工具进行设置,然后保存之后导至。用了这个工具后里面的设置内容有比较多的地方跟初始设置是不一样的。
我发现修改/etc/httpd/conf/httpd.conf文件可以解决问题:
1.将ServerName这行注释掉,即行最前面加个#号。
2.将ServerAdmin这行要写完整。如:ServerAdminadmin@example.com
3.将Lockfile的文件路径弄正确,或都干脆注释掉(行首加#)
4.将Loadmodule.........
Loadmodule.........
.........#这里很多行。省略!其实这些都是错误的,应该是HTTP本身代码问题导致。我们用初始文件替换。
Loadmodule.....
用/etc/httpd/conf/httpd.conf.bak里面的相应内容替换掉
内容如下:
LoadModuleauth_basic_modulemodules/mod_auth_basic.so
LoadModuleauth_digest_modulemodules/mod_auth_digest.so
LoadModuleauthn_file_modulemodules/mod_authn_file.so
LoadModuleauthn_alias_modulemodules/mod_authn_alias.so
LoadModuleauthn_anon_modulemodules/mod_authn_anon.so
LoadModuleauthn_dbm_modulemodules/mod_authn_dbm.so
LoadModuleauthn_default_modulemodules/mod_authn_default.so
LoadModuleauthz_host_modulemodules/mod_authz_host.so
LoadModuleauthz_user_modulemodules/mod_authz_user.so
LoadModuleauthz_owner_modulemodules/mod_authz_owner.so
LoadModuleauthz_groupfile_modulemodules/mod_authz_groupfile.so
LoadModuleauthz_dbm_modulemodules/mod_authz_dbm.so
LoadModuleauthz_default_modulemodules/mod_authz_default.so
LoadModuleldap_modulemodules/mod_ldap.so
LoadModuleauthnz_ldap_modulemodules/mod_authnz_ldap.so
LoadModuleinclude_modulemodules/mod_include.so
LoadModulelog_config_modulemodules/mod_log_config.so
LoadModulelogio_modulemodules/mod_logio.so
LoadModuleenv_modulemodules/mod_env.so
LoadModuleext_filter_modulemodules/mod_ext_filter.so
LoadModulemime_magic_modulemodules/mod_mime_magic.so
LoadModuleexpires_modulemodules/mod_expires.so
LoadModuledeflate_modulemodules/mod_deflate.so
LoadModuleheaders_modulemodules/mod_headers.so
LoadModuleusertrack_modulemodules/mod_usertrack.so
LoadModulesetenvif_modulemodules/mod_setenvif.so
LoadModulemime_modulemodules/mod_mime.so
LoadModuledav_modulemodules/mod_dav.so
LoadModulestatus_modulemodules/mod_status.so
LoadModuleautoindex_modulemodules/mod_autoindex.so
LoadModuleinfo_modulemodules/mod_info.so
LoadModuledav_fs_modulemodules/mod_dav_fs.so
LoadModulevhost_alias_modulemodules/mod_vhost_alias.so
LoadModulenegotiation_modulemodules/mod_negotiation.so
LoadModuledir_modulemodules/mod_dir.so
LoadModuleactions_modulemodules/mod_actions.so
LoadModulespeling_modulemodules/mod_speling.so
LoadModuleuserdir_modulemodules/mod_userdir.so
LoadModulealias_modulemodules/mod_alias.so
LoadModulerewrite_modulemodules/mod_rewrite.so
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so
LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so
LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
LoadModulecache_modulemodules/mod_cache.so
LoadModulesuexec_modulemodules/mod_suexec.so
LoadModuledisk_cache_modulemodules/mod_disk_cache.so
LoadModulefile_cache_modulemodules/mod_file_cache.so
LoadModulemem_cache_modulemodules/mod_mem_cache.so
LoadModulecgi_modulemodules/mod_cgi.so
OK,这样应该可以启动httpd服务了,请在shell里使用命令servicehttpdstart来启动服务
另外需要注意的是,这些只改了一小部分内容,很多选项已经跟初始httdp.conf不一样了,请大家详细看看相关功能的开启状态,按需要更改即可。