httpd虚拟主机
安装httpd2.4
过程都挺正常的
可以去官网找安装包
http://httpd.apache.org/download.cgi
安装httpd2.4的时候还需要注意一点,需要在官网多下载两个tar包,apr与apr-util这个是httpd运行环境相关的包,我的也是在官网找的
https://apr.apache.org/
实验环境
系统 CentOS7
IP 192.168.253.128
httpd 版本 2.4
apr版本 1.6
apr-util版本1.6
systemctl stop firewalld
setenforce 0
cd /usr/local/src/
yum install gcc gcc-c++ gcc-devel pcre pcre-devel expat expat-devel -y
useradd -M -s /sbin/nologin apache
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.34.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
tar -xf apr-1.6.3.tar.gz
tar -xf apr-util-1.6.1.tar.gz
tar -xf httpd-2.4.34.tar.gz
这时候需要注意一下 需要吧解压后的apr与apr-util放到httpd源码包的srclib目录下,并分别命名为apr与apr-util,并且./configure 要加上参数–with-included-apr,否则会报错,解决办法是通过看官方文档
mv /usr/local/src/apr-1.6.3 /usr/local/src/httpd-2.4.34/srclib/apr
mv /usr/local/src/apr-util-1.6.1 /usr/local/src/httpd-2.4.34/srclib/apr-util
cd httpd-2.4.34
./configure --prefix=/usr/local/httpd-2.4 --enable-mpms-shared=all --with-included-apr --with-pcre
make && make install
ln -sv /usr/local/httpd-2.4 /usr/local/httpd
PATH="/usr/local/httpd/bin/:$PATH"
echo 'PATH="/usr/local/httpd/bin/:$PATH"' > /etc/profile.d/httpd.sh
虚拟主机
部署多个站点,每个站点有不同的域名和站点目录,或者不同端口,不同ip就需要虚拟主机功能,即一个http服务配置多个站点
有多种方式设置虚拟主机这里都稍微讲解一下
- 基于域名(最重要)
- 基于端口 一般生产环境中是内部网络
- 基于ip
基于域名
创建两个域名
www.ice.com 站点目录为/var/www/html/www.ice.com
www.cube.com 站点目录为/var/www/html/www.cube.com
先创建两个站点目录
mkdir -pv /var/www/html/{www.ice.com,www.cube.com}
echo "www.ice.com" > /var/www/html/www.ice.com/index.html
echo "www.cube.com" > /var/www/html/www.cube.com/index.html
修改虚拟主机的配置文件/usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin 835311324@qq.com
DocumentRoot "/var/www/html/www.ice.com"
ServerName www.ice.com
ServerAlias ice.com
ErrorLog "logs/www.ice.com-error_log"
CustomLog "logs/www.ice.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 835311324@qq.com
DocumentRoot "/var/www/html/www.cube.com"
ServerName www.cube.com
ServerAlias cube.com
ErrorLog "logs/www.cube.com-error_log"
CustomLog "logs/www.cube.com-access_log" common
</VirtualHost *:80>
需要修改一下主配置文件/usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf ##吧虚拟主机的配置文件包含进来
Include conf/extra/httpd-vhosts.conf
##下面两项是设置站点目录权限,允许被访问不然会报错403权限不许可
<Directory "/var/www/html/www.ice.com">
Options None
AllowOverride none
Require all granted
</Directory>
<Directory "/var/www/html/www.cube.com">
Options None
AllowOverride none
Require all granted
</Directory>
测试一下,出现Syntax OK 即可
apachectl -t
域名没有DNS解析,需要自己修改一下/etc/hosts文件
添加下面一条记录即可
192.168.253.128 www.ice.com www.cube.com
启动httpd
httpd
测试一下
这里可以看到已经访问到我们两个站点目录了 所以基于域名做的虚拟主机成功了。
基于端口
和基于域名很类似 就在上个实验的基础上改吧。
用2个端口 1080 和2080 端口
先创建相关的站点目录
mkdir -pv /var/www/html/{port1080,port2080}
echo "1080" >/var/www/html/port1080/index.html
echo "2080" > /var/www/html/port2080/index.html
修改虚拟主机的配置文件/usr/local/httpd/conf/extra/httpd-vhosts.conf
添加下面的部分
<VirtualHost *:1080>
ServerAdmin aaa@qq.com
DocumentRoot "/var/www/html/port1080"
ErrorLog "logs/port1080-error_log"
CustomLog "logs/port1080-access_log" common
</VirtualHost>
<VirtualHost *:2080>
ServerAdmin aaa@qq.com
DocumentRoot "/var/www/html/port2080"
ErrorLog "logs/port2080-error_log"
CustomLog "logs/port2080-access_log" common
</VirtualHost>
修改主配置文件
添加下面行
Listen 1080
Listen 2080
<Directory "/var/www/html/port1080">
Options None
AllowOverride none
Require all granted
</Directory>
<Directory "/var/www/html/port2080">
Options None
AllowOverride none
Require all granted
</Directory>
检查一下配置文件然后重启httpd服务
httpd -t
httpd -k restart
这里可以看出基于端口的虚拟主机 完成了。
基于ip
基于ip很少用,但是也说一下吧 步骤类似
创建两个虚拟ip
ip addr add 192.168.253.130/24 dev ens33
ip addr add 192.168.253.131/24 dev ens33
创建站点目录和起始页
mkdir -pv /var/www/html/{ip131,ip130}
echo "ip131">/var/www/html/ip131/index.html
[root@localhost httpd]# echo "ip130">/var/www/html/ip130/index.html
修改虚拟主机的配置文件/usr/local/httpd/conf/extra/httpd-vhosts.conf
添加下面的部分
<VirtualHost 192.168.253.131:80>
ServerAdmin aaa@qq.com
DocumentRoot "/var/www/html/ip131"
ErrorLog "logs/ip131-error_log"
CustomLog "logs/ip131-access_log" common
</VirtualHost>
<VirtualHost 192.168.253.130:80>
ServerAdmin aaa@qq.com
DocumentRoot "/var/www/html/ip130"
ErrorLog "logs/ip130-error_log"
CustomLog "logs/ip130-access_log" common
</VirtualHost>
主配置文件/usr/local/httpd/conf/httpd.conf添加下面几行
<Directory "/var/www/html/ip130">
Options None
AllowOverride none
Require all granted
</Directory>
<Directory "/var/www/html/ip131">
Options None
AllowOverride none
Require all granted
</Directory>
检查一下配置文件,重启服务
httpd -t
httpd -k restart
可以看出成功了
上一篇: 配置centos7虚拟机静态ip
推荐阅读
-
win下的httpd.ini规则该如何样写更简洁,
-
Apache2 httpd.conf 中文版_PHP教程
-
php与apache的集成、配置虚拟目录、配置虚拟主机
-
美国虚拟主机HostEase和LunarPages对比评测
-
apache虚拟主机
-
.htaccess到httpd.ini伪静态规则的转换解决思路
-
WAMP 之 添加虚拟主机(也就是更改www目录或添加新的目录),wamp虚拟主机_PHP教程
-
无法访问yunlong.wj0920wjx.net指向的web服务器(或虚拟主机)的目录,请检查网络设置
-
apache2.2创建虚拟主机
-
php管理nginx虚拟主机shell脚本_PHP教程