1.apache
1.apache概述
-
Apache起源
*源于A Patchy Server,著名的开源Web服务软件
*1995年时,发布Apache服务程序的1.0版本
*由Apache软件基金会(ASF)负责维护
*最新的名称为“Apache HTTP Server”
*官方站点:http://httpd.apache.org/ -
主要特点
*开放源代码,跨平台应用
*支持多种网页编程语言
*模块化设计,运行稳定,良好的安全性 -
软件版本
1.X
*目前最高版本是1.3,运行稳定
*向下兼容性较好,但缺乏一些较新的功能
2.X
*目前最高版本是2.4
*具有更多的功能特性
*与1.X相比,配置管理风格存在较大差异 -
编译安装httpd服务器
4.1. 编译安装的优点
*具有较大的自由度,功能可定制
*可及时获得最新的软件版本
*普遍适用于大多数Linux版本,便于移植使用
4.2. 获得Apache服务器的源码包
参考地址:http://httpd.apache.org/download.cgi -
Apache的主要特点
*开放源代码
*跨平台应用
*支持各种Web编程语言:Perl,PHP,Python,Java
*模块化设计
*运行非常稳定
*良好的安全性 -
Apache的依赖软件包
1.apr:为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。早期apache为了能够处理各种不同的系统平台的时候调用不同的处理函数,现在apache将通用函数独立出来发展成apr项目
2.apr-util:完整的apr开发包包含三个:apr,apr-util,apr-iconv。都是为了完成一个功能就是为上层应用提供运行库,只不过和apr提供的数据结果和接口库不一样而已。
3.pcre-devel:为了支持正则表达式
4.expat-devel:用来解析XML文档的开发库,主要作用是搜索它的的文档,识别文件指定的位置,调用该部分相应的处理程序,将文件输送到解析器,将文件分割成多个片断,分段装到内存中
5.perl:内部集成了正则表达式和第三方代码库CPAN。和前面的pcre-devel支持的正则表达式不一样。 -
Apache配置的选项
选项 | 作用 |
---|---|
–prefix | 指定apache程序安装到哪个目录下 |
–enable-so | 启用动态加载模块支持,使httpd具备进一步扩展功能的能力 |
–enable-rewrite | 启用网页地址重写功能,用于网站优化机目录迁移 |
–enable-charset-lite | 启用字符集支持,以便支持使用字符集编码的网页 |
–enable-cgi | 启用CGI脚本程序支持,便于扩展网站的应用访问能力 |
- Apache主要子目录的用途
子目录 | 用途 |
---|---|
/usr/local/httpd/bin | 存放httpd服务的各种可执行程序文件 |
/usr/local/httpd/conf | 存放httpd服务的各种配置文件 |
/usr/local/httpd/htdocs | 存放网页文档,包括默认首页文件index.html |
/usr/local/httpd/logs | 存放httpd服务的日志文件 |
/usr/local/httpd/modules | 存放httpd服务的各种模块文件 |
/usr/local/httpd/cgi-bin | 存放各种CGI程序文件 |
2. apache编译安装
-
导入apache依赖文件并查看
ls -lh
-
解压缩
tar zvxf apr-1.6.2.tar.gz tar zvxf apr-util-1.6.0.tar.gz tar jxvf httpd-2.4.29.tar.bz2
-
剪切两个文件,解决部分依赖关系
mv apr-1.6.2 httpd-2.4.29/srclib/apr mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
-
安装其他配置文件
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
-
配置添加功能模块
cd httpd-2.4.29 ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
-
编译安装
make && make install
-
编辑配置文件
[root@server5 httpd-2.4.29]# cd [root@server5 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@server5 ~]# vi /etc/init.d/httpd [root@server5 ~]# chkconfig --add httpd [root@server5 ~]# systemctl start httpd #chkconfig: 35 85 21 配置文件 #description: Apache HTTP Server
-
建立软链接
ln -s /usr/local/httpd/conf/httpd.conf /etc/ ln -s /usr/local/httpd/bin/* /usr/bin/
-
网站与域名捆绑
vi /etc/httpd.conf 修改ServerName www.giao.com:80
-
地址映射
vi /etc/hosts 20.0.0.19 www.giao.com
-
测试
echo "<h1>giao giao.<h1>" > /usr/local/httpd/htdocs/index.html systemctl restart httpd curl http://www.giao.com
2. 构建虚拟web主机
-
虚拟web概述
虚拟Web 主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。 -
httpd服务支持的虚拟主机类型包括以下三种:
*基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。
*基于IP地址: 为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。
*基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号。
1. 基于域名
[root@server5 ~]# mkdir /opt/abc
[root@server5 ~]# mkdir /opt/acc
[root@server5 ~]# cd /opt/abc
[root@server5 abc]# vi index.html
[root@server5 abc]# cp index.html
[root@server5 abc]# cd /opt/acc
[root@server5 acc]# vi index.html
<html><body><h1>abc giao giao</h1></body></html>
<html><body><h1>acc giao giao</h1></body></html>
-
启用服务
vi /etc/httpd.conf
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@abc.com
DocumentRoot "/opt/abc"
ServerName www.abc.com
ErrorLog "logs/abc.com-error_log"
CustomLog "logs/abc.com-access_log" common
</VirtualHost>
<Directory "/opt/abc">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
-
映射
vi /etc/hosts
-
重启
systemctl restart httpd
- 在浏览器上查看
2. 基于IP地址
ifconfig ens33:1 192.168.1.12/24
ifconfig
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
systemctl restart httpd
-
添加修改ip地址
<VirtualHost 20.0.0.19:80>
<VirtualHost 192.168.1.12:80>
-
在浏览器上
20.0.0.19
192.168.1.12
3. 基于端口号
-
修改端口号
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
-
增加监听端口
vi /etc/httpd.conf
-
重启查看端口
systemctl restart httpd
netstat -anpt | grep httpd
4.浏览器上
20.0.0.19:80
192.168.1.12:8080