Centos7.4开启虚拟主机与端口站点

2019年4月16日 1 条评论 180 次阅读 0 人点赞

一、监听端口1.1、找到Apache2的安装目录下的配置文件,我的配置文件在/etc/httpd/conf下的httpd.conf文件中首先先进入Apache的配置文件目录

命令:cd /etc/httpd/conf

如图:

1.2、打开目录下的httpd.conf文件

命令:vim httpd.conf

如图:

修改如下配置:#监听80端口Listen 80#监听8080端口Listen 8080

如图:

修改或者添加:#引入conf/extra下的httpd-vhosts.confInclude conf/extra/httpd-vhosts.conf

如图:

注意下面的ServerName localhost:80需要将其注释掉

如图:

到这里修改完毕,但是需要声明的几点:

1、如果没有安装虚拟主机vhosts插件的可能会失败。

2、如果没有将ServerName localhost:80注释掉的话默认会使用本文件中的配置,这样他就读不到我们虚拟主机中80端口配置。

3、如果安装了插件,而配置文件中没有引入vhost配置文件的,会导致失败(这里我的配置文件里没有确实没有引入vhost文件,但是应该是默认开启了,如果不成功的话,可以去安装目录下查找vhosts的插件,将其引入进来)引入格式

如下图:

保存文件并退出:wq
二、编辑虚拟主机配置文件刚刚我们引入的路径为:conf/extra下的httpd-vhosts.conf那么我们先在conf下创建extra文件夹命令:mkdir extra
创建完毕,目录下还没有虚拟主机配置文件,我们来创建并编辑他

命令:

vim httpd-vhosts.conf
#增加一个80端口的网站
<VirtualHost *:80>
#如果有域名的话写上域名加上端口,没有的话可以这么写
ServerName localhost:80
#管理员邮箱
ServerAdmin 1476982312@qq.com
#端口指向的目录
DocumentRoot 网站根目录
#网站目录的权限设置
<Directory 网站根目录>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Allow from all
</Directory>
#网站错误日志,如果没有该目录则报错,所以要创建目录后再重启Apache
ErrorLog /home/yb_shop/error.log
LogLevel warn
#网站访问日志,如果没有该目录则报错,所以要创建目录后再重启Apache
CustomLog /home/yb_shop/access.log common
ServerSignature On
</VirtualHost>
#增加一个8080端口的网站
<VirtualHost *:8080>
#如果有域名的话写上域名加上端口,没有的话可以这么写
ServerName localhost:8080
#如果有多个域名的话写上域名加上端口,没有的话可以不写
ServerAlias localhost:8080
#管理员邮箱
ServerAdmin 1476982312@qq.com
#端口指向目录
DocumentRoot 网站根目录
#网站目录的权限设置
<Directory 网站根目录>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Allow from all
</Directory>
#网站错误日志,如果没有该目录则报错,所以要创建目录后再重启Apache
ErrorLog /home/phpmyadmin/error.log
LogLevel warn
#网站访问日志,如果没有该目录则报错,所以要创建目录后再重启Apache
CustomLog /home/phpmyadmin/access.log common
ServerSignature On
</VirtualHost>


保存并退出

命令(:wq)


三、防火墙放行端口

1.1、由于Centos7.4默认使用firewall防火墙,但是我们习惯以前6代版本中的iptables防火墙了,我们就把他换回来,如果不换也可以,自行度娘firewall防火墙的命令行。


1.2、关闭默认的Firewalls防火墙停止Firewalls防火墙:systemctl stop firewalld.service禁止Firewalls防火墙开机启动:systemctl disable firewalld.service查看Firewalls防火墙的状态:firewall-cmd --state(如果关闭则显示notrunning,开启则为running)

如图:

1.3、开启iptables安装iptables:yum install iptables安装iptables的主服务进程:yum install iptables-services重启iptables服务:service iptables restart设置iptables开机启动:chkconfig iptables on或者systemctl enable iptables.service


1.4、编辑防火墙配置文件放行端口

命令:vim /etc/sysconfig/iptables

编辑如下:

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
#放行21端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
#放行22端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#放行80端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#放行3306端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
#放行8080端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


如图:

这里需要放行什么端口可以自行放行,放行端口的命令行如下:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 需要放行的端口号 -j ACCEPT


保存并退出:wq


1.5、重启iptables防火墙服务

命令:service iptables restart


1.6、查看iptables的设置情况

命令:iptables -L -n

如图:

到此结束,踩了很多的坑,因为centos7.4默认安装的Apache竟然没有看到vhosts的插件,然后配置文件中也没用vhosts的引入,后来想直接试试,没想到成功了。原来这个版本的虚拟主机vhosts配置文件只要在插件中就默认开启了,不需要再手动引入。

梁桂锋

来自西京学院大三的小开发者。

文章评论(1)