10 使用 Apache 服务部署静态网站(RHEL7)

使用 Apache 服务部署静态网站(RHEL7) —学习笔记

配置安装httpd

mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom
vim /etc/yum.repos.d/rhel7.repo
 [rhel7]
 name=rhel7
 baseurl=file:///media/cdrom
 enabled=1
 gpgcheck=0
 
yum install httpd
systemctl start httpd
systemctl enable httpd
http://127.0.0.1   # 可看到提供 Web 服务的 httpd 服务程序的默认页面


#Linux 系统中的配置文件
服务目录 /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 秒

替换掉 httpd 服务程序的默认首页面

echo "Welcome To LinuxProbe.Com" > /var/www/html/index.html

把保存网站数据的目录修改为/home/wwwroot 目录

mkdir /home/wwwroot
echo "The New Web Directory" > /home/wwwroot/index.html
vim /etc/httpd/conf/httpd.conf
 119 DocumentRoot "/home/wwwroot"   # 用于定义网站数据保存路径
 124     # 用于定义目录权限
systemctl restart httpd

vim /etc/selinux/config      # SELINUX=enforcing  permissive    disabled
   SELINUX=enforcing                # 强制启用  # 只警告不拦截 # 不警告也不拦截
getenforce                              
setenforce 0   # 0 为禁用, 1 为启用
getenforce

firefox

setenforce 1
ls -Zd /var/www/html     #  SELinux 安全上下文
system_u:object_r:httpd_sys_content_t:s0 /var/www/html

# 用户段: 角色段  :类型段
# 用户段 system_u 代表系统进程的身份
# 角色段 object_r 代表文件目录的角色
# 类型段 httpd_sys_content_t 代表网站服务的系统文件
ls -Zd /home/wwwroot
unconfined_u:object_r:home_root_t:s0 /home/wwwroot


#semanage 命令 semanage [选项] [文件]
-l 参数用于查询
-a 参数用于添加
-m 参数用于修改
-d 参数用于删除


semanage fcontext -a -t httpd_sys_content_t /home/wwwroot   # 目录
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*  # 里面所有文件
restorecon -Rv /home/wwwroot/       #  将设置好的SELinux 安全上下文立即生效
                                    #  -Rv 参数对指定的目录进行递归操作

# 个人用户主页功能

vim /etc/httpd/conf.d/userdir.conf
 17 # UserDir disabled    # 让 httpd 服务程序开启个人用户主页功能
 24 UserDir public_html   # 网站数据在用户家目录中的保存目录名称,即 public_html 目录
su - linuxprobe
mkdir public_html
echo "This is linuxprobe's website" > public_html/index.html
chmod -Rf 755 /home/linuxprobe

getsebool -a | grep http
setsebool -P httpd_enable_homedirs=on  # -P 参数,让修改后的 SELinux 策略规则永久生效且立即生效
firefox
http://127.0.0.1/-linuxprobe/

网页密码

htpasswd -c /etc/httpd/passwd linuxprobe  # -c 参数表示第一次生成
vim /etc/httpd/conf.d/userdir.conf
  31 
  32 AllowOverride all 
  33 authuserfile "/etc/httpd/passwd"  #刚刚生成出来的密码验证文件保存路径
  34 authname "My privately website"  #当用户尝试访问个人用户网站时的提示信息
  35 authtype basic
  36 require user linuxprobe #用户进行账户密码登录时需要验证的用户名称
systemctl restart httpd  

虚拟主机功能

基于 IP 地址

//  配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-bond0
IPADDR0=192.168.10.10
IPADDR1=192.168.10.20
IPADDR2=192.168.10.30
systemctl restart network

mkdir -p /home/wwwroot/10   # 创建用于保存不同网站数据的 3 个目录
mkdir -p /home/wwwroot/20
mkdir -p /home/wwwroot/30
echo "IP:192.168.10.10" > /home/wwwroot/10/index.html
echo "IP:192.168.10.20" > /home/wwwroot/20/index.html
echo "IP:192.168.10.30" > /home/wwwroot/30/index.html
vim /etc/httpd/conf/httpd.conf

