Apeche

apache是一个开源的网站,是目前市场上主流应用的一个网页,它采用http协议(超文本传输协议),它的特点是:
1)开源
2)支持多种编程语言
3)性能稳定

一般企业而言,多用的是编译进行安装,它拥有以下好处:
1)具有较大的自由度,功能可定制
如果单纯使用yum安装,那么就只能使用默认安装路径和安装配置来进行使用,但是编译安装可以指定安装路径或者自行配置功能

2)可及时获得最新的软件版本
解决掉依赖关系安装包之后,就可以实时进行版本更新

3)普遍适用于大多数Linux版本,便于移植使用
linux版本分为很多,比如红帽,centos,但是进行编译安装之后几乎所有linux版本都可以适配

apache服务器的安装(编译安装)
1)检测系统是否有安装apache服务器
由于是之前源码安装的apache,如果不进行删除就再度安装会导致软件冲突,所以需要先查找和卸载。

rpm -e httpd --nodeps nodeps为忽略软件包依赖性
2)拉包
可以从官网http://httpd.apache.org/download.cgi 去直接下载一个最新的apache软件包
在这里插入图片描述

目前最新版本为2.4.46,拥有gz格式和bz2格式可以下载,下载完成后,需要yum下载软件lrzsz来将该软件拉进linux里面
yum -y install lrzsz
3)解压安装包
拉取到linux的安装包需要进行解压,完成后将该安装包给删除,这边建议存放在/usr/src下,也可以存放于/opt,但是opt多用于存放软件多余垃圾,不好做系统定期垃圾清理维护。
tar -xf httpd-2.4.46.tar.gz
rm -rf httpd-2.4.46.tar.gz
4)源码编译安装
安装完成后,就要进入页面里进行源码编译安装了,进入解压出来的安装包的bin目录下去寻找安装包执行文件。
在这里插入图片描述

httpd中有个执行文件名叫configure,可以进行编译安装
–prefix:指定httpd服务程序的安装路径
–enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。
–enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
–enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。
–enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力。

在编译之前,需要下载相应的依赖安装包:
rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm
rpm -ivh apr-devel-1.4.8-3.el7_4.1.x86_64.rpm
rpm -ivh cyrus-sasl-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm
rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm
rpm -ivh libdb-devel-5.3.21-24.el7.x86_64.rpm
rpm -ivh openldap-devel-2.4.44-13.el7.x86_64.rpm
rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm
rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm
rpm -ivh pcre-8.32-17.el7.x86_64.rpm
rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm

这一步需要先临时进行挂载光盘,而后进入挂载点中的Packet文件中将上述安装包给安装好

mount /dev/sr0 /media/cdrom/
cd /media/cdrom/Packages/

依赖包全部安装完成后,就可以进入apache主安装包中进行编译:
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
–prefix 为指定安装文件地点,这边为安装在usr/local中,待安装完成后,输入make && make install进行二进制编译。
5)加载调优项
加载完成后,理论上是可以使用的,但是可以检测到无法使用systemctl的命令来进行软件的控制操作,进入相应的文件夹,可以看到apache的主文件系统,其中每一个都对应着不同的功能

bin:存放httpd服务的各种执行程序文件,包括主程序httpd、 服务控制工具apachectl等
conf:存放httpd服务的各种配置文件,包括主配置文件
httpd.conf、增强配置子目录extra等
htdocs:存放网页文档,包括默认首页文件index.html等
logs:存放httpd服务的日志文件
modules:存放httpd服务的各种模块文件
cgi-bin:存放各种CGI程序文件。

我们需要实现的内容,是为了方便之后的操作,从而要让httpd可以使用systemctl的命令
两种方法,第一种是centos6的惯用方法
1)进入配置文件修改配置
在这里插入图片描述

将该行注释去掉
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd 将该范本移动到配 置文件中的httpd运行文件
vim /etc/init.d/httpd 开始编辑,主要为增加两行内容:
在这里插入图片描述

chkconfig --add httpd
chkconfig --list httpd 此两行为添加该软件进列表
systemctl start httpd 开启httpd

第二种是centos7的主流方法,相比起centios6要麻烦一些
vim /lib/systemd/system/httpd.service 直接编写以下内容
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RetartSec=42s
[Install]
WantedBy=graphical.target
systemctl daemon-reload 重新加载数据
systemctl start httpd 开启程序
chkconfig --add httpd 永久开启
注意:这边ExecStart下的路径必须和你httpd的路径相等,不然会显示找不到此文件
netstat -lnt命令可以查看httpd是否正常已启动
在这里插入图片描述

虚拟主机构建
在同一个服务器中运行太多web站点,每一个站点实际并不肚子占用整个服务器,通过虚拟主机服务可以充分利用服务器的硬件资源从而大大降低网站构建时间和运行成本
正常情况下,可以使用dns来进行配置,我们也可以使用别的方式,比如直接在host文件来进行修改
1)直接修改
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
输入以下内容:
在这里插入图片描述

vim /etc/hosts
在这里插入图片描述

2)进入windows的配置文件添加相应域名
在这里插入图片描述

需要将此行的注释给去掉,意为加入了虚拟主机
C:\Windows\System32\drivers\etc
在这里插入图片描述

3)关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
4)验证
在这里插入图片描述

注意事项

ducomentroot和coustmo项路径必须相同

更改windows的hosts文件的时候需要使用到管理员系统:

系统自带的/usr/local/httpd/htdocs下的index必须删除,输入网址的时候需要如果不是直接布置,就需要http://www.cy.com/下加上存储的文件名
备注

httpd支持的虚拟主机类型

1)基于域名的虚拟主机
目前,基于域名的虚拟主机多被人使用

2)基于IP地址的虚拟主机

3)基于端口的虚拟主机

如果说不使用systemctl的话,后续的操作命令为如下:

./apachectl start 开启
./apachectl stop 停止
./httpd -k start 开启
./httpd -k stop 停止
systemctl start httpd 开启
systemctl stop httpd 停止

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