Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。
yum install httpd -y ##安装服务
systemctl start httpd ##开启服务
systemctl enable httpd ##开机启动服务
firewall-cmd --list-all ##查看防火墙支持的服务
firewall-cmd --permanent --add-service=http ##添加http到防火墙
firewall-cmd --reload ##重新加载防火墙
rpm -ql httpd ##查询httpd相关文件
vim /var/www/htmlindex.html
编写如下:
hello world
测试:
打开浏览器键入:http://172.25.254.184
/etc/httpd/conf ##主配置目录
/etc/httpd/conf/httpd.conf ##主配置文件
/etc/httpd/conf.d/ ##子配置目录
/etc/httpd/conf.d/*.conf ##子配置文件
/var/www/html ##默认发布目录
/var/www/html/index.html ##默认发布文件
80 ##默认端口
httpd_sys_content_t ##默认安全上下文
apache ##程序开启默认用户
/etc/httpd/logs/* ##apache日志
配置文件修改:
vim /etc/httpd/conf/httpd.conf
42 Listen 8080
systemctl restart httpd
netstat -antlpupe | grep httpd ##查看
firewall-cmd --add-port=8080/tcp ##添加接口道防火墙
新添加端口:
vim /etc/httpd/conf/httpd.conf
43 Listen 8888
semanage port -l |grep http ##查看支持的接口
semanage port -a -t http_port_t -p tcp 8888 ##修改新添加端口安全上下文
semanage port -l |grep http
firewall-cmd --add-port=8888/tcp ##添加端口到防火墙
systemctl restart httpd
反复更改安全上下文或导致出错
恢复方法:
touch /.autorelabel
reboot
实验环境准备:
将上个实验更改的接口8888恢复成80接口
默认发布文件修改:
vim /etc/httpd/conf/httpd.conf
164 DirectoryIndex test.html index.html ##修改默认发布文件为test.html 同时存在优先级
systemctl restart httpd
vim /etc/httpd/conf/httpd.conf
编写如下:
120 DocumentRoot "/www/html"
121 ##授权目录
122 Require all granted ##允许所有登录
123
semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?' ##修改安全上下文
restorecon -RvvF /www/ ##刷新
systemctl restart httpd
限制ip访问:
设置步骤:
vim /etc/httpd/conf/httpd.conf
121
122 Order Allow ,Deny
123 Allow from All ##允许所有ap
124 Deny from 172.25.254.1 ##
125
systemctl restart httpd
测试:
用IP为172.25.254.1的主机打开浏览器测试
发现访问被限制
限制用户访问(非系统用户):
实验环境准备:
将之前设置的默认发布目录恢复默认的/var/www/html(也可不恢复,根据实际情况而而定)
设置步骤:
htpasswd -cm /etc/httpd/.userpass admin ##.文件名隐藏文件
htpasswd -m /etc/httpd/.userpass admin1 ##再次创建键入参数c会覆盖
可以新建一个子配置文件也可在主配置文件编写,若在主配置文件编写,则需要考虑读取先后顺序
cd /etc/httpd/conf.d
vim a_default.conf ##新建一个子配置文件
编写如下:
121
126 AuthUserFile "/etc/httpd/.userpass"
127 AuthType basic
128 AuthName "Please input username and password!!"
129 Require user admin
130 Rrquire valid-user
131
现象:同一个ip下访问不同的页面,类似通过腾讯主站www.qq.com访问旗下新闻和音乐板块时的网站域名为news.qq.com music.qq.com
设置步骤:
mkdir -p /virtweb/{music,news}/html
vim /virtweb/music/html/index.html #创建发布文件
vim /virtweb/news/html/index.html #创建发布文件
semanage fcontext -a -t httpd_sys_content_t '/virtweb(/.*)?' # 修改发布目录安全上下文
restorecon -RvvF /virtweb/ #刷新
vim /etc/httpd/conf.d/virthost.conf
编写如下:
#创建默认虚拟主机,找不到虚拟主机的域名访问也由此主机提供服务
DocumentRoot /var/www/html #指定发布目录
CustomLog logs/default.log combined #指定日志文件以及日志类型
DocumentRoot /virtweb/music/html #指定发布目录
ServerName music.cc.com #虚拟主机指定域名
CustomLog logs/music.log combined #指定日志文件以及日志类型
DocumentRoot /virtdir/news/html #指定发布目录
ServerName news.toto.com #虚拟主机指定域名
CustomLog logs/news.log combined #指定日志文件以及日志类型)
#对新建的发布目录进行认证
Require all granted #允许所有人可以访问该目录
vim /etc/hosts ##域名解析
systemctl restart httpd
测试:
打开浏览器分别输入music.cc.com news.cc.com
Apache的语言除了html,常用的还有 php perl 以及python,上述实验我们用到的都是html,以下部分是运维人员需要了解的部署步骤
php:
安装:
yum install php -y
/etc/httpd/conf.d/php.conf ##php配置文件
vim /var/www/html/index.php ##编写
编写如下:
systemctl restart httpd
测试:
打开浏览器输入172.25.254.209/index.php
perl:
本机已经安装过perl相关软件
rpm -q perl
mkdir -p /var/www/html/cgi ##创建发布目录
vim /var/www/html/cgi/index.cgi ##编写(可复制manual)
vim /etc/httpd/conf.d/virthost.conf
编写如下(在最下方写入):
Options +ExecCGI
AddHandler cgi-script .cgi
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -Rvvf /var/www/html/cgi
chmod +x /var/www/html/cgi/index.cgi
systemctl restart httpd
测试:
用python命令直接执行发布文件
或者打开浏览器输入172.25.254.209/cgi/index.cgi
python:
安装:
yum search wsgi
yum install mod_wsgi.x86_64 -y
cd /var/www/cgi-bin
将webapp.wsgi 下载到上述目录中 (因python编写较为复杂,此实验用编写好的发布文件即可)
vim /etc/httpd/conf.d/vhost.conf
编辑如下:
ServerName wsgi.cc.com
WSGIScriptAlias / /var/www/cgi-bin/webapp.wsgi
vim /etc/hosts
172.25.254.209 wsgi.cc.com ##设定dns解析
systemctl restart httpd
END