lamp————apache

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中。同时Apache音译为阿帕奇

用来提供http://(超文本传输服务)


一.安装软件和说明

1.[root@server ~]# yum install httpd -y    ##安装httpd服务软件


2.root@server ~]# yum install httpd-manual.noarch -y ##安装httpd的说明


3.[root@server ~]# systemctl start httpd   ##开启服务
   [root@server ~]# systemctl enable  httpd.service   ##设定服务开机自启动


4.[root@server ~]# firewall-cmd  --permanent  --add-service=http   ##修改火墙策略 将http服务添加到里面
   [root@server ~]# firewall-cmd --reload    ##更新火墙策略 让新加入策略生效


5.排错(安装软件时出现的错误)

*)报错

[root@localhost yum.repos.d]# yum install httpd
Loaded plugins: langpacks

You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
the keys for packages you wish to install and install them.
You can do that by running the command:
    rpm --import public.gpg.key


*)解决方法

[root@localhost yum.repos.d]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release





二.测试







三.apache的基本信息

主配置目录 :  /etc/httpd/conf
主配置文件 :  /etc/httpd/conf/httpd.conf
子配置目录 :  /etc/httpd/conf.d/
子配置文件 :  /etc/httpd/conf.d/*.conf
默认发布目录:  /var/www/html
默认发布文件:  index.html
默认端口:        80
默认安全上下文:    httpd_sys_content_t
程序开启默认用户: apache
apache日志 :       /etc/httpd/logs/*


1.修改默认端口

*)[root@server ~]# vim /etc/httpd/conf/httpd.conf  ##通过修改主配置文件修改端口 apache默认监听端口80 修改后访问时加:端口


*)[root@server ~]# systemctl restart httpd.service  ##重启服务 使新配置生效

*)测试




2.修改默认发布文件

默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个 有顺序

*)[root@server ~]# vim /etc/httpd/conf/httpd.conf  ##通过修改主配置文件修改默认发布文件
163 <IfModule dir_module>
164     DirectoryIndex index.html  test.html             ##当index.html不存在时访问test.html


*)[root@server ~]# systemctl restart httpd.service   ##重启服务 使新配置生效


*)创建默认发布文件 并在文件中录入内容 在访问网站时可查看到文件中内容

     [root@server ~]# cd /var/www/html/

     [root@server html]# vim index.html

     [root@server html]# cat index.html
      LULUBAO index 默认

*)测试

*)按之前修改配置文件中当index.html不存在时访问test.html

   [root@server html]# vim test.html
   [root@server html]# cat test.html
   LULUBAO test 默认测试
   [root@server html]# rm -fr index.html
   [root@server html]# ls 
   test.html
*)测试



3.修改默认发布目录

*)[root@server ~]# mkdir /www/html/ -p    ##创建一个新的目录 准备将其设定为默认发布目录
     [root@server ~]# cd /www/html/
   

*)[root@server html]# vim index.html          ##在目录中创建一个文件 此文件内容就为当前目录为默认发布目录时访问当前服务器时出现的回文
     [root@server html]# cat index.html
     当/www/html/ 为默认发布目录时


*)[root@server ~]# vim /etc/httpd/conf/httpd.conf  ##通过修改主配置文件修改默认发布目录

121  DocumentRoot "/www/html"
122
123  <Directory "/www">  ##文件权限的修改
124      Require all granted  ##允许所有
125  </Directory>


*)[root@server ~]# systemctl restart httpd.service   ##重启服务 使新配置生效

*)测试






四.为apache配置多个虚拟机

虚拟主机允许从一个httpd服务器(一个ip)同时为多个网站提供服务。

在本节中,我们将了解基于名称的虚拟主机其中多个主机名都指向同一个IP地址,但是Web服务器根据用于到达站点的主机名提供具有不同内容的不同网站


1.为准备设置的虚拟主机建立默认发布目录

[root@server html]# mkdir /var/www/virtual/c.lulubao.com/html/ -p
[root@server html]# mkdir /var/www/virtual/linux.lulubao.com/html/ -p


2.在默认发布目录中添加发布文件 方便测试时查看结果正确与否


3.在子配置文件中添加不同虚拟主机的相关配置

* )[root@server virtual]# cd /etc/httpd/conf.d/            ##位置移动到子配置文件目录
    [root@server conf.d]# ls
    autoindex.conf  manual.conf  README  userdir.conf  welcome.conf

*)[root@server conf.d]# vim adefault.conf                   ##设置默认指向配置文件
   [root@server conf.d]# cat adefault.conf 
   <VirtualHost_default_:80>
        DocumentRoot "/var/www/html"                           ##站点默认发布目录
        CustomLog "logs/www.lulubao.com.log"  combined                    ##站点日志 combined表示四种日>志的集合
   </VirtualHost> 


*)[root@server conf.d]# vim linux.conf                      ##设置linux的配置文件
     [root@server conf.d]# cat linux.conf
     <VirtualHost *:80>
         ServerName linux.lulubao.com                                  ##指定站点名称
         DocumentRoot "/var/www/virtual/linux.lulubao.com/html"                 ####站点默认发布目录
         CustomLog  "logs/linux.lulubao.com.log"   combined
     </VirtualHost>

    <Directory "/var/www/virtual/linux.lulubao.com/html">    ##给目录权限
          Require all granted                                              ##允许所有
    </Directory>


*)[root@server conf.d]# vim c.conf
     [root@server conf.d]# cat c.conf
      <VirtualHost *:80>
          ServerName c.lulubao.com
          DocumentRoot "/var/www/virtual/c.lulubao.com/html"
          CustomLog  "logs/c.lulubao.com.log"   combined
      </VirtualHost>

      <Directory "/var/www/virtual/c.lulubao.com/html">
          Require all granted
      </Directory>



4.重启服务

*)[root@server conf.d]# systemctl restart httpd.service

*)排错

[root@server conf.d]# > /var/log/messages           ##清空日志

[root@server conf.d]# systemctl restart httpd.service             ##重其服务
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.

[root@server conf.d]# cat /var/log/messages       ##查看日志 根据日志内容一一排错
Nov 21 01:56:29 server systemd: Starting The Apache HTTP Server...
Nov 21 01:56:29 server httpd: httpd: Syntax error on line 353 of /etc/httpd/conf/httpd.conf: Syntax error on line 4 of /etc/httpd/conf.d/adefault.conf: Expected </VirtualHost_default_:80> but saw </VirtualHost>
Nov 21 01:56:29 server systemd: httpd.service: main process exited, code=exited, status=1/FAILURE
Nov 21 01:56:29 server systemd: Failed to start The Apache HTTP Server.
Nov 21 01:56:29 server systemd: Unit httpd.service entered failed state.

*)排错后 重启服务成功




5.测试

*)在测试主机中做好本地解析
     [root@really ~]# vim /etc/hosts


*)测试默认指向

       

*)测试c虚拟机

*)测试linux虚拟机






五.apache内部的访问控制


1.针对于主机的访问控制

*)创建一个新发布目录 并在发布文件中写入测试内容



*)在子配置文件的默认配置文件中 写入test目录的访问权限

     [root@server ~]# cd /etc/httpd/conf.d
     [root@server conf.d]# ls
     adefault.conf   c.conf      manual.conf  userdir.conf
     autoindex.conf  linux.conf  README       welcome.conf
     [root@server conf.d]# vim adefault.conf
     [root@server conf.d]# cat adefault.conf  
     <VirtualHost _default_:80>
        DocumentRoot "/var/www/html"
        CustomLog "logs/www.lulubao.com.log"  combined
     </VirtualHost>

     <Directory "/var/www/html/test">
        Order allow,deny                                ##列表读取顺序 后读取列表会覆盖先读取的重复部分                
        Allow from all                                     ##允许所有人访问
        Deny from 172.25.99.250                   ##不允许指定主机访问
     </Directory>


*)重启服务

     [root@server conf.d]# systemctl restart httpd.service


*)测试

172.25.99.250主机



其他主机








2.针对于用户的访问控制


*)新建用户登陆认证文件 并添加信息

     [root@server conf.d]# htpasswd -cm /etc/httpd/userpass admin1         ##新建用户认证文件/etc/httpd/userpass   并在其中添加用户admin1的信息
     New password:                      ##输入admin1的密码
     Re-type new password:          ##再次输入密码确认
     Adding password for user admin1                                                          ##信息提示“成功为admin1添加了密码”
     [root@server conf.d]# cat /etc/httpd/userpass
     admin1:$apr1$iIUqqDun$aRDUwiAKC.ScT7yuXL9Xo.                         ##文件成功添加admin1密码 (密码加密)


*)在已经存在的认证文件中添加信息

     [root@server conf.d]# htpasswd -m /etc/httpd/userpass admin2            ##在已有文件中添加信息 (去掉参数c 否则会覆盖原有信息)
     New password:
     Re-type new password:
     Adding password for user admin2
     [root@server conf.d]# cat /etc/httpd/userpass
     admin1:$apr1$iIUqqDun$aRDUwiAKC.ScT7yuXL9Xo.
     admin2:$apr1$JR/XpvZd$tuIBY5i6Hi8RYyn7b0sjZ0


*)新建发布目录 在目录中新建发布文件



*)在子配置文件的默认配置文件中 写入admin目录的访问权限

     [root@server conf.d]# vim adefault.conf
     <Directory "/var/www/html/admin">
        AuthUserFile /etc/httpd/userpass                                      ##指定用户认证文件
        AuthName "Please input your name and password"        ##输入提示语
        AuthType basic                                                                  ##认证方式为basic
        #Require user admin                                                        ##只允许addmin用户登陆
        Require valid-user                                                             ##允许所有有效用户登陆
     </Directory>

*)重启服务

     [root@server conf.d]# systemctl restart httpd.service


*)测试










六.apache支持的语言


1.html

超文本标记语言,标准通用标记语言下的一个应用。
超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。



*)编辑html语言的脚步




*)测试






2.php


*)在默认发布目录下新建php语言的脚本



*)安装php

[root@server home]# yum install php -y


*)测试





3.cgi


*)创建一个cgi目录 并新建一个cgi语言编写的脚本


 



*)给脚步文件加执行权限并执行测试一下脚本 确保脚本正常运行


*)



*)重启服务

     [root@server conf.d]# systemctl restart httpd.service


*)测试






七.https

是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。


1.安装开启https需要端口的软件(443端口)

[root@server www]# yum install mod_ssl.x86_64 -y


2.安装生成安全证书的软件
[root@server www]# yum install crypto-utils.x86_64 -y



3.新建证书 公钥 私钥

[root@server www]#genkey www.lulubao.com


4.编辑配置文件 使新生成的证书 密钥投入使用

[root@server www]# vim /etc/httpd/conf.d/ssl.conf


*)重启服务

     [root@server conf.d]# systemctl restart httpd.service


*)测试



 


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

*)[root@server www]# vim /etc/httpd/conf.d/adefault.conf

^(/.*)$                         ##客户在浏览器地址栏中输入的内容
https://                       ##强制客户加密访问
{HTTP_HOST}$1    ##客户请求访问的主机
$1                              ## “$1” 表示^(/.*)$ 的值
[redirect=301]         ## 访问规则 (临时转换) 302为永久转换


*)创建发布目录和发表文件



*)重启服务

     [root@server conf.d]# systemctl restart httpd.service


*)测试




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值