一、概述
Web服务器的中间件
用于构建静态web站点
默认版本2.4.6(可根据所在的网络环境下载安装与之兼容的版本)
二、应用场景
Web服务器、后台解析、视频站点、博客等等
三、安装流程
配置静态IP地址
关闭防火墙和SELinux
安装软件
四、安装方式
rpm安装:rpm -ivh httpd...rpm (安装过程中需解决依赖关系)
yum安装:yum -y instart httpd
主配置文件:/etc/httpd/conf/httpd.conf
Listen 80(定义apache的监听端口)
User apache (定义运行用户和运行组
Group apache 运行用户:程序需运行时哪个用户打开的程序文件)
ServerName wwwexample.com:80
(定义web服务使用域名访问)
Require all denied;Require all granted
(定义访问权限 denied:不能访问
granted:可以访问)
DocumentRoot“/var/www/heml”
(定义文档根目录)
Directorylndex index.html
(定义默认访问主页)
2.源码安装
先解压软件包:tar -xzf 软件包名
再配置:./configure --prefix=/usr/local/apache
(此过程中可能会报错,需解决依赖关系)
依赖关系有:yum -y install apr apr-util apr-util-devel gcc gcc-c++ pcre-devel zlib-devel
五、源码安装后的配置方法
优化命令路径
将安装目录的启动命令链接到/usr/local/bin
ln -s /usr/local/apache/bin/apachectl /usr/local/bin/apachectl
配置文件:/usr/local/apache/conf/httpd.conf
ServerRoot”/usr/local/apache”
(定义apache安装路径)
Listen 80 (定义apache监听端口)
LoadModule(加载apache运行时的必要模块文件)
User deamon(定义运行用户和运行组
Group daemon 运行用户:程序需运行时哪个用户打开的程序文件)
ServerName www.example.com:80
(定义web服务使用域名访问)
Require all denied ;Require all granted
(定义访问权限;denied:不能访问
granted:可以访问)
DocumentRoot”/usr/local/apache/htdocs”
(定义文档根目录)
Directorylndex index.html
(定义默认访问主页)
ErrorLog”logs/error_log” (定义:错误日志路径;
Loglevel warn 错误日志级别;
LogFornat 日志格式;
GustomLog 访问日志)
六、启动测试
先测试连通性(启动服务,网页打开看是否可进入)
使用apachectl命令进行管理
七、虚拟主机头
修改方式
修改主配置文件:vim /usr/local/apache/conf/httpd.conf
声明监听不同的IP地址的80端口
开启使用虚拟主机文件的选项
# Virtual hosts
lnclube conf/extya/httpd-vhosts.conf
主配置文件包含虚拟主机配置文件:
vim /usr/local/apache/conf/extra/httpd-vhosts.conf
实现方法
基于不同的IP地址:
例:
#IP及端口 ServerAdmin [email protected]
DocumentRoot "/usr/local/apache/htdocs/web1" #打开路径
# ServerName dummy-host.example.com #域名/别名
# ServerAlias www.dummy-host.example.com
ErrorLog "logs/20.1-error_log" #错误日志路径
CustomLog "logs/20.1-access_log" common #访问日志
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache/htdocs/web2"
# ServerName dummy-host2.example.com
ErrorLog "logs/20.2-error_log"
CustomLog "logs/20.2-access_log" common
[root@localhost conf]# apachectl start #启动服务
基于不同端口:
例:
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache/htdocs/web1"
# ServerName dummy-host.example.com
# ServerAlias www.dummy-host.example.com
ErrorLog "logs/8081-error_log"
CustomLog "logs/8081-access_log" common
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache/htdocs/web2"
# ServerName dummy-host2.example.com
ErrorLog "logs/8082-error_log"
CustomLog "logs/8082-access_log" common
[root@localhost apache]# vim conf/httpd.conf
Listen 192.168.20.1:8081 #更改主配置文件端口
Listen 192.168.20.1:8082
[root@localhost apache]# apachectl restart #重启服务
基于不同域名:
例:
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache/htdocs/web1"
ServerName www.example.com
# ServerAlias www.dummy-host.example.com
ErrorLog "logs/exam1-error_log"
CustomLog "logs/exam1-access_log" common
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache/htdocs/web2"
ServerName www.example2.com
ErrorLog "logs/exam2-error_log"
CustomLog "logs/exam2-access_log" common
[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf
Listen 192.168.20.1:80
[root@localhost ~]# yum -y install bind #下载dns解析服务,下载完根据上面配置进行 正反解析配置[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.20.1 #指定解析IP地址
[root@localhost ~]# ifdown ens33 && ifup ens33
[root@localhost apache]# systemctl start named[root@localhost apache]# apachectl restart