华为云 CentOS6.5 自带Apache使用总结

2018-12-16  本文已影响26人  枫林风雨

华为云 CentOS6.5默认安装了 apache,可通过命令httpd -v 查看:

Server version: Apache/2.2.15 (Unix)
Server built: Oct 19 2017 16:43:38

顺便一提,系统还自带了python2.6:/usr/lib/python2.6/

1、查看和控制 httpd 服务
  1. 直接控制 httpd 命令。 centos6 没有使用 systemd,所以没有 systemctl 命令,使用的是 service ,示例:service httpd start *
1. 到 /etc/rc.d/init.d/ 目录 `cd /etc/rc.d/init.d/`
2. ls 列出所有文件,看看是否有 httpd
3. 使用 httpd -v 查看已经安装的httpd的版本
4. 使用 rpm -qa | grep httpd 查看是否已经安装了 httpd 
5. 使用 ps -ef | grep httpd 查看 httpd 的进程
6. 使用 service httpd status 查看 httpd 的运行状态
7. 使用 service httpd stop 可以停止 httpd
8. 使用 service httpd start 可以启动 httpd
  1. 也可以使用 apachectl 脚本命令控制 httpd 服务:
1. 启动服务 /usr/sbin/apachectl start  
2. 停止服务 /usr/sbin/apachectl stop
3. 重启服务 /usr/sbin/apachectl restart  
4. 在可以使用 systemctl 的系统(如CentOS7.0)上可以使用如下命令:
   systemctl start httpd
   systemctl stop httpd
   systemctl restart httpd
``
2、Apache文件系统
  1. apachectl 控制命令路径
    /usr/sbin/apachectl
  1. apachectl 配置文件路径
    /etc/httpd/conf/httpd.conf
  1. apachectl 网络文件路径
    /var/www/html/
3、配置文件简介

grep '\<Section\>' /etc/httpd/conf/httpd.conf -n
使用这条命令可以搜索到3个 Section 分段,配置文件也就是通过这个 '<Section>' 结构分为3各部分。

  1. Section 1: Global Environment ---全局环境配置,决定Apache服务器的全局参数
  2. Section 2: 'Main' server configuration ---主服务配置,相当于是Apache中的默认Web站点,如果我们的服务器中只有一个站点,那么就只需在这里配置就可以了。
  3. Section 3: Virtual Hosts---虚拟主机,虚拟主机不能与Main Server主服务器共存,当启用了虚拟主机之后,Main Server就不能使用了

4、实际使用遇到问题
  1. service httpd start 出现错误:httpd: Could not reliably determine the server's fully qualified domain name
    解决办法:到配置文件 /etc/httpd/conf/httpd.conf 中修改一条配置:#ServerName
    #ServerName www.example.com:80 => ServerName localhost:80

  2. 解决问题一后重新执行 start 命令又出现了 address already in use:make_sock:could not bind to address [::]:80 ,使用 netstat -lnp | grep 80 查看端口使用情况,发现并未被占用。
    我这里出现这个问题的原因是我使用的是非 root 用户,su 到 root 后这个报错就消失了。

  3. 切换到 root 后没有了问题二中的错误了,但是执行 start 命令又出现了一个新的报错:Starting httpd: (2)No such file or directory: httpd: could not open error log file /etc/httpd/logs/error_log
    解决办法:到目录 /etc/httpd/logs/ 查看,发现 logs 名称的文件夹是存在的,但是显示是红色(明显是某种错误提醒),于是我使用 ls -l 查看下文件的具体信息:

   drwxr-xr-x. 2 root root 4096 12月 15 20:45 conf
   drwxr-xr-x. 2 root root 4096 12月 28 2017 conf.d
   lrwxrwxrwx  1 root root   19 12月 28 2017 logs -> ../../var/log/httpd

观察发现这是个 l 类型,这是链接的意思,指向的是 /var/log/httpd ,于是我们到这个目录下去看看,cd /var/log/然后ls,并未发现 httpd 文件夹,于是 touch httpd 建了这个文件夹,再次 service httpd start,终于出现:

Starting httpd:                  [  OK  ]  
#表示 httpd 服务开启成功了😁😁。

执行 curl http://127.0.0.1 ,正常输出 Apache 服务测试的 html 页面。

  1. 到这里以为已经大功告成了。。。,又出现了一个惊喜,httpd 正常开启中,本地可以访问,但是外部主机访问超时。又开始了查找原因,排除了防火墙没开端口、排除了 IP 白名单和黑名单的影响。最后没办法了,只有打电话问华为云客服400-095-5988-1-2,被告知需要在【控制台->弹性云服务器->对应的服务器的名称->安全组->入规则】 里添加端口号。添加端口后果然立马就可以外网访问了😂,不知道该哭还是笑。。。
上一篇 下一篇

猜你喜欢

热点阅读