使用 apache 在单个 VPS 上托管多个 laravel 5.5 项目?
Posted
技术标签:
【中文标题】使用 apache 在单个 VPS 上托管多个 laravel 5.5 项目?【英文标题】:Hosting multiple laravel 5.5 projects on a single VPS with apache? 【发布时间】:2018-06-05 13:55:34 【问题描述】:我有一个Digital Ocean VPS,我想做的是设置多个应用程序但只更改http://ip/:project。
我的 apache .conf 中已经有这个:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/rovix/public
<Directory /var/www/rovix/public/>
RewriteEngine On
RewriteBase /var/www/rovix/public
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Alias /aleman /var/www/aleman
<Directory /var/www/aleman/public/>
RewriteEngine On
RewriteBase /var/www/aleman/public
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
到目前为止 Alias /aleman 正在工作,因为它引导我进入文件夹,但是当我进入公共时不再工作。关于如何实现这一目标的任何想法?谢谢!
更新
Alias /aleman /var/www/aleman/public
DocumentRoot /var/www/aleman/public
<Directory /var/www/aleman/public/>
RewriteEngine On
RewriteBase /var/www/aleman/public
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
我已经按照你的建议更改了配置。
但如果我不覆盖 DocumentRoot,那么我会被重定向到根目录 /
如果我覆盖 DocumentRoot,则 url 会变得混杂。
有没有其他方法可以为每个项目实现单独的url?
【问题讨论】:
更改http://ip/:project
是什么意思?您的意思是您使用的是基于 IP 的虚拟主机?
【参考方案1】:
我的猜测是您想将Alias /aleman /var/www/aleman
更改为Alias /aleman /var/www/aleman/public
。我发现“点击”到 public
文件夹对 Laravel 路由器来说不是很好。
我假设您知道这一点,但为了别人,请记住在编辑文件后重新启动 Apache,否则更改不会生效。
【讨论】:
点击“公开”不仅不是很好,而且是对安全性的严重妥协。有人写下something/aleman/.env -- 会以漂亮的纯文本格式下载 .env 文件。 感谢您提出这个问题。我同意,根据 Apache 的配置,可以加载隐藏文件。 我已经按照您的建议更改了配置: Alias /aleman /var/www/aleman/public DocumentRoot /var/www/aleman/public以上是关于使用 apache 在单个 VPS 上托管多个 laravel 5.5 项目?的主要内容,如果未能解决你的问题,请参考以下文章
在一个 IP 上托管多个 Golang 站点并根据域请求提供服务?