Apache服务器的安装与部署
Apache的服务httpd查询与卸载
[root@es ~]# rpm -qa |grep httpd [root@es ~]# rpm -e --nodeps httpd* error: package httpd* is not installed [root@es ~]# for name in `rpm -qa httpd*`;do rpm -e --nodeps $name;done
注意:如果服务器默认安装了httpd,如果要编译安装,那要使用上述命令将httpd服务器删除
rpm -qa |grep httpd # 查询服务器的是否安装了httpd
rpm -e --nodeps httpd* # 卸载有过httpd的服务,上面没有安装,所有出现error
第四行代码:将查询和卸载合二为一
Apache服务http安装包和验证包下载地址
如果在生产环境,那么我们必须将我们下载的安装包进行检测,看看是否被修改。这是一个安全的常识
验证和解压httpd安装包是否被修改
编译安装Apache
[root@apache httpd-2.2.26]# ./configure --prefix=/application/apache2.2.26 --enable-deflate --enable-expires --enable-headers --enable-modules=most --with-mpm=worker --enable-rewite --enable-so --with-mpm=worker [root@apache httpd-2.2.26]# make && make install
--prefix=/application/apache2.2.22 # 设置apache安装目录(默认/usr/local/apache2)
--enable-deflate # 提供对传输的编码进行压缩
--enable-expires # 激活需用通过配置文件控制http的expires和cache-control头内容,即对网站图片,js、css等内容,提供在客户端浏览器缓存的设置
--enable-headers # 提供允许对http请求头的控制
--enable-modules=most #
--enable-so # 指定允许DSO(动态共享对象)
--with-mpm=worker # 更多的使用线程来出来请求,处理更多的并发。(默认prefork进程模式)
--enable-rewrite # 开启rewrite支持,以实现url静态化,建议开启
详细的命令可以查看./configure --help
对apache目录进行软连接创建,方便管理
[root@apache httpd-2.2.26]# ln -s /application/apache2.2.26 /application/apache
[root@apache httpd-2.2.26]# /application/apache/bin/apachectl -l
[root@apache httpd-2.2.26]# /application/apache/bin/apachectl -M
: 空白可以现实后面能够所加载的参数
-l :检查安装情况
-M :用来列出基于当前配置加载的所有模块,与 -l不同 还列出mod_so加载的(动态共享对象)
[root@apache httpd-2.2.26]# /application/apache/bin/apachectl
下列仅说明了SysV初始化类型的选项,其他参数的说明见httpd
手册页。
start
- 启动Apache
httpd
后台守护进程。如果已经启动,则产生一个错误。它等价于apachectl -k start
。 stop
- 停止Apache
httpd
后台守护进程。它等价于apachectl -k stop
。 restart
- 重新启动Apache
httpd
后台守护进程。如果守护进程尚未运行,则启动它。在重新启动守护进程之前,此命令会使用configtest
自动检查配置文件,以确保Apache不会死掉。它等价于apachectl -k restart
。 fullstatus
- 显示由
mod_status
提供的完整的状态报告。要使用这个功能,需要启用服务器上的mod_status
模块,并且系统中有一个基于文本的浏览器,如lynx
。修改脚本中的STATUSURL
变量,可以修改访问状态报告的URL 。 status
- 显示一个简要的状态报告。它类似于
fullstatus
选项,但是省略了正在处理的请求的列表。 graceful
- 优雅地重新启动Apache
httpd
后台守护进程。如果守护进程尚未启动,则启动它。它和标准重新启动的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。这意味着,如果在日志滚动脚本使用它,则在处理日志之前必须加入一个实实在在的延迟,以确保老的日志文件在被处理前已经关闭。在重新启动守护进程之前,此命令会使用configtest
自动检查配置文件,以确保Apache不会死掉。它等价于apachectl -k graceful
。 graceful-stop
- 优雅地停止Apache
httpd
后台守护进程。它和标准停止的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。它等价于apachectl -k graceful-stop
。 configtest
- 执行一次配置文件语法检查。它解析配置文件,并报告
Syntax Ok
或者是特定的语法错误详细信息。它等价于apachectl -t
。
下列选项仅在早期版本中使用,现在已经被废弃了。
startssl
- 以支持SSL的方式启动
httpd
,你应当编辑配置文件,并在其中包含与SSL支持相关的指令,然后使用apachectl start
启动服务器。
[root@apache ~]# /application/apache/bin/apachectl -t
httpd: apr_sockaddr_info_get() failed for apache
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK
所以要解决这个问题可以设定httpd.conf文件中的 ServerName,如下:
(1)ServerName localhost:80
或者在 /etc/hosts 中填入自己的主机名称apache,如下:
(2)127.0.0 apache
查看apache服务的状态,进程号和端口号
[root@apache ~]# ps -ef|grep httpd|grep -v grep
root 1222 1 0 18:03 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 1531 1222 0 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 1532 1222 0 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 1533 1222 0 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 1534 1222 0 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 1685 1222 0 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
[root@apache ~]# netstat -tln |grep 80
tcp 0 0 :::80 :::* LISTEN
[root@apache ~]# lsof -i tcp:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1222 root 4u IPv6 11323 0t0 TCP *:http (LISTEN)
httpd 1532 daemon 4u IPv6 11323 0t0 TCP *:http (LISTEN)
httpd 1533 daemon 4u IPv6 11323 0t0 TCP *:http (LISTEN)
httpd 1534 daemon 4u IPv6 11323 0t0 TCP *:http (LISTEN)
httpd 1685 daemon 4u IPv6 11323 0t0 TCP *:http (LISTEN)
在浏览器里面输入测试
在浏览器里面输入你配置apache服务器的ip地址,如:http://10.10.26.146
默认在浏览器里面显示
it's work
排错思路指南
如果不能正常显示,按照下面的思路进行配置
1.iptables防火墙是否关闭
2.selinux是否关闭
3.80端口是否存在
4.http进程是否存在
5.本地wget http://ip 测试
6.查看apache的错误日志,看看是否有特殊的异常