Linux之Apache服务基本配置

linux之Apache服务基本配置

  • 什么是Apache

Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。

  • Apache的部署
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
编写如下:
<h1> hello world <h1>

在这里插入图片描述

测试:
打开浏览器键入:http://172.25.254.184

在这里插入图片描述

  • Apache的相关目录文件
/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日志
  • 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
  • Apache默认发布文件及目录的修改

实验环境准备:
将上个实验更改的接口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<Directory "/www">     ##授权目录
122        Require all granted  ##允许所有登录
123 </Directory>

在这里插入图片描述

semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?' ##修改安全上下文
restorecon -RvvF /www/  ##刷新
systemctl restart httpd 

在这里插入图片描述
测试:

在这里插入图片描述

  • Apache内部访问控制

限制ip访问:
设置步骤:

vim /etc/httpd/conf/httpd.conf
121<Directory "/var/www/html/">
122     Order Allow ,Deny
123     Allow from All  ##允许所有ap
124     Deny from 172.25.254.1  ##
125</Directory>

在这里插入图片描述

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<Directory "/var/www/html/">
126    		AuthUserFile  "/etc/httpd/.userpass"
127    		AuthType       basic
128    		AuthName       "Please input username and password!!"
129    		Require user   admin
130    		Rrquire        valid-user
131</Directory>

在这里插入图片描述

在这里插入图片描述
测试:
在浏览器输入地址后通过用户名及密码登陆
在这里插入图片描述

  • Apache虚拟机的设置

现象:同一个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
编写如下:
<VirtualHost _default_:80> #创建默认虚拟主机,找不到虚拟主机的域名访问也由此主机提供服务
	    DocumentRoot /var/www/html #指定发布目录 
	    CustomLog logs/default.log combined #指定日志文件以及日志类型
</VirtualHost> 

<VirtualHost *:80> 
	    DocumentRoot /virtweb/music/html #指定发布目录 
	    ServerName music.cc.com #虚拟主机指定域名
	    CustomLog logs/music.log combined #指定日志文件以及日志类型 
</VirtualHost> 

<VirtualHost *:80> 
	    DocumentRoot /virtdir/news/html #指定发布目录 
	    ServerName news.toto.com #虚拟主机指定域名 
	    CustomLog logs/news.log combined #指定日志文件以及日志类型)
</VirtualHost> 

<Directory "/virtdir"> #对新建的发布目录进行认证 
	    Require all granted #允许所有人可以访问该目录 
</Directory>

在这里插入图片描述
本地域名解析设置:

vim /etc/hosts ##域名解析

在这里插入图片描述
重启服务:

systemctl restart httpd

在这里插入图片描述
测试:
打开浏览器分别输入music.cc.com news.cc.com
在这里插入图片描述
在这里插入图片描述

  • php perl python

Apache的语言除了html,常用的还有 php perl 以及python,上述实验我们用到的都是html,以下部分是运维人员需要了解的部署步骤

php:
安装:

yum install php -y

在这里插入图片描述
编写发布文件:

/etc/httpd/conf.d/php.conf ##php配置文件
vim /var/www/html/index.php ##编写
编写如下:
<?php
	phpinfo();
?>

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
编写如下(在最下方写入):
<Directory "/var/www/html/cgi">
	    Options +ExecCGI
	    AddHandler cgi-script .cgi
</Directory>

在这里插入图片描述
更改发布目录安全上下文:

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
编辑如下:
<VirtualHost *:80>
	    ServerName	wsgi.cc.com
	    WSGIScriptAlias / /var/www/cgi-bin/webapp.wsgi
</VirtualHost>

在这里插入图片描述
在这里插入图片描述
本地解析设定:

vim /etc/hosts
172.25.254.209 wsgi.cc.com ##设定dns解析

systemctl restart httpd

测试:
打开浏览器输入wsgi.cc.com
在这里插入图片描述

END

猜你喜欢

转载自blog.csdn.net/weixin_44828950/article/details/89876363
今日推荐