Linux就该这么学-Apache服务部署
< 返回列表时间: 2020-03-14来源:OSCHINA
【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>>>
今天学习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
热门排行