安装 Apache

Ubuntu 是一个非常流行的 Linux 操作系统,很多虚拟主机服务商都有支持这个操作系统,Apache HTTP Server 也是很流行 Web 服务软件,在 Ubuntu 上安装 Apache HTTP Server 很方便。
检测 iptables
这一步是为了保证 Web 服务一旦运行就能通过浏览器访问。
你可能在 Ubuntu 上运行着防火墙,它可能阻断标准的 Web 服务端口,80 端口(常规链接),443 端口(安全链接)。
检测当前防火墙的规则:
sudo /sbin/iptables -L
如何下规则可以保证严格的配置规则:
-I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
-I INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
-I OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
安装 Apache
运行下列命令安装 apache
sudo apt-get install apache2
安装的过程中会自动安装 apache 依赖的一些包。
Server Name
在安装快结束,启动 apache 进程时,你可能看到如下警告:
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
警告来自于 apache2,因为这是 apache 进程运行时的名称(ps or top 中看到的名称)
创建一个配置文件来存储你的server name:
sudo nano /etc/apache2/conf.d/servername.conf
文件中输入如下行:
ServerName demo
用你习惯的表示方法来替代 demo,不要使用你站点的域名,因为在配置虚拟主机时会用到。
修改完毕后,保存 servername.conf。
Graceful restart
运行如下命令重启 apache 服务,你应该不会再看到警告信息,如果还有请检查前面的步骤。
sudo /usr/sbin/apache2ctl graceful
使用 apache2ctl
apache2ctl 命令可以用来启动,停止 apache,与使用启动脚本(/etc/init.d/apache2)类似,运行 apache2ctl 本身可以所有的参数信息:
$ /usr/sbin/apache2ctl
Usage: /usr/sbin/apache2ctl start|stop|restart|graceful|graceful-stop|configtest|status|fullstatus
/usr/sbin/apache2ctl <apache2 args>
Graceful
graceful|graceful-stop
apache2ctl 的 graceful 参数会重启 apache 服务,但是不会影响已经存在的连接,graceful-stop 参数与 stop 类似,但是会让 apache 当前的连接完成任务后再停止掉,也就是说 web 服务重启或关闭,进程会继续在旧的配置下处理完已有的连接。
所以使用 graceful 参数在重启 web 服务时,不会打断用户的使用,但是实际应用中,graceful 参数执行不是很完美,有可能会出问题,如果修改了很多配置信息,最好使用 restart 更可靠些。
apache 启动脚本中 reload 参数实际上运行的就是 apache2ctl graceful。
Configtest
configtest
configtest 可以在不打断 web 服务情况下,检测配置的信息是否语法错误,但不一定能保证完全没有错误,能够检测常见的错误。
Status
status|fullstatus
此命令可以查看当前 web 服务的情况,需要激活 web 服务的 mod_status 模块。
Apache 日志
默认情况下,apache 日志文件位置:
/var/log/apache2/
通常有两个日志文件 access.log 和 error.log,access.log存储所有访问 apache 的请求信息,对于通信分析很有用处,error.log 文件存储的是 apache 报告的错误信息,包括模块报告错误信息。
测试服务
在浏览器中输入服务器的地址:
http://123.45.67.890
会出现一段话告诉你 apache 运行成功,如果遇到问题,请查看 apache 是否正常启动,还有就是防火墙端口配置是否正确。