使用 apache 虚拟主机使 Laravel 与多个其他 LAMP 项目共存
Posted
技术标签:
【中文标题】使用 apache 虚拟主机使 Laravel 与多个其他 LAMP 项目共存【英文标题】:making Laravel coexist with multiple other LAMP projects using apache virtual host 【发布时间】:2017-06-07 09:50:11 【问题描述】:我正在尝试使 Laravel 与 /var/www 下的本地安装上的其他项目共存,我目前的解决方案是为 Laravel 目录使用别名,为其他项目使用其他几个别名。
例如:
<VirtualHost *:80>
Alias /laravel /var/www/laravel/public
Alias /other_project /var/www/other_project
<Directory /var/www/other>
Order allow,deny
allow from all
</Directory>
DocumentRoot /var/www/laravel/public
<Directory /var/www/laravel/public>
AllowOverride All
</Directory>
</VirtualHost>
然而,上面的解决方案使http://localhost 和http://localhost/laravel 都重定向到 Laravel,如果我在 /var/www 的根目录上放置一个 index.php,则会被忽略,而是显示 Laravel 安装。
目录 other_project 与 Laravel 完全分离并显示其内容后可以正常工作。
如何让http://localhost/ 显示标准 index.php,http://localhost/laravel 显示 Laravel 安装,http://localhost/other_project 显示另一个 php 项目??
【问题讨论】:
***.com/questions/14700797/… 上述解决方案使用不同的 ServerAlias 但是我正在本地安装并且只能使用 localhost。 【参考方案1】:改变
DocumentRoot /var/www/laravel/public
到
DocumentRoot /var/www
也就是说,如果你想显示任何形式 /var/www
【讨论】:
如果我将 DocumentRoot 更改为 /var/www Laravel 中断,我可以正确看到 localhost,但是一旦我访问 localhost/laravel 图像就会损坏并访问 laravel 内部的链接,例如 laravel/login 会重定向我到 localhost/login 时出现 404 错误。 尝试添加另一个虚拟主机,Laravel 将作为文档根目录。通常对于单个 apache 上的多个站点,我们会添加多个 VirtualHost。您也可以尝试为每个虚拟主机分配一个ServerName
和一个ServerAlias
属性。以上是关于使用 apache 虚拟主机使 Laravel 与多个其他 LAMP 项目共存的主要内容,如果未能解决你的问题,请参考以下文章
在虚拟主机中使用自定义端口的 Laravel 路由在 Apache 中不起作用
这个 apache2.4 和 laravel 设置合适的虚拟主机是啥?
Apache与PHP的结合使主机访问linux80端口的方法
os x MAMP apache 虚拟主机 laravel 项目配置错误