美文网首页
华为云 CentOS6.5 自带Apache使用总结

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

作者: 枫林风雨 | 来源:发表于2018-12-16 11:02 被阅读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
``
  • apachectl脚本可以作为SysV初始化脚本,接受简单的一个单词的参数,如:start,restart, stop ,并把他们翻译为适当的信号发送给[httpd](http://writeblog.csdn.net/programs/httpd.html)
  • apachectl脚本如果执行成功,则返回0 ;如果出错,则其返回值>0 。
  • 如果你启动的是 /usr/local/apache2/bin/apachectl,
    会启动 HTTPD='/usr/local/apache2/bin/httpd' 这个 httpd。
2、Apache文件系统
  1. apachectl 控制命令路径
    /usr/sbin/apachectl
  • 自己安装的 Apache 路径是:/usr/local/apache2/bin/apachectl
  1. apachectl 配置文件路径
    /etc/httpd/conf/httpd.conf
  • Apache服务器的配置信息全部存储在这个主配置文件 httpd.conf 中,文件中的内容非常多,用wc命令统计 wc -l /etc/httpd/conf/httpd.conf 一共有1009行,其中大部分是以#开头的注释行。
  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,被告知需要在【控制台->弹性云服务器->对应的服务器的名称->安全组->入规则】 里添加端口号。添加端口后果然立马就可以外网访问了😂,不知道该哭还是笑。。。

相关文章

网友评论

      本文标题:华为云 CentOS6.5 自带Apache使用总结

      本文链接:https://www.haomeiwen.com/subject/qeutkqtx.html