贴有道云笔记链接:http://note.youdao.com/noteshare?id=024bad05881c6a58313f7e7e5ebfb98d
Apache
网站工具:
windows:IIS
Linux:
Apache美国:1.老牌 2.红帽考试 3.主流
Nginx俄罗斯:占用少性能好
LNMP:一种架构,linux、nginx、mysql、php(LNMPA:Apache)
配置yum仓库中的Apache:
apache默认是没有的,需要配置yum仓库,配置yum仓库默认几个步骤:
- 配置挂载信息
mkdir /media/cdrom
mount /dev/cdrom /mdia/cdrom
vim /etc/fstab
/dev/cdrom /media/cdrom iso9660 defaults 0 0
- 编辑yum仓库的配置文件
vim /etc/yum.repo.d/xiaomei.repo
[xiaomei]名称无所谓
name=xiamei is late无所谓
baseusl=file:///media/cdrom
enabled=1 1是开启,0是关闭
gpgcheck=0 是否自动校验
- yum install httpd
- systemctl restart httpd
- systemctl enable httpd加入到开机启动项中
打开浏览器,输入192.168.10.10,显示Test Page,说明服务运行起来了,不过没有内容可能有两个原因:1.网站内没有文件,2.权限不足,对应的解决方法
1.网站内没有文件
网站保存文件的目录在/var/www/html
cd /vaar/www/html
vim index.html
刷新网页,应该就能显示刚才的编辑内容了
如果想把默认的网站目录/var/www/html换到/home/wwwroot里面,该怎么操作?
先找到主配置文件
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/home/wwwroot"
mkdir -p /home/wwwroot
systemctl restart httpd
刷新网页,但是没有数据,可能是因为原因1
cd /home/wwroot
ls
vim index.html
刷新网页,网页还是没有数据,底下弹出弹窗SELinux,说明权限不足
2.权限不足
SELinux安全子系统(美国安全局)
SELinux域:限制服务功能
SELinux安全上下文:限制文件权限,限制文件只能被谁所获取
----------------------------------------------------------------
SELinux正常工作都会被关闭,但是RHCSA+RHCE考试不能关闭
setenforce 0临时关闭
setenforce 1临时开启
vim /etc/selinux/config
enforcing强制开启模式(考试期间要保证此项是开启的)
permissive警告模式
disabled禁用模式,禁止selinux,而不是selinux去禁止其他
setenforce 0临时关闭
刷新网页即可显示之前编辑的网页信息
setenforce 1再次临时开启
刷新页面又不能正常显示
setsebool设置sebool
getsebool获取sebool
semanage设置selinux上下文
将/vwar/www/html改成/home/wwwroot,所以是越权行为,那怎么才能查看呢
ls -ldZ /var/www/html
ls -ldZ /home/wwwroot
怎么去解决呢?
复制 httpd_sys_content_t
semanage fcontext -a -t httpd_sys_content_t /home
-a修改 -t具体的值,注意,semanage后面的/home后面不可以有斜杠,即不可以是/home/
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
再次刷新网页,还是没有显示,此时应该
restorecon -Rv /home/wwwroot
再次刷新网页即可正常显示
semanage设置selinux安全上下文
setbool设置selinux域
个人用户主页功能(为一万个人批量建立网页)
vim /etc/httpd/conf.d/usedir.conf
UseDir public_html
ls
su -linuxprobe
mkdir public_html
cd public_html
vim index.html
linuxprobe's website
cd ..
cd ..
chmod -Rf 755 public_html
exit
systemctl restart httpd
输入网址:193.168.10.10/-linuxprobe
su - linuxprobe
chmod -Rf 777 ~
刷新网址,显示正常
exit
sentenforce 1
网页又不正常显示
getsebool -a | greo http
setsebool -P httpd_enable——homedirs=on -P永久生效
即可正常显示
如何添加密码使别人访问呢
htpasswd -c /etc/httpd/passwd xiaoqic
输入密码
vim /etc/httpd/conf.d/userdir.conf
allowoverride all是否允许
authusefile .etc.httpd/passwd刚才修改的文件存放的路径
authname xxxxxxxL描述信息
authtype basic基本类型
requirer user xiaoqi需要的用户名称
systemctl restart httpd
刷新网页,需要输入密码
服务器切割
- IP地址
- 主机名称
- 端口号
1.基于IP地址
编辑配置文件,添加IP地址
IPADDR0=192.168.10.10
IPADDR1=192.168.10.20
IPADDR2=192.168.10.30
mkdir -p /home/wwwroot/10
mkdir -p /home/wwwroot/20
mkdir -p /home/wwwroot/30
cd /home/wwwroot
ehco "1010101011010" > 10/index.html
ehco "202020202020" > 20/index.html
ehco "303030303030" > 30/index.html
vim /etc/httpd/conf/httpd.conf
<Virtualhost 192.168.10.10>
documentroot /home/wwwroot/10
servername www.linuxprobe.com
<directory /home/wwwroot/10>
allowoverride none
requirer all granted
</directory>结束对于目录的权限定义
</virtualhost>结束所有对于虚拟主机的定义
<Virtualhost 192.168.10.20>
documentroot /home/wwwroot/20
servername www.linuxprobe.com
<directory /home/wwwroot/20>
allowoverride none
requirer all granted
</directory>
</virtualhost>
<Virtualhost 192.168.10.30>
documentroot /home/wwwroot/30
servername www.linuxprobe.com
<directory /home/wwwroot/30>
allowoverride none
requirer all granted
</directory>
</virtualhost>
systemctl restart httpd
打开网站,输入网址192.168.10.10,仍然不能正常显示
ls -ldZ /var/www/html
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
刷新网页,正常显示,同理192.168.10.20、192.168.10.30都正常
2.基于主机名
安装httpd的yum仓库,重启服务,并加入启动项中
vim /etc/hosts
192.168.10.10 www.linuxprobe.com www.linuxcool.com www.linuxdown.com
ping www.linuxprobe.com
另外两个同理
vim /etc/hosts
mkdir -p /home/wwwroot/www
mkdir -p /home/wwwroot/linuxprobe
mkdir -p /home/wwwroot/linuxcool
mkdir -p /home/wwwroot/linuxdown
ls
echo "linuxprobe.com" > linuxprobe/index.html
echo "linuxcool.com" > linuxcool/index.html
echo "linuxdown.com" > linuxdown/index.html
vim /etc/httpd/conf/httpd.conf
<virtualhost 192.168.10.10>
document /home/wwwroot/linuxprobe
servername www.linuxprobe.com
<directory /home/wwwroot/linuxprobe>
allowoverride none
require all granted
</directory>
</virtualhost>
<virtualhost 192.168.10.10>
document /home/wwwroot/linuxpcool
servername www.linuxcool.com
<directory /home/wwwroot/linuxcool>
allowoverride none
require all granted
</directory>
</virtualhost>
<virtualhost 192.168.10.10>
document /home/wwwroot/linuxdown
servername www.linuxdown.com
<directory /home/wwwroot/linuxdown>
allowoverride none
require all granted
</directory>
</virtualhost>
systemctl restart httpd
打开网页,输入域名,不能正常显示
setenforce 0
发现可以正常显示,说明是selinux权限不足导致的
sentenforce 1
ls -ldZ /var/www/html
semanage fcontext -a -t httped_sys_content_t home/wwwroot
semanage fcontext -a -t httped_sys_content_t home/wwwroot/linuxprobe
semanage fcontext -a -t httped_sys_content_t home/wwwroot/linuxprobe/*
semanage fcontext -a -t httped_sys_content_t home/wwwroot/linuxcool
semanage fcontext -a -t httped_sys_content_t home/wwwroot/linuxcool/*
semanage fcontext -a -t httped_sys_content_t home/wwwroot/linuxdown
semanage fcontext -a -t httped_sys_content_t home/wwwroot/linuxdown/*
restorecon -Rv /home/wwwroot
刷新网站,正常显示
3.基于端口号(不常用)
安装httpd的yum仓库,重启服务,并加入启动项中
mkdir -p /home/wwwroot/6111
mkdir -p /home/wwwroot/6222
cd /home/wwwroot
echo "6111111" > 6111/index.html
echo "6222222" > 6222/index.html
vim /etc/httpd/conf/httpd.conf
Listen 80
Listen 6111大概在第40行
Listen 6222
<virtualhost 192.168.10.10:6111>
document /home/wwwroot/6111
servername www.linuxprobe.com
<directory /home/wwwroot/6111>
allowoverride none
require all granted
</directory>
</virtualhost>
<virtualhost 192.168.10.10:6222>
document /home/wwwroot/6222
servername www.linuxprobe.com
<directory /home/wwwroot/6222>
allowoverride none
require all granted
</directory>
</virtualhost>
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
systemctl restart httpd
打开网页,输入域名,不能正常显示
setenforce 0
发现可以正常显示,说明是selinux权限不足导致的
sentenforce 1
ls -ldZ /var/www/html
semanage fcontext -a -t httped_sys_content_t home/wwwroot
semanage fcontext -a -t httped_sys_content_t home/wwwroot/6111
semanage fcontext -a -t httped_sys_content_t home/wwwroot/6111/*
semanage fcontext -a -t httped_sys_content_t home/wwwroot/6222
semanage fcontext -a -t httped_sys_content_t home/wwwroot/6222/*
restorecon -Rv /home/wwwroot
systemctl restart httpd
刷新网站,正常显示
Apache的访问控制
设定条件,满足则可以
mkdir -p /var/www/html/sever
cd /var/www/html
cd sever/
ls
vim index.html
2020.05.24
vim /etc/httpd/conf/httpd.conf
<directory /var/www/html/server>仅火狐才可以访问
set environment if(简写成)sentenvif User-Agent "Firefox" ff=1
Order allow,deny
allow from env=ff
</directory>
systemctl restart httpd
systemctl enable httpd
用火狐可以正常打开,用其他浏览器则不能打开
问题:httpd安装的apache和编译安装的apache不能用时存在或者使用,会冲突
复习:基于端口号的虚拟主机功能
预习:
05.29:第十一章节、第十二章节
05.30:第十三章节
05.31:第十四章节、第十五章节