113   #追加写入基于 IP 地址的虚拟主机网站参数
114 DocumentRoot /home/wwwroot/10
115 ServerName www.linuxprobe.com
116 
117 AllowOverride None
118 Require all granted
119 
120  
121   #追加写入基于 IP 地址的虚拟主机网站参数
122 DocumentRoot /home/wwwroot/20
123 ServerName bbs.linuxprobe.com
124 
125 AllowOverride None
126 Require all granted
127 
128 
129   #追加写入基于 IP 地址的虚拟主机网站参数
130 DocumentRoot /home/wwwroot/30
131 ServerName tech.linuxprobe.com
132 
133 AllowOverride None
134 Require all granted
135 
136 

systemctl restart httpd
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*
restorecon -Rv /home/wwwroot
firefox
exit

基于主机域名

vim /etc/hosts
  192.168.10.10 www.linuxprobe.com bbs.linuxprobe.com tech.linuxprobe.com
ping -c 4 www.linuxprobe.com

mkdir -p /home/wwwroot/www
mkdir -p /home/wwwroot/bbs
mkdir -p /home/wwwroot/tech
echo "WWW.linuxprobe.com" > /home/wwwroot/www/index.html
echo "BBS.linuxprobe.com" > /home/wwwroot/bbs/index.html
echo "TECH.linuxprobe.com" > /home/wwwroot/tech/index.html

vim /etc/httpd/conf/httpd.conf
113 
114 DocumentRoot "/home/wwwroot/www"
115 ServerName "www.linuxprobe.com"
116 
117 AllowOverride None
118 Require all granted
119 
120 
121 
122 DocumentRoot "/home/wwwroot/bbs"
123 ServerName "bbs.linuxprobe.com"
124 
125 AllowOverride None
126 Require all granted
127 
128 
129 
130 DocumentRoot "/home/wwwroot/tech"
131 ServerName "tech.linuxprobe.com"
132 
133 AllowOverride None
134 Require all granted
135 
136 

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*
restorecon -Rv /home/wwwroot

基于端口号

mkdir -p /home/wwwroot/6111
mkdir -p /home/wwwroot/6222
echo "port:6111" > /home/wwwroot/6111/index.html
echo "port:6222" > /home/wwwroot/6222/index.html

vim /etc/httpd/conf/httpd.conf
43 Listen 6111
44 Listen 6222

113 
114 DocumentRoot "/home/wwwroot/6111"
115 ServerName www.linuxprobe.com
116 
117 AllowOverride None
118 Require all granted
119 
120 
121 
122 DocumentRoot "/home/wwwroot/6222"
123 ServerName bbs.linuxprobe.com
124 
125 AllowOverride None
126 Require all granted
127 
128 

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/*
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/*
restorecon -Rv /home/wwwroot/
systemctl restart httpd
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 6111
semanage port -a -t http_port_t -p tcp 6222
semanage port -l| grep http
systemctl restart httpd
firefox



# Apache 的访问控制

mkdir /var/www/html/server
echo "Successful" > /var/www/html/server/index.html

vim /etc/httpd/conf/httpd.conf
129 
130 SetEnvIf User-Agent "Firefox" ff=1
131 Order allow,deny   # Order 指令,定义 Allow 或 Deny 指令起作用的顺序
132 Allow from env=ff
133 
systemctl restart httpd
firefox


vim /etc/httpd/conf/httpd.conf
129 
130 Order allow,deny
131 Allow from 192.168.10.20   # 只允许 IP 地址为 192.168.10.20 的主机访问网站资源
132 Order allow,deny
133 
systemctl restart httpd
firefox

你可能感兴趣的:(学习笔记,Linuxprobe.com,RHEL7)