1、安装apr-1.5.1.tar.gz
命令:
wget http://apache.fayea.com/apache-mirror//apr/apr-1.5.1.tar.gz
tar zxvf apr-1.5.1.tar.gz
cd apr-1.5.1
./configure
make
make install
2、安装apr-util-1.3.7.tar.gz
命令:
http://apache.fayea.com/apache-mirror//apr/apr-util-1.5.4.tar.gz
tar zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure
make
make install
3、安装httpd-2.2.29.tar.gz
命令:
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.2.29.tar.gz
tar zxvf httpd-2.2.29.tar.gz
cd httpd-2.2.29
./configure –prefix=/usr/local/apache2 –enable-dav –enable-modules=so –enable-maintainer-mode –enable-rewrite –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr/bin/apu-1-config
make
make install
4、启动Apache服务
命令:/usr/local/apache2/bin/apachectl start (启动后即可访问)
5、修改站点配置文件
路径:/usr/local/apache2/conf/httpd.conf
默认站点目录:/usr/local/apache2/htdocs/
Linux httpd(apache)启动失败
Red Hat Linux enterprise 5
start httpd faild
linux httpd: httpd 启动 failed
我在虚拟机里面遇到此问题,试了很多方法都没法启动,后来发现,问题出在/etc/httpd/conf/目录里面有一个叫httpd.conf的文件。在同一目录下还有另外一个叫httpd.conf.bak,只要把httpd.conf.bak的内容复制httpd.conf文件中,覆盖原来的内容就能启动了,到shell里运行service httpd start,惊喜发现,start httpd ok。启动httpd 确定
用service httpd status可以看到httpd正运行中。心情舒服啊。虽然只是个很菜的新手问题,嘿嘿,但我还是写下来,或许哪个新手也遇到此问题能帮上忙。后来我又详细排查了一下是什么问题导至的。结果是意料之外啊。原来是使用了 [系统]-[管理]-[服务器设置]-[HTTP]工具进行设置,然后保存之后导至。用了这个工具后里面的设置内容有比较多的地方跟初始设置是不一样的。
我发现修改/etc/httpd/conf/httpd.conf文件可以解决问题:
1.将ServerName这行注释掉,即行最前面加个#号。
2.将ServerAdmin 这行要写完整。如:ServerAdmin [email protected]
3.将Lockfile 的文件路径弄正确,或都干脆注释掉(行首加#)
4.将Loadmodule .........
Loadmodule.........
.........#这里很多行。省略!其实这些都是错误的,应该是HTTP本身代码问题导致。我们用初始文件替换。
Loadmodule.....
用/etc/httpd/conf/httpd.conf.bak里面的相应内容替换掉
内容如下:
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
OK,这样应该可以启动httpd服务了,请在shell里使用命令service httpd start来启动服务
将Apache添加为Linux的服务实现自启动
在Linux下用源代码方式编译安装完Apache后,启动关闭Apache可以通过如下命令实现:
/usr/local/apache2/bin/apachectl start | stop | restart
如果想将httpd列入系统自动启动的服务,可以直接将上述的apachectl文件拷贝到 /etc/rc.d/init.d 中,然后在相应的启动级别如3,5中加入链接即可。命令如下:
cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S61httpd
链接文件的S61是启动时的序号。当init.d目录下有httpd脚本后,我们就可以通过service命令来启动关闭apache了。在任意路径下执行:
service httpd start | stop | restart
脚本中没有输入提示信息,但命令已经执行了。这时有个问题就是:虽然apache已经可以自动启动,但在linux的服务列表中却看不到它,比如运行 ntsysv或红帽子的chkconfig --list指令。要添加服务,一般通过chkconfig --add xxx来实现,但需要脚本中有相应的信息才行,否则chkconfig就会提示:xxx 服务不支持 chkconfig。所以我们首先编辑httpd脚本,在第2行添加如下注释信息:
# chkconfig: 35 61 61
# description: Apache
第一行的3个参数意义分别为:在哪些运行级别启动httpd(3,5);启动序号(S61);关闭序号(K61)。注意:第二行的描述必须要写!
保存后执行:chkconfig --add httpd
就将httpd添加入服务了。在rc3.d、rc5.d路径中将来就会出现S61httpd的链接,其他运行级别路径中会出现K61httpd的链接。
运行chkconfig --list就可以看到httpd的服务了。