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: 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相关推荐
- Linux学习笔记——Apache服务器配置文件简介
Apache服务器配置文件简介 Apache的配置文件是包含若干指令的纯文本文件,其文件名为httpd.conf.在Apache启动时,会自动读取配置文件中的内容,配置Apache服务器的运行.配置文 ...
- (零)我为什么要写Linux学习笔记?
我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...
- Linux学习笔记8
Linux学习笔记8 Linux学习笔记8 DHCP分配IP地址 打印或控制内核环缓冲区 查看某个分区格式化时指定的块大小 获取命令的安装包 文本编辑工具vim 上一条命令的最后一个参数 gzip压缩 ...
- LINUX学习笔记:31个常用LINUX命令和相关解释
LINUX学习笔记三: 最近在带新同事,是一个刚入行的萌新,对于linux不是很熟悉,问我怎么来学习. 所以今天接着之前的部分,继续分享一些linux学习资料.有需要的点点保存,没有跳过呗.PS:内容 ...
- Linux学习笔记-随即更新-慢速学习
Linux学习笔记 Linux系统简介 UNIX发展历史和发行版本 开源软件简介 支撑互联网的开源技术 Linux应用领域 Linux学习方法 Linux系统安装 给初学者的建议 学习linux的注意 ...
- 好记性不如烂笔头-linux学习笔记4apache相关知识
好记性不如烂笔头-linux学习笔记4apache相关知识 apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 ...
- Linux 学习笔记(六):Linux
预期学习目标 CentOS的安装 相关命令的学习 脚本的编写 定时任务的编写 vim的学习 系统设置 项目部署 项目权限设置 确认 SELinux 的状态 [root@centos7 ~]$ /usr ...
- Linux学习笔记---命令篇
Linux学习笔记-命令篇 本笔记是根据尚硅谷的Linux视频,经过自己的总结得出来的笔记,分为两个大章节,一-四章讲的是Linux的文件目录结构.vim编辑器.网络配置和系统管理.进程和服务.第二个 ...
- Linux学习笔记(自用)
Linux学习笔记(自用) 该笔记由尚硅谷的"3天上手LInux"视频整理而成,若有侵权,请联系作者删除 文章目录 Linux学习笔记(自用) 1. 概述 2. 下载 3.文件与目 ...
最新文章
- Web前端工程师的一些常见误区
- 没附上语音包资源的python文字转语音
- NPM 安装 TypeScript 和 npm 的 Invalid package.json 错误以及运行第一个typescript程序
- python中的作用域以及内置函数globals()-全局变量、locals()-局部变量
- Tensorflow学习笔记——word2vec
- KDD 18论文解读 | 斯坦福大学提出全新网络嵌入方法 — GraphWave
- PHP-代码审计-命令执行
- Microsoft Azure里创建Enterprise Applications
- Period II(FZU-1901)
- mac安装和卸载mysql_mysql的安装与卸载
- 由〈非你莫属〉想到与客户的沟通
- 腾讯被迫下架《怪物猎人世界》;传谷歌将支持 Win10 ;苹果或将复活 MagSafe | 极客头条...
- hdu1048(c++)
- java cucumber_Cucumber框架入门篇
- lcm模块 oracle,lcm模组有哪些配件组成
- 初学者如何选择网络仿真软件
- python content函数_python函数内容
- 中国手机市场调查报告
- 基于STM32f103c8t6的红外接收发送
- 电脑计算机硬盘怎么加,电脑加装一个硬盘后怎么设置
热门文章
- 2019我的Java面试跳槽经历
- 替代 XShell 的两款优秀工具
- Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介、案例应用(python中的编码格式及常见编码问题详解)之详细攻略
- matlab 图像分割库,图像分割Matlab代码
- 微信小程序 报错errcode: 40029, errmsg: “invalid code
- MongoDB学习笔记(三)
- Mac 下用Homebrew安装Go
- 浅谈AI模型的可解释性、安全性与正义性(中)
- 最近发现的一个学习宝库
- 揭秘一个不起眼的微商新品牌,如何快速赢得客户信任?