您的位置:首页 > 运维架构 > Apache

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

2017-11-21 21:57 1066 查看

一.apache的安装

yum install httpd -y

systemctl start httpd

systemctl stop firewalld

systemctl enable httpd

systemctl disable firewalld



二.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



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



<3>.修改默认发布目录
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 '/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>



systemctl restart httpd

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







四.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>



<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







测试结果:



测试结果:





 


五.apache默认支持的语言

<1>html:超文本标记语言
<2>php:超文本预处理器
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言
语法吸收了C语言JavaPerl的特点,利于学习,使用广泛,主要适用于Web开发领域。
PHP 独特的语法混合了CJavaPerl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML标准通用标记语言下的一个应用)文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密优化代码运行,使代码运行更快。

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



[root@apache conf.d]# yum install php -y    ###安装php
vim /etc/httpd/conf/httpd.conf



systemctl restart httpd.service

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



<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  ###执行脚本看是否运行正常



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>





systemctl restart httpd.service

测试结果:



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

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











内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: