在子目录中使用laravel,无root访问权限

时间:2015-11-17 14:44:45

标签: php apache laravel

一年前,我决定使用codeigniter而不是laravel,因为codeigniter更容易设置。我现在正准备我的下一个项目,似乎codeigniter现在已经过时了(至少大多数人似乎建议使用laravel而不是codeigniter)。

现在我的问题:我使用虚拟ubuntu机器开发Web应用程序,因此我有一个类似于生产环境的开发环境(这有助于我避免一些问题(特别是区分大小写...;))) / p>

我安装了composer和laravel,并在/ var / www / quickstart中创建了一个名为“quickstart”的新laravel项目。然后我按照他们的“入门指南”(这里:Guide)。到目前为止一切正常。

但问题出现了: 我在/ var / www中有两个其他Web应用程序,所以当我输入机器的ip时,我会看到3个目录。

问题1: Normaly我希望,只要我点击浏览器中的“quickstart” - 目录,就会显示webapp,但是我必须再次点击“public”,然后显示webapp。 / p>

问题2:当然,页面上的链接也是错误的,因为它们会转到(例如)“/ task”,这在服务器上找不到。

问题是我对apache配置并不熟悉。我怀疑它与VirtualHosts有关,但AFAIK需要具有root访问权限才能配置虚拟主机,而我在开发环境中没有root权限。

你能指出一种方法告诉我如何在一个子目录中完成laravel工作,我可以在完成项目后立即将文件和文件夹移动到我的主机中吗?我想只更改一个文件,而不是所有文件中的所有路径和URL;)

此致 基督教

1 个答案:

答案 0 :(得分:0)

感谢波格丹,我能够弄明白。我的主机允许符号链接,所以我这样做了:

我将laravel安装在

/srv/web/quickstart

(quickstart是项目的名称)。然后我创建了以下符号链接:

ln -s /srv/web/quickstart/public /srv/web/www/public

apache的文档根目录配置为

/srv/web/www/public

之后我才得到一个空白页面。那是因为我忘了在存储文件夹上设置正确的权限。所以我设置了以下权限

chmod -R 777 /srv/web/quickstart/storage

这适用于开发环境。对于生产,我建议只允许webserver-user写入该目录。

瞧瞧:一切正常!

感谢您的帮助bogdan。 基督教