Module-Apache 使用说明

Apache 简介

Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩充,将 Perl/Python 等解释器编译到服务器中。同时 Apache 音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等. 百度百科 Apache

Apacheweb 服务器软件拥有以下特性:

  • 1.支持最新的 HTTP/1.1 通信协议
  • 2.拥有简单而强有力的基于文件的配置过程
  • 3.支持通用网关接口
  • 4.支持基于 IP 和基于域名的虚拟主机
  • 5.支持多种方式的 HTTP 认证
  • 6.集成 Perl 处理模块
  • 7.集成代理服务器模块
  • 8.支持实时监视服务器状态和定制服务器日志
  • 9.支持服务器端包含指令(SSI)
  • 10.支持安全 Socket 层(SSL)
  • 11.提供用户会话过程的跟踪
  • 12.支持 FastCGI
  • 13.通过第三方模块可以支持 JavaServlets

Apache 功能

TODO Apache 功能 后置,暂无需求

Apache 参数详解

参考链接: centos7 部署 Apache 服务器

附件

Centos7-Apache 配置示例

步骤 1 配置 scfan.conf 配置文件:

# /etc/httpd/conf.d/scfan.conf
User scfan
Group scfan

<VirtualHost *:80>
    DocumentRoot "/home/scfan/project/FISAMS/branches/branch_scfan/src/web/fdm"
    <Directory "/home/scfan/project/FISAMS/branches/branch_scfan/src/web/fdm">
        options Indexes MultiViews
        AllowOverride all
        Allow from all
    </Directory>
</VirtualHost>

步骤 2 重命名 welcome.conf:

# 重命名后不会再显示 testing 123 而是会显示详细报错
mv  /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak

步骤 3 重启服务:

/bin/systemctl restart httpd.service

报错: StackOverFlow - You don’t have permission to access / on this server.,后续步骤已解决此问题,此处可供参考

步骤 4 目录授权:

# 采用单层授权, 避免整个目录文件都权限被变更
[root@fdm conf]# chmod +x  /home/scfan/project/FISAMS/branches/branch_scfan/src/web/fdm
[root@fdm conf]# chmod +x  /home/scfan/project/FISAMS/branches/branch_scfan/src/web/
[root@fdm conf]# chmod +x  /home/scfan/project/FISAMS/branches/branch_scfan/src/
[root@fdm conf]# chmod +x  /home/scfan/project/FISAMS/branches/branch_scfan/
[root@fdm conf]# chmod +x  /home/scfan/project/FISAMS/branches/
[root@fdm conf]# chmod +x  /home/scfan/project/FISAMS/
[root@fdm conf]# chmod +x  /home/scfan/project
[root@fdm conf]# chmod +x  /home/scfan
[root@fdm conf]# chmod +x  /home

步骤 5 修改 配置文件 /etc/httpd/conf/httpd.conf:

# 配置监听端口 对应 scfan.conf 配置文件
41 #Listen 12.34.56.78:80
42 Listen 80
43 Listen 8888
44 LimitRequestLine 40940  # 限制 Apache 请求长度,根据实际需要增加

# 注释如下代码
105 # <Directory />
106 #     AllowOverride none
107 #     Require all denied
108 # </Directory>

步骤 6 重启服务:

/bin/systemctl restart httpd.service

Apache 测试页面

Apache 测试页意味着:

Apache 测试页,意味着您的服务器已正确配置并可以使用。从技术上讲,此页面是首次安装 Apache Web 服务器时的默认索引页面。

那么如何使 Apache 测试页消失呢:

只需打开/var/www/index.html 文件并对其进行修改或删除文件(尽管它可能会触发新的错误)。在 Red Hat Enterprise Linux/CentOS/Fedora Core 下,重命名或删除文件/etc/httpd/conf.d/welcome.conf 以确保您没有看到 Apache 测试页。

您现在可以将内容添加到目录/var/www/html/中。请注意,在您这样做之前,访问您网站的用户将看到默认页面,而不是您的内容。要防止使用此页面,请遵循文件/etc/httpd/conf.d/welcome.conf 中的说明。

Apache 问题记录

Apache has not been designed to serve pages while running as root

问题说明:

root 用户下无法启动 httpd 服务

日志信息:

[root@cf8d90d17e9a ~]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2019-12-16 02:06:58 UTC; 25s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 9553 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 9552 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 9552 (code=exited, status=1/FAILURE)

Dec 16 02:06:58 cf8d90d17e9a systemd[1]: Starting The Apache HTTP Server...
Dec 16 02:06:58 cf8d90d17e9a httpd[9552]: AH00526: Syntax error on line 1 of /etc/httpd/conf.d/fdm.conf:
Dec 16 02:06:58 cf8d90d17e9a httpd[9552]: Error:\tApache has not been designed to serve pages while\n\trunning as root.  There are known ...
Dec 16 02:06:58 cf8d90d17e9a systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 16 02:06:58 cf8d90d17e9a kill[9553]: kill: cannot find process ""
Dec 16 02:06:58 cf8d90d17e9a systemd[1]: httpd.service: control process exited, code=exited status=1
Dec 16 02:06:58 cf8d90d17e9a systemd[1]: Failed to start The Apache HTTP Server.
Dec 16 02:06:58 cf8d90d17e9a systemd[1]: Unit httpd.service entered failed state.
Dec 16 02:06:58 cf8d90d17e9a systemd[1]: httpd.service failed.

解决方法:

用于 /etc/httpd/conf.d/fdm.conf 配置中 User 和 Group 不能为root,修改为其他用户即可

User fdm
Group fdm
<VirtualHost *:80>
    DocumentRoot /home/fdm/web/fdm
    <Directory /home/fdm/web/fdm>
        options Indexes MultiViews
        AllowOverride all
        Allow from all
    </Directory>
</VirtualHost>

Forbidden You don’t have permission to access xxx.html

问题说明:

文件权限不足

解决方法 1:

# 一层层授权
chmod +x /dira
chmod +x /dira/dirb/
chmod +x /dira/dirb/index.html
# 或者 直接 chmod 777 -R /dira/dirb/index.html

解决方法 2:

修改配置文件/etc/httpd/conf/httpd.conf

DocumentRoot "/home/fdm/web/fdm"

解决方法 3:
修改配置文件/etc/httpd/conf/httpd.conf

# 注释如下代码
105 # <Directory />
106 #     AllowOverride none
107 #     Require all denied
108 # </Directory>

以上情况,不同问题解决方法不同,可以叠加使用。

Apache 注意事项