服务器搭建

安装

yum -y install httpd

验证 httpd 是否安装

rpm -qa|grep httpd

查看 httpd 版本

httpd -v

查看 httpd 进程

ps -ef|grep httpd

查看 httpd 运行状态

systemctl status httpd.service 
service httpd status

启动 httpd 服务

systemctl start httpd.service 
service httpd start

测试 httpd 服务

curl 127.0.0.1

停止 httpd 服务

systemctl stop httpd.service
service httpd stop 

卸载 Apache httpd

yum erase httpd.x86_64

配置说明

Apache 的所有配置文件都位于 /etc/httpd/conf 和 /etc/httpd/conf.d 。网站的数据默认位于 /var/www 。
Apache 主要的配置文件是 /etc/httpd/conf/httpd.conf

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

+显示服务器操作系统的名称:
在出现错误页的时候是否显示服务器操作系统的名称

ServerTokens OS  //ServerTokens Prod为不显示

+指定Apache的运行目录:
服务启动之后自动将目录改变为当前目录,在后面使用到的所有相对路径都是想对这个目录

ServerRoot "/etc/httpd"

+其它全局环境配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#记录httpd守护进程的pid号码,这是系统识别一个进程的方法,系统中httpd进程可以有多个,但这个PID对应的进程是其他的父进程
PidFile run/httpd.pid

#服务器与客户端断开的时间
Timeout 60

#是否持续连接(因为每次连接都得三次握手,如果是访问量不大,建议打开此项,如果网站访问量比较大关闭此项比较好),
#修改为:KeepAlive On 表示允许程序性联机
KeepAlive Off

#表示一个连接的最大请求数
MaxKeepAliveRequests 100

#断开连接前的时间
KeepAliveTimeout 15

#系统默认的模块,表示为每个访问启动一个进程(多个连接公用一个进程的时候,在同一时刻只能有一个获得服务)
#<IfModule prefork.c>
#<IfModule worker.c> 配置线程访问

+Listen 配置,监听端口:

Listen IP:PORT (IP不写即默认:0.0.0.0)

+Dynamic Shared Object (DSO) Support(动态共享对象支持)
添加 Apache 动态模块,如:php 支持模块,重定向模块,认证模块支持等

LoadModule foo_module modules/mod_foo.so

Include conf.modules.d/*.conf

+Apache运行用户配置:

User apache
Group apache

+Apache服务默认管理员地址配置:

ServerAdmin root@localhost

+Apache的默认服务名及端口设置:

ServerName localhost:80

+Apache的根目录访问控制设置:
默认Apache对根目录访问都是拒绝访问

<Directory />
    AllowOverride none
    Require all denied
</Directory>

+Apache的默认网站根目录设置及访问控制:
默认对网站的根目录具有访问权限,此选项默认值即可

1
2
3
4
5
6
7
8
9
10
11
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None //使用.htaccess会严重影响到Apache的性能,如果不是特殊需要,建议关闭
Require all granted
</Directory>

+Apache的默认首页设置:
默认只支持:index.html首页,如要支持其他类型的首页,需要在此区域添加:如index.php表示支持index.php类型首页

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

+Apache关于.ht文件访问配置:
默认为具有访问权限,此区域文件默认即可

<Files ".ht*">
    Require all denied
</Files>

+Apache关于日志文件配置:
默认的日志级别,默认的访问日志路径,默认的错误日志路径等相关设置,此选项内容默认即可

1
2
3
4
5
6
7
8
9
10
11
12
ErrorLog "logs/error_log"    //错误日志存放的位置
LogLevel warn //日志的级别
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>

CustomLog "logs/access_log" combined
</IfModule>

+URL重定向,cgi模块配置说明:
包含一些URL重定向,别名,脚本别名等相关设置,以及一些特定的处理程序,比如cgi设置说明

1
2
3
4
5
6
7
8
9
10
<IfModule alias_module>
#Alias /testWeb /var/www/testWeb
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" //对CGI模块儿的的别名
</IfModule>

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

+MIME媒体文件,以及相关http文件解析配置说明:
包含一些mime文件支持,以及添加一些指令在给定的文件扩展名与特定的内容类型之间建立映射关系,比如添加对php文件扩展名映射关系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<IfModule mime_module>
TypesConfig /etc/mime.types //设置保存有不同MIME类型数据的文件名
#AddType application/x-gzip .tgz

#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

#AddHandler cgi-script .cgi .pl 表示允许扩展名为.pl的CGI脚本运行
#AddHandler type-map var

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

#ErrorDocument 404 /missing.html //服务器出现404错误的时候,返回missing.html页面
</IfModule>

+服务器页面提示设置:
可定制的访问错误响应提示,支持三种方式:1明文 ,2本地重定向 3,外部重定向;另外还包括内存映射或“发送文件系统调用”可被用于分发文件等配置

1
2
3
4
5
6
7
8
9
10
11
<IfModule mime_magic_module>
MIMEMagicFile conf/magic //判断文件真实MIME类型功能的模块
</IfModule>

#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html

#EnableMMAP off //是否允许内存映射
EnableSendfile on

+Apache服务器补充设置:
服务器池管理,多语言错误消息,动态目录列表形式配置,语言设置,用户家庭目录,请求和配置上的实时信息,虚拟主机,Apache Http Server手册,分布式创作和版本控制,多种类默认设置,mod_proxy_html,使其支持HTML4/XHTML1等等补充配置的补充

1
IncludeOptional conf.d/*.conf

+Apache服务器安全连接设置:

1
2
3
4
5
6
7
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

ServerSignature Off //当客户请求的网页不存在,或者错误的时候是否提示apache的版本的一些信息
TraceEnable Off

+启用虚拟主机:

1
2
3
4
5
6
7
#<VirtualHost *:80> 
#ServerAdmin webmaster@www.linuxidc.com
#DocumentRoot /www/docs/www.linuxidc.com
#ServerName www.linuxidc.com
#ErrorLog logs/www.linuxidc.com-error_log
#CustomLog logs/www.linuxidc.com-access_log common
#</VirtualHost>

参考文档