linux系统之apache基本配置及语言支持及虚拟主机 访问控制

一.apache的安装


yum install httpd -y

systemctl start httpd

systemctl stop firewalld

systemctl enable httpd

systemctl disable firewalld

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

二.apache的基础信息

主配置目录:/etc/httpd/conf 主配置文件:/etc/httpd/conf/http.conf 子配置目录:/etc/httpd/conf.d/ 子配置文件:/etc/httpd/conf.d/*.conf 默认发布目录:/var/www/html/ 默认发布文件:index.html 默认端口:80 默认安全上下文:httpd_sys_content_t 程序开启默认用户:apache apache日志:/etc/http/logs/* <1>.修改默认端口: vim /etc/httpd/conf/httpd.conf 43 Listen 8080           ###修改默认端口为8080

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

<2>.修改默认发布文件: 默认发布文件就是访问apache时没有指定文件名称时默认访问的文件 这个文件可以指定多个,有访问先后顺序! vim /etc/httpd/conf/httpd.conf 164     DirectoryIndex index.html test.html                ##当index.html不存在时访问test.html

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

<3>.修改默认发布目录 vim /etc/httpd/conf/httpd.conf 120 DocumentRoot "/www/html" 121 <Directory "/www"> 122   Require all granted 123 </Directory>

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

semanage fcontext -a -t httpd_sys_content '/www(/.*)?'

              ###修改安全上下文 storecon -RvvF /www/

               ###**刚才修改的安全上下文

三.apache的虚拟主机


 vim /var/www/html/index.html

<h1>   恭喜你闯关成功!!!  </h1>

mkdir /var/www/virtual/linux.bb.com/html -p mkdir /var/www/virtual/java.bb.com/html -p

vim /var/www/virtual/linux.bb.com/html/linux.html

<h1> Welcome to linux.bb.com !</h1>


vim /var/www/virtual/java.bb.com/html/java.html

<h1> Welcome to java.bb.com !</h1>

vim /etc/httpd/conf/httpd.conf

164     DirectoryIndex   index.html linux.html java.html  ###修改默认发布文件

356 <VirtualHost _default_:80>
357   DocumentRoot  "/var/www/html"
358   CustomLog    "logs/www.bb.com.log" combined
359 </VirtualHost>
360 <VirtualHost *:80>
361   ServerName   linux.bb.com
362   DocumentRoot "/var/www/virtual/linux.bb.com/html"
363   CustomLog   "logs/linux.bb.com.log" combined
364 </VirtualHost>
365 <Directory "/var/www/virtual/linux.bb.com/html">
366   require all granted
367 </Directory>
368 <VirtualHost *:80>
369   ServerName   java.bb.com
370   DocumentRoot "/var/www/virtual/java.bb.com/html"
371   CustomLog   "logs/java.bb.com.log" combined
372 </VirtualHost>
373 <Directory "/var/www/virtual/java.bb.com/html">
374   require all granted
375 </Directory>

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

systemctl restart httpd

测试:
浏览器所在主机(测试主机)做好本地解析
vim /etc/hosts
172.25.254.117 网址1 网址2  网址3

测试结果:

linux系统之apache基本配置及语言支持及虚拟主机 访问控制


linux系统之apache基本配置及语言支持及虚拟主机 访问控制

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

四.apache内部的访问控制


<1>针对主机的访问控制 vim /etc/httpd/conf/httpd.conf <Directory "/var/www/html/">   order deny,allow             ###列表读取顺序,后读取的列表会覆盖限制内容的重复部分      Allow from 172.25.254.17     ###只允许此ip能访问   Deny from all </Directory>

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

<2>用户方式的访问控制    vim /etc/httpd/conf/httpd.conf <Directory "/var/www/html/">   order deny,allow                Allow from 172.25.254.17     ###只允许此ip能访问   Deny from all </Directory> <Directory "/var/www/html/admin">   AuthUserFile /etc/httpd/userpass   AuthName "please input your username and passwd!" ###对话框弹出提示   AuthType basic                ###最基本的认证方式   #Require user admin           ###允许admin用户   Require valid-user            ###允许有效的admin用户 </Directory>     htpasswd -cm /etc/httpd/userpass admin  ###首次建立用户加-cm     htpasswd -m /etc/httpd/userpass admin2  ###后续建立不加c     cat /etc/httpd/userpass                 ###查看建立的用户信息     mkdir /var/www/html/admin            vim /var/www/html/admin/index.html     systemctl restart httpd.service

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

测试结果:

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

测试结果:

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

 linux系统之apache基本配置及语言支持及虚拟主机 访问控制

五.apache默认支持的语言


<1>html:超文本标记语言 <2>php:超文本预处理器

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言

语法吸收了C语言JavaPerl的特点,利于学习,使用广泛,主要适用于Web开发领域。

PHP 独特的语法混合了CJavaPerl以及PHP自创的语法。

它可以比CGI或者Perl更快速地执行动态网页

用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML标准通用标记语言下的一个应用)文档中去执行,

执行效率比完全生成HTML标记的CGI要高许多;

PHP还可以执行编译后代码,编译可以达到加密优化代码运行,使代码运行更快。

[[email protected] conf.d]# vim /var/www/html/index.php <?php    phpinfo(); ?>

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

[[email protected] conf.d]# yum install php -y    ###安装php

vim /etc/httpd/conf/httpd.conf

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

systemctl restart httpd.service

测试: 172.25.254.117/index.php    ###可以看见phpinfo()的结果

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

<3>cgi:公共网关接口

CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。

 mkdir /var/www/html/cgi semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'    ###修改安全上下文 restorecon -RvvF /var/www/html/cgi/ vim /var/www/html/cgi/index.cgi #!/usr/bin/perl print "Content-type: text/html\n\n"; print `date`; chmod +x /var/www/html/cgi/index.cgi /var/www/html/cgi/index.cgi  ###执行脚本看是否运行正常

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

vim /etc/httpd/conf/httpd.conf

<Directory "/var/www/html/cgi">
   Options +ExecCGI
   AddHandler cgi-script .cgi
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html text.html index.php index.cgi
</IfModule>

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

linux系统之apache基本配置及语言支持及虚拟主机 访问控制


systemctl restart httpd.service

测试结果:

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

六.设定https虚拟主机并设定网页重写

^(/.*)$ ###客户在浏览器地址栏输入的所有字符
https://   ###强制客户加密访问
%{HTTP_HOST}  ###客户请求主机
$1             ###表示^(/.*)$的值
[redirect=301]   ###临时重写成https  302永久转换


linux系统之apache基本配置及语言支持及虚拟主机 访问控制


linux系统之apache基本配置及语言支持及虚拟主机 访问控制

linux系统之apache基本配置及语言支持及虚拟主机 访问控制

linux系统之apache基本配置及语言支持及虚拟主机 访问控制


linux系统之apache基本配置及语言支持及虚拟主机 访问控制

linux系统之apache基本配置及语言支持及虚拟主机 访问控制