一、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: eth0sources: services: dhcpv6-client http sshports: 8080/tcp                                                   ##8080端口已加载masquerade: noforward-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.comDocumentRoot /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
<?phpphpinfo();
?>
[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.conf100 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.comDocumentRoot /var/www/virtual/login/htmlCustomLog logs/login.log combinedSSLEngine onSSLCertificateFile /etc/pki/tls/certs/www.westos.com.crtSSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
</VirtualHost>
<VirtualHost *:80>ServerName login.westos.comRewriteEngine onRewriteRule ^(/.*)$ 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

Linux学习笔记—Apache相关推荐

  1. Linux学习笔记——Apache服务器配置文件简介

    Apache服务器配置文件简介 Apache的配置文件是包含若干指令的纯文本文件,其文件名为httpd.conf.在Apache启动时,会自动读取配置文件中的内容,配置Apache服务器的运行.配置文 ...

  2. (零)我为什么要写Linux学习笔记?

    我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...

  3. Linux学习笔记8

    Linux学习笔记8 Linux学习笔记8 DHCP分配IP地址 打印或控制内核环缓冲区 查看某个分区格式化时指定的块大小 获取命令的安装包 文本编辑工具vim 上一条命令的最后一个参数 gzip压缩 ...

  4. LINUX学习笔记:31个常用LINUX命令和相关解释

    LINUX学习笔记三: 最近在带新同事,是一个刚入行的萌新,对于linux不是很熟悉,问我怎么来学习. 所以今天接着之前的部分,继续分享一些linux学习资料.有需要的点点保存,没有跳过呗.PS:内容 ...

  5. Linux学习笔记-随即更新-慢速学习

    Linux学习笔记 Linux系统简介 UNIX发展历史和发行版本 开源软件简介 支撑互联网的开源技术 Linux应用领域 Linux学习方法 Linux系统安装 给初学者的建议 学习linux的注意 ...

  6. 好记性不如烂笔头-linux学习笔记4apache相关知识

    好记性不如烂笔头-linux学习笔记4apache相关知识 apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 ...

  7. Linux 学习笔记(六):Linux

    预期学习目标 CentOS的安装 相关命令的学习 脚本的编写 定时任务的编写 vim的学习 系统设置 项目部署 项目权限设置 确认 SELinux 的状态 [root@centos7 ~]$ /usr ...

  8. Linux学习笔记---命令篇

    Linux学习笔记-命令篇 本笔记是根据尚硅谷的Linux视频,经过自己的总结得出来的笔记,分为两个大章节,一-四章讲的是Linux的文件目录结构.vim编辑器.网络配置和系统管理.进程和服务.第二个 ...

  9. Linux学习笔记(自用)

    Linux学习笔记(自用) 该笔记由尚硅谷的"3天上手LInux"视频整理而成,若有侵权,请联系作者删除 文章目录 Linux学习笔记(自用) 1. 概述 2. 下载 3.文件与目 ...

最新文章

  1. Web前端工程师的一些常见误区
  2. 没附上语音包资源的python文字转语音
  3. NPM 安装 TypeScript 和 npm 的 Invalid package.json 错误以及运行第一个typescript程序
  4. python中的作用域以及内置函数globals()-全局变量、locals()-局部变量
  5. Tensorflow学习笔记——word2vec
  6. KDD 18论文解读 | 斯坦福大学提出全新网络嵌入方法 — GraphWave
  7. PHP-代码审计-命令执行
  8. Microsoft Azure里创建Enterprise Applications
  9. Period II(FZU-1901)
  10. mac安装和卸载mysql_mysql的安装与卸载
  11. 由〈非你莫属〉想到与客户的沟通
  12. 腾讯被迫下架《怪物猎人世界》;传谷歌将支持 Win10 ;苹果或将复活 MagSafe | 极客头条...
  13. hdu1048(c++)
  14. java cucumber_Cucumber框架入门篇
  15. lcm模块 oracle,lcm模组有哪些配件组成
  16. 初学者如何选择网络仿真软件
  17. python content函数_python函数内容
  18. 中国手机市场调查报告
  19. 基于STM32f103c8t6的红外接收发送
  20. 电脑计算机硬盘怎么加,电脑加装一个硬盘后怎么设置

热门文章

  1. 2019我的Java面试跳槽经历
  2. 替代 XShell 的两款优秀工具
  3. Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介、案例应用(python中的编码格式及常见编码问题详解)之详细攻略
  4. matlab 图像分割库,图像分割Matlab代码
  5. 微信小程序 报错errcode: 40029, errmsg: “invalid code
  6. MongoDB学习笔记(三)
  7. Mac 下用Homebrew安装Go
  8. 浅谈AI模型的可解释性、安全性与正义性(中)
  9. 最近发现的一个学习宝库
  10. 揭秘一个不起眼的微商新品牌,如何快速赢得客户信任?