废话不多说直接说目的。想在电脑上用两个端口指向不同文件.
- 81端口对应/var/www/html.
- 88端口对应/var/www/html/zend/public。
因为zendframe下面有.htaccess文件,为了安全。不能直接通过81端口防问。
1. 确认用户和用户组对要加入的目录是否有权限
<-- 使用mod_php管理 -->
User someone
group someone
直接更改
<-- 使用php-fpm 管理–>
除更改/etc/httpd/conf/httpd.conf外,还要更改/etc/php-fpm/www.conf中的User,Gorup。/etc/php-fpm/www.conf 除了User,Gorup。还有监听User和Group那个起作用我也不知道,反正都改了。
- httpd.conf更改listen
<–apache 2.4以下–>
Listen 81
Listen 88
<–apache 2.4以上–>
Listen <你的IP地址或域名>:81
Listen <你的IP地址或域名>:88
3 加入虚拟主机
<–apache 2.4以下–>
NameVirtualHost 127.0.0.1:81
NameVirtualHost 127.0.0.1:88
<–apache 2.4以上–>
直接删除不用了
4更改DocumentRoot和ServerName
找到之前的两行加上#,且加入下面内容,以便对不同端口用不同端口。
#DocumentRoot "/var/www/html" 注释掉
#ServerName localhost:81 注释掉
<VirtualHost *:81>
DocumentRoot /var/www/html/
ServerName 127.0.0.1:81
</VirtualHost>
<VirtualHost *:88>
DocumentRoot /var/www/html/zend/public
ServerName 127.0.0.1:88
</VirtualHost>
5 写Directory
<Directory "/var/www/html/zend/public">
AllowOverride All
Require all granted
</Directory>
<Directory "/var/www/html/">
AllowOverride All
Require all granted
</Directory>
- 设置防火墙
我用的是iptables
vi /etc/sysconfig/iptables
加入以下内容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 88 -j ACCEPT
重启iptables systemctl restart iptables.service
重启apache systemctl restart httpd.service
最后察看81,88端口是否开启。nmap localhost
是否有以下内容
81/tcp open hosts2-ns
88/tcp open kerberos-sec
如果有则表示端口开启成功。
- 最后用浏览器开启两个端口是否正常工作
问题:apache 不能解析php,这问题还是很常见的。但解决方法却不一样。记录下Centos 8中的一种。改/etc/httpd/conf/httpd.conf
AddType application/x-httpd-php .php //添加
IncludeOptional /etc/httpd/conf.modules.d/*.conf //添加
IncludeOptional /etc/httpd/conf.d/*.conf //添加
在加入之前要确定两个目录下有php的设置文档。没有设置文档可以考虑 yum install php-fpm
。
Centos 7 中加入 yum install mod-php*
apache 一个小版本改动都要各种改配置,必须吐槽下。