Linux学习笔记—Apache

一、apache简介

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
企业中常用的web服务,用来提供http://(超文本传输协议)

二、apache的安装部署

yum install httpd -y                           ##安装apache软件
yum install httpd-manual -y                    ##安装apache手册
systemctl start httpd                          ##开启服务
systemctl enable httpd
firewall-cmd --list-all                        ##列出火墙信息,查看火墙允许的服务
firewall-cmd --permanent --add-service=http    ##火墙永久允许http服务
firewall-cmd --reload                          ##火墙重新加载策勒
/var/www/html                                  ##apache的/目录,默认发布目录
/var/www/html/index                            ##apache的默认发布文件
vim /var/www/html/index                        ##编辑默认发布文件
<h1> hello westos </h1>

测试:

http://172.25.254.116                        ##访问apache发布文件
http://172.25.254.116/manual                 ##访问apache手册

示图:apache发布文件
这里写图片描述
示图:apache手册
这里写图片描述

三、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                           ##程序开启默认用户
/etc/httpd/logs/*                ##apache日志

(1)修改默认端口:

vim /etc/httpd/conf/httpd.conf
43 Listen 8080
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

(2)修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序

vim /etc/httpd/conf/httpd.conf
164       DirectoryIndex index.html test.html    ##当index.html不存在时,访问test.html

(3)修改默认发布目录:

120 DocumentRoot "/www/html"
121<Directory "/www">
122        Require all granted
123<Directory>

实例1:更改apache默认发布文件为test.html

[root@apache html]# vim /etc/httpd/conf/httpd.conf
[root@apache html]# systemctl restart httpd.service

示图:更改后的默认发布文件test.html
这里写图片描述
测试:
这里写图片描述

实例2:更改apache默认发布目录为/westos/html

[root@apache html]# mkdir -p /westos/html           ##创建目录
[root@apache html]# vim /westos/html/index.html     ##随意编辑内容
[root@apache html]# vim /etc/httpd/conf/httpd.conf  ##更改配置文件中的默认发布目录
119 #DocumentRoot "/var/www/html"          ##注释原默认发布目录
120 DocumentRoot "/westos/html"            ##添加新默认发布目录
121 <Directory "/westos/html">             ##目录/westos/html授权
122         Require all granted            ##任何人都可访问此目录
123 </Directory>
[root@apache html]# systemctl restart httpd.service  ##重启服务
[root@localhost html]# semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'                            ##更改安全上下文
[root@localhost html]# restorecon -RvvF /westos/     ##刷新

示图:
<1>配置文件的更改
这里写图片描述
<2>index.html测试页
这里写图片描述
<3>更改安全上下文
这里写图片描述
测试:
这里写图片描述
实例3:修改默认端口

[root@apache html]# getenforce                            ##查看内核状态
Disabled                                                  ##内核状态必须为disabled
[root@apache html]# cd /var/log
[root@apache log]# ss -antlupe | grep httpd               ##查看端口号80
tcp    LISTEN     0      128                   :::80                   :::*      users:(("httpd",4192,4),("httpd",4191,4),("httpd",4190,4),("httpd",4189,4),("httpd",4188,4),("httpd",4187,4),("httpd",4186,4)) ino:160093 sk:ffff88000c622800 <->
[root@apache log]# vim /etc/httpd/conf/httpd.conf         ##更改端口号8080
42 Listen 8080
[root@apache log]# systemctl restart httpd.service        ##重启服务
[root@apache log]# ss -antlupe | grep httpd               ##查看端口号8080
tcp    LISTEN     0      128                   :::8080                 :::*      users:(("httpd",4234,4),("httpd",4233,4),("httpd",4232,4),("httpd",4231,4),("httpd",4230,4),("httpd",4229,4)) ino:161614 sk:ffff880001ff2000 <->
[root@apache log]# firewall-cmd --permanent --add-port=8080 ##
bad port (most likely missing protocol), correct syntax is portid[-portid]/protocol
[root@apache log]# firewall-cmd --permanent --add-port=8080/tcp    ##防火墙允许8080端口,默认80端口
success
[root@apache log]# firewall-cmd --reload                           ##重新加载火墙
success
[root@apache log]# systemctl restart httpd.service
[root@apache log]#  firewall-cmd --list-all                        
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client http ssh
  ports: 8080/tcp                                                   ##8080端口已加载
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

测试:

http://172.25.254.116:8080/index.html

示图:测试结果
这里写图片描述

四、apache内部主机的访问控制

1、针对主机的访问控制

vim /etc/httpd/conf/httpd.conf
5<Directory "/var/www/html">
6           Order deny,allow              ##列表读取顺序,后读取的列表会覆盖先读取的内容
7           Allow from 172.25.254.44      ##allow覆盖deny
8           Deny from all
9</Directory>

2、用户方式的访问控制
(1)创建用户认证信息

htpasswd -cm /etc/httpd/webuser admin                     ##创建用户认证admin,首次创建用户,用参数c(create)
htpasswd -m /etc/httpd/webuser admin1                     ##其余用户建立时,只需要参数m,不加c,若加c,则覆盖admin认证密码

示图:用户认证信息
这里写图片描述
(2)主配置文件

vim /etc/httpd/conf/httpd.conf
121 <Directory "/var/www/html">                           ##授权
122         #Require all granted                          ##允许所有用户访问
123         AuthUserfile /etc/httpd/webuser               ##用户认证文件来源         
124         AuthName "Please input username and passwd"   ##请输入用户名、密码
125         Authtype basic                                ##认证类型:基本类型
126         #Require user admin                           ##只允许admin用户访问
127         Require valid-user                            ##允许认证用户通过帐号密码访问
128 </Directory> 

测试:
这里写图片描述

五、建立虚拟主机

1、在测试主机中做好本地解析

vim /etc/hosts                 ##dns域名解析(测试主机)
172.25.254.116 www.westos.com news.westos.com music.westos.com
[root@apache ~]# ping www.westos.com
PING www.westos.com (172.25.254.116) 56(84) bytes of data.
64 bytes from www.westos.com (172.25.254.116): icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from www.westos.com (172.25.254.116): icmp_seq=2 ttl=64 time=0.045 ms
64 bytes from www.westos.com (172.25.254.116): icmp_seq=3 ttl=64 time=0.045 ms

2、为虚拟主机建立发布目录及测试页

[root@apache conf.d]# mkdir /var/www/virtual/news.westos.com/html -p                     ##建立发布目录
[root@apache conf.d]# echo "<h1>news.westos.com</h1>" > /var/www/virtual/news.westos.com/html/index.html     ##建立测试页,内容news.westos.com
[root@apache conf.d]# mkdir /var/www/virtual/music.westos.com/html -p                    ##建立发布目录
[root@apache conf.d]# echo "<h1>music.westos.com</h1>" >  /var/www/virtual/music.westos.com/html/index.html    ##建立测试页,内容music.westos.com

3、配置

[root@apache ~]# cd /etc/httpd/conf.d
[root@apache conf.d]# vim a_default.conf              ##指定域名的访问都访问a_default

<VirtualHost _default_:80>                           ##虚拟主机开启的端口
          DocumentRoot /var/www/html                 ##虚拟主机默认发布目录        
          CustomLog logs/default.log combined        ##虚拟主机日志,相对路径,绝对路径/etc/httpd/logs/news.log,combined:4种混合类型日志
</VirtualHost>
[root@apache conf.d]# vim news.conf                  ##指定域名news.westos.com的访问到指定默认发布目录中
<VirtualHost *:80>
           ServerName news.westos.com                ##域名
           DocumentRoot /var/www/virtual/news.westos.com/html  ##指定默认发布目录
           CustomLog logs/news.log combined          ##虚拟主机日志
</VirtualHost>
<Directory "/var/www/virtual/news.westos.com/html">  ##给默认发布目录授权访问
           Require all granted                       ##所有用户允许访问
</Directory>
[root@apache conf.d]# vim music.conf                 ##指定域名music.westos.com的访问到指定默认发布目录中
<VirtualHost *:80>
           ServerName music.westos.com
           DocumentRoot /var/www/virtual/music.westos.com/html  ##访问文件目录
           CustomLog logs/news.log combined           ##日志                      
</VirtualHost>
<Directory "/var/www/virtual/music.westos.com/html">  ##授权
           Require all granted                        ##所有用户允许访问
</Directory>
[root@apache conf.d]# systemctl restart httpd

注意:music.conf与music.conf文件类似,可直接copy,修改关键字即可,如下.

[root@localhost conf.d]# cp news.conf music.conf
:%s/news/music/g        ##将news全文替换为music

测试:
示图:www.westos.com
这里写图片描述
示图:news.westos.com
这里写图片描述
示图:music.westos.com
这里写图片描述

六、语言

支持三种语言:php,html,cgi
1、php

[root@apache html]# yum install php -y
[root@apache html]# vim /var/www/html/index.php
<?php
         phpinfo();
?>
[root@apache conf.d]# systemctl restart httpd

示图:文件内容
这里写图片描述
测试:

172.25.254.116/index.php

这里写图片描述
2、cgi
<1>安装apache手册

yum install httpd-manual -y                    ##安装apache手册

示图:
1>manual安装手册
这里写图片描述
2>CGI脚本
这里写图片描述
这里写图片描述
<2>创建cgi脚本(脚本:添加可执行权限)

[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir cgi
[root@localhost html]# cd cgi
[root@localhost cgi]# vim index.cgi
[root@localhost cgi]# chmod +x index.cgi   ##脚本,添加可执行权限

示图:cgi文件内容
这里写图片描述
示图:cgi脚本运行
这里写图片描述
<3>转译文件

[root@apache cgi]# vim /etc/httpd/conf.d/a_default.conf   ##虚拟主机

106 <Directory /var/www/html/cgi>
107     Options +ExecCGI
108     AddHandler cgi-script .cgi
109 </Directory> 

[root@apache cgi]# systemctl restart httpd

示图:/etc/httpd/conf.d/a_default.conf文件内容(转译文件)
这里写图片描述
<4>更改安全上下文

[root@localhost cgi]# getenforce    ##Enforcing需修改安全上下文,Disabled不需修改
Enforcing
[root@localhost cgi]# ls /var/www/html/cgi/ -Z -d    ##查看安全上下文

这里写图片描述

[root@localhost cgi]# semanage fcontext -l | grep httpd

这里写图片描述

[root@localhost cgi]# semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
[root@localhost cgi]# restorecon -RvvF /var/www/html/cgi/

测试:

http://172.25.254.116/cgi/index.cgi

示图:刷新时间更新
这里写图片描述

七、 配置httpd证书验证及网页重写##

**实验环境:**www.westos.com页面搭建成功
1.配置httpd证书
<1>安装

[root@localhost html]# cd /etc/httpd/conf.d
[root@localhost conf.d]# yum install mod_ssl.x86_64 -y
[root@apache conf.d]# yum install crypto-utils-2.4.1-42.el7.x86_64       

这里写图片描述
这里写图片描述
<2>配置

[root@apache conf.d]# genkey www.westos.com

示图:操作过程
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

/etc/pki/tls/certs/www.westos.com.crt      ##生成的安全证书
/etc/pki/tls/private/www.westos.com.key    ##生成的钥匙

<3>配置文件

[root@apache conf.d]# ls               ##配置文件ssl.conf
a_default.conf  music.conf  README      userdir.conf
autoindex.conf  news.conf   ssl.conf    welcome.conf
manual.conf     php.conf    tmprequest
[root@apache conf.d]# vim ssl.conf

100 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
107 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key

[root@apache conf.d]# systemctl restart httpd

这里写图片描述
<4>查看安全证书

访问:https://172.25.254.116/  或者   https://www.westos.com/

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
2.网页重写
<1>配置文件
注意:
<1>http默认端口80,https默认端口443
<2> 301临时转换 302永久转换

[root@localhost conf.d]# vim login.conf
<VirtualHost *:443>
        ServerName login.westos.com
        DocumentRoot /var/www/virtual/login/html
        CustomLog logs/login.log combined
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
        SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
</VirtualHost>
<VirtualHost *:80>
        ServerName login.westos.com
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>

这里写图片描述
<2>创建目录及测试页

[root@localhost conf.d]# mkdir -p /var/www/virtual/login/html
[root@localhost conf.d]# cd /var/www/virtual/login/html
[root@localhost html]# vim index.html

这里写图片描述
<3>重启服务

[root@localhost conf.d]# systemctl restart httpd

<4>测试机(虚拟机)地址解析

[root@localhost ~]# vim /etc/hosts

这里写图片描述
测试:

访问 http://login.westos.com 或者 login.westos.com 自动跳转 https://login.westos.com

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值