如何在同一个域上运行多个 Laravel 实例?
Posted
技术标签:
【中文标题】如何在同一个域上运行多个 Laravel 实例?【英文标题】:How to run multiple instances of Laravel on the same domain? 【发布时间】:2016-10-26 09:58:49 【问题描述】:我在 Windows Server 2012 上运行 Apache 2.4,在端口 8080 上运行 php 5.6.23。
假设我服务器的域是“serv1.example.com”,我需要使用以下链接运行 3 个 Laravel 实例 production
、staging
和 dev
serv1.example.com:8080/production
serv1.example.com:8080/staging
serv1.example.com:8080/dev
我发现另一个SO question 似乎在做同样的事情。但是当我尝试做同样的事情时,我得到了以下错误
Forbidden
You don't have permission to access /dev on this server.
这是我到目前为止所做的。在我的 httpd-vhosts.conf
文件中,我添加了以下 VirtualHost
<VirtualHost *:8080>
ErrorLog "logs/dev-error.log"
CustomLog "logs/dev-access.log" common
DocumentRoot "C:\www\dev\public"
ServerName serv1.example.com
ServerAlias /dev
<Directory "C:\www\dev">
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride AuthConfig FileInfo Indexes
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
然后我把c:\www\dev\public\.htaccess
的代码改成如下
<IfModule mod_rewrite.c>
#Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ /dev/index.php/?$1 [L]
</IfModule>
我在这里做错了什么?如何使用同一个域访问每个实例?
【问题讨论】:
【参考方案1】:试试这个,在你的Apache配置文件/etc/apache2/sites-available
<VirtualHost *:8080>
ServerName serv1.example.com
ServerAlias serv1.example.com
DocumentRoot "C:/www/dev/public"
# Rewrites for pretty URLs, better not to rely on .htaccess.
<Directory "C:/www/dev/public">
Options All
AllowOverride All
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
# Log file locations
LogLevel warn
ErrorLog "logs/dev-error.log"
CustomLog "logs/dev-access.log" common
在你的c:\www\dev\public\.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
我希望这会奏效。欲了解更多信息,请点击这些链接。Multiple laravelsites on single apache server,multiple web sites in single laravel installation
【讨论】:
这对我不起作用。 + 你为什么要把 /var/www 留在那是 lunix 的东西而不是 windows。 示例取自 linux 安装,我也在 linux 环境中使用 laravel。所以请改变这些东西。 它仍然无法正常工作。我收到了 403 禁止错误 检查这个问题***.com/questions/18447454/… 我越来越近了!谢谢你。所以下面的链接似乎工作正常http://server1.example.com:8080/mod/terminated
但它应该是这个http://server1.example.com:8080/dev/mod/terminated
以上是关于如何在同一个域上运行多个 Laravel 实例?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用单个 Laravel 代码实例配置和运行具有各自数据库的多个网站
如何从Angular向同一域上的Laravel API发送请求?