贴有道云笔记链接: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仓库默认几个步骤:

  1. 配置挂载信息

mkdir /media/cdrom

mount /dev/cdrom /mdia/cdrom

vim /etc/fstab

/dev/cdrom /media/cdrom iso9660 defaults 0 0

  1. 编辑yum仓库的配置文件

vim /etc/yum.repo.d/xiaomei.repo

[xiaomei]名称无所谓

name=xiamei is late无所谓

baseusl=file:///media/cdrom

enabled=1 1是开启,0是关闭

gpgcheck=0 是否自动校验

  1. yum install httpd
  2. systemctl restart httpd
  3. 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

刷新网页,需要输入密码

 

服务器切割

www.linuxprobe.com

  1. IP地址
  2. 主机名称
  3. 端口号

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:第十四章节、第十五章节

 

 

 

 

Logo

更多推荐