linux apache服务器的安装
Apache服务器的安装与部署Apache的服务httpd查询与卸载
# rpm -qa |grep httpd
# rpm -e --nodeps httpd*
error: package httpd* is not installed
# 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安装包和验证包下载地址
如果在生产环境,那么我们必须将我们下载的安装包进行检测,看看是否被修改。这是一个安全的常识
wget http://www.eu.apache.org/dist/httpd/httpd-2.2.26.tar.gz.sha1
wget http://www.eu.apache.org/dist/httpd/httpd-2.2.26.tar.gz.md5
wget http://www.eu.apache.org/dist/httpd/httpd-2.2.26.tar.gz.asc
wget http://www.eu.apache.org/dist/httpd/httpd-2.2.26.tar.gz
wget http://www.apache.org/dist/httpd/KEY
验证和解压httpd安装包是否被修改
# tar xzvf httpd-2.2.26.tar.gz
# cd httpd-2.2.26
# gpg --import KEYS
# gpg --verify httpd-2.2.26.tar.gz.asc
# less README # 查看程序信息
# less INSTALL # 查看安装编译的参数
编译安装Apache
# ./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
# 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目录进行软连接创建,方便管理
# ln -s /application/apache2.2.26 /application/apache
# /application/apache/bin/apachectl -l
# /application/apache/bin/apachectl -M
: 空白可以现实后面能够所加载的参数
-l:检查安装情况
-M:用来列出基于当前配置加载的所有模块,与 -l不同 还列出mod_so加载的(动态共享对象)
# /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 启动服务器。
# /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服务的状态,进程号和端口号
# ps -ef|grep httpd|grep -v grep
root 1222 10 18:03 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 153112220 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 153212220 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 153312220 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 153412220 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
daemon 168512220 18:38 ? 00:00:00 /application/apache2.2.26/bin/httpd -k start
# netstat -tln |grep 80
tcp 0 0 :::80 :::* LISTEN
# lsof -i tcp:80
COMMANDPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1222 root 4uIPv611323 0t0TCP *:http (LISTEN)
httpd 1532 daemon 4uIPv611323 0t0TCP *:http (LISTEN)
httpd 1533 daemon 4uIPv611323 0t0TCP *:http (LISTEN)
httpd 1534 daemon 4uIPv611323 0t0TCP *:http (LISTEN)
httpd 1685 daemon 4uIPv611323 0t0TCP *: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的错误日志,看看是否有特殊的异常
页:
[1]