一、apache的安装部署
1)安装服务设定为开机启动
2)添加防火墙策略
firewall-cmd --permanent --add-service=http,https
firewall-cmd --reload
或者使用图形界面:firewall-config,注意ssh 时加上—X打开图形界面登陆
3)安装服务说明手册,重启服务
yum install httpd-manual.noarch -y
4)测试:http://ip/manual
二、apache配置文件
1、主配置目录:/etc/httpd/conf
2、主配置文件:/etc/httpd/conf/httpd.conf
3、子配置目录:/etc/httpd/conf.d
4、子配置目录:/etc/httpd/conf.d/*.conf
5、默认发布目录:/var/www/html
6、默认发布文件:index.html ##在被访问时,若未指定访问位置,则默认访问该文件内容
三、基本配置修改
1)修改端口
1)vim /etc/httpd/conf/httpd.conf ##编辑主配置文件修改端口
42 Listen 8080 ##http服务改为8080端口
2)火墙添加8080端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
测试:http://ip:8080
由于防火墙开启,此时火墙策略并没有开启8080端口,故访问被拒,添加8080端口,允许打开,再次访问成功
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 6666 ##t类型 p协议 a添加
2)默认发布文件修改
先还原环境,改端口为80
vim /etc/httpd/conf/httpd.conf
164 DirectoryIndex index.html test.html ##默认先发布前面的文件,前面文件不存在,才自动示后面的
ststemctl restart httpd 重启服务
http服务默认发布目录为/var/www/html,在其中建立index.html和test.html文件,重启服务后显示index.html
删除index.html后,查看发布为test.html文件的内容
3)默认发布目录修改
mkdir /westos/web/html -p
vim /westos/web/html/westos.html
vim /etc/httpd/conf/httpd.conf
对目录授权
119 DocumentRoot "/westos/web/html"
120 <Directory "/westos/web/html">
121 Require all granted ##所有都允许
122 </Directory>
更改安全上下文标签
semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
rstorecon -RvvF /westos/*
注意:在默认发布文件中添加westos.html(即使默认指定目录为/westos/web/html,但是默认发布文件没有此文件,仅默认index.html,所以不添加看不到)
查错
> /etc/httpd/logs/error_log
cat /var/log/messages
测试http://ip
4)apache的虚拟主机
还原实验环境,简单粗暴:
rm -fr /etc/httpd/conf/httpd.conf
yum reinstall httpd -y
systemctl restart httpd ##删除主配置文件,重新安装重启服务
注意:在子配置目录中建立各站点的配置文件:文件必须以.conf结尾!!!
news.conf直接复制份为music.conf. :%s/news/music/g全局替换
添加真机本地解析
vim /etc/hosts
172.25.254.222 www.westos.com news.westos.com music.westos.com
浏览器测试:music.westos.com news.westos.com
尽管是同一个ip,但是实现了分离访问!
5)apache内部访问控制
1、基于主机IP的访问控制
cd /etc/httpd/conf.d
vim a_default.conf
<Directory "/var/www/html">
Order Allow,Deny ##列表读取顺序,后读会覆盖先读的重复部分
Allow from all
Deny from 172.25.254.57 ##仅57不能看
重启服务
57主机只能看到apache界面,不能看具体内容,而其他主机可查看到内容!
改变下读取顺序后,我们再次测试:这时刚才被拒的用户57也正常访问了!
2、基于用户身份的访问控制
cd /etc/httpd/conf.d
htpasswd -cm http_userlist admin ##c表创建 m表名称
注意:若已存在文件,则只需-m就好,再次加c会覆盖原来创建的
vim http_userlist #文件认证
AuthUserFile /etc/httpd/conf.d/http_userlist 用什么文件做认证
AuthName "Please input username and passwd !!" 客户访问时能看到的标题
AuthType basic 认证类型(基本)
Require valid-user 文件允许所有在http_userlist用户访问
浏览器测试:
ctl shift+delete ##清缓存(二次访问就需密码)
否则一次登陆后再次不需密码,不方便看实验效果
6)语言支持
1、安装php服务,创建php语言文件
1、yum install php -y
vim /var/www/html/index.php
<?php
phpinfo();
?>
systemctll restart httpd
测试:172.25.254.143/index.php
2、建立一个cgi语言脚本的目录:mkdir /var/www/html/cgi,更改安全上下文
3、写脚本,加权限,可执行
4、编辑文件识别脚本
5、测试