今天学习Apache服务部署静态网站,现将学习和使用过程进行记录。
一、简单的httpd服务配置
1.首先配置本地yum源。
编辑yum配置文件
[root@localhost 20]# vim /etc/yum.repos.d/rhel.repo
[rhel] ####yum源的唯一标识符,不能重复
name=rhel7##yum源描述信息
baseurl=file:///media/cdrom 本地yum 源文件地址
enabled=1###设置此源是否可用,1为可用,0为禁用
gpgcheck=0###设置此源是否校验文件,1为校验,0为不校验
2.安装apache服务程序
yum install -y httpd
安装完成后将httpd加入开机启动项中
systemctl enable httpd
3.配置httpd服务程序的配置文件
httpd的配置文件
服务目录 | /etc/httpd |
主配置文件 | /etc/httpd/conf/httpd.conf |
网站数据目录 | /var/www/html |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
配置httpd服务程序时最常用的参数以及用途描述
ServerRoot | 服务目录 |
ServerAdmin | 管理员邮箱 |
User | 运行服务的用户 |
Group | 运行服务的用户组 |
ServerName | 网站服务器的域名 |
DocumentRoot | 网站数据目录 |
Directory | 网站数据目录的权限 |
Listen | 监听的IP地址与端口号 |
DirectoryIndex | 默认的索引页页面 |
ErrorLog | 错误日志文件 |
CustomLog | 访问日志文件 |
Timeout | 网页超时时间,默认为300秒 |
# 创建保存网站数据的目录
mkdir /home/wwwroot -p
echo "The Test for HTTPD" >/home/wwwroot/index.html
更改配置文件中的DocumentRoot和Directory路径为/home/wwwroot
vim /etc/httpd/conf/http.conf
4.由于更改了默认的DocumentRoot路径,且selinux为开启状态,需要对新建的目录进行安全上下文设置
semanage命令
-l参数用于查询;
-a参数用于添加;(其实在实验中结果为修改作用)
-m参数用于修改;
-d参数用于删除。
设置安全上下文
[root@localhost 20]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@localhost 20]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
#######此处wwwroot目录后不能加‘/’,否则会出现问题
或者使用
[root@localhost 20]# semanage fcontext -a -t httpd_sys_content_t '/home/wwwroot(/.*)?'
设置完成后使用restorecon 命令对设置生效
[root@localhost 20]# restorecon -Rv /home/wwwroot/
5.重启httpd服务
systemctl restart httpd
二、配置基于端口号的web服务
1.创建网站服务目录,并写入index文件
[root@localhost 20]# mkdir /home/wwwroot/{6666,8888}
[root@localhost 20]# echo "66666666666666666">../6666/index.html
[root@localhost 20]# echo "888888888888888888888">../8888/index.html
2.编辑配置文件
[root@localhost 20]# vim /etc/httpd/conf/httpd.conf
listen 6666
listen 8888
<VirtualHost *:6666>
DocumentRoot /home/wwwroot/6666
ServerName www.chb.com
<Directory /home/wwwroot/6666 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:8888>
DocumentRoot /home/wwwroot/8888
ServerName www.chb.com
<Directory /home/wwwroot/8888 >
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
3.对网站目录设置安全上下文并立即生效
ls -ldZ /home/wwwroot/6666 ###查看目录的安全上下文的值
[root@localhost 20]# semanage fcontext -a -t httpd_sys_content_t '/home/wwwroot/6666(/.*)?'
[root@localhost 20]# semanage fcontext -a -t httpd_sys_content_t '/home/wwwroot/8888(/.*)?'
[root@localhost 20]# restorecon -Rv /home/wwwroot/6666/ /home/wwwroot/8888/
4、由于新增的端口为6666 8888不是selinux中允许的httpd端口,所以需要对其进行安全域的设置
查找selinux允许的默认端口号
[root@localhost 20]# semanage port -l|grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
[root@localhost 20]#
发现没有6666和8888,将这两个端口添加,添加后会立即生效
[root@localhost 20]# semanage port -a -t http_port_t -p tcp 6666
[root@localhost 20]# semanage port -a -t http_port_t -p tcp 8888
[root@localhost 20]# semanage port -l |grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 8888, 6666, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
5.重新启动httpd的服务程序,网站内容即可浏览
systemctl restart httpd
来源:oschina
链接:https://my.oschina.net/u/4312865/blog/3194961