一、安装 Apache
如果没有安装 Apache,可以参考我之前的文章 Windows用Apache发布php网站 进行安装;
二、准备好两个可运行的php项目
项目放到预发布的文件夹里,一会需要填写项目路径;
三、修改 httpd.conf 文件
接下来,您需要修改 Apache 的主配置文件 httpd.conf。具体步骤如下:
1. 增加监听端口
找到 Listen:60 (这是我的 Apache 端口);
在下面加入一个新的监听端口 Listen:61 (这是我要增加的第二个项目的 Apache 端口);
# # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the <VirtualHost># directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. # #Listen 12.34.56.78:80 Listen 60 Listen 61 # # Dynamic Shared Object (DSO) Support #
2. 增加虚拟主机(VirtualHost)
在 httpd.conf 文件中增加两个项目的虚拟主机,并配置项目地址。
具体配置如下:
# 第一个项目 <VirtualHost*:60> DocumentRoot "C:\PHP_Project\www" <!--这里换成你的A项目目录--> ServerName project1.local <!--服务名,用不到就随便填--> ServerAlias a.test1.com <!--域名,用不到就随便填--> ErrorLog "logs/project1_error.log" <!--日志地址--> CustomLog "logs/project1_access.log" common <!--日志地址--><Directory"C:\PHP_Project\www"><!--这里换成你的A项目目录--> Options Indexes FollowSymLinks <!--对于php项目很关键,All表示开启url重写,方便未来做伪静态--> AllowOverride All Require all granted </Directory></VirtualHost># 第二个项目 <VirtualHost*:61> DocumentRoot "C:\PHP_Project\www1" <!--这里换成B项目目录--> ServerName project2.local ServerAlias a.test2.com ErrorLog "logs/project2_error.log" CustomLog "logs/project2_access.log" common <Directory"C:\PHP_Project\www1"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory></VirtualHost>
替换掉原先的这一段:
DocumentRoot "C:\PHP_Project\www" <Directory"C:\PHP_Project\www"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All # # Controls who can get stuff from this server. # Require all granted </Directory>
四、打开防火墙和安全组
打开防火墙端口拦截:[控制面板->系统与安全->防火墙->高级设置->出入站规则]里开放60、61端口,如果主机上无法直接改出入站规则,在云管理面板上一般可以修改。
打开安全组端口拦截:安全组在云管理面板上,修改时容易遗漏。
五、公网验证
我们客户端浏览器输入ip:port可以访问,就说明我们发布成功,60、61分别部署的项目都可以各自访问了,至此,Windows下Apache部署多个php项目的配置完成。