Envoyer.io,Laravel - 试图访问/ public

时间:2015-04-27 22:30:50

标签: .htaccess laravel laravel-5 envoyer.io

更新

似乎放置在/storage/app/thirdpartydirectory下的任何PHP文件都没有被执行,而是抛出了Laravel NotFoundHttpException。可以通过http://example.com/thirdpartydirectory访问简单的文本文件,图像等。

原始问题

我正在使用Envoyer.io构建一个Laravel 5站点进行代码部署。 Envoyer的工作方式,新代码被推送到网站并放在/releases目录下,然后从顶层符号链接到/current(所以/current总是指向最新的{{1}子目录)。

问题在于,我放在我网站的/releases目录中的任何内容都包含在Envoyer部署中,因此每次推送新代码时都会复制。我正在尝试使用必须将其/public和其他文件/目录直接暴露给外部世界的第三方应用程序。首次加载应用程序时,安装过程开始,并将其他配置文件安装到其各种文件夹中。当我部署下一批代码时,再次推送index.php而没有第三方应用程序生成的安装和缓存文件 - 从而导致必须一遍又一遍地运行安装过程。

我与Taylor Otwell就这一点联系过,他的建议是将应用程序放在/public中,然后在激活每个新部署之前从每个版本的/storage/app/thirdpartyapp目录中创建一个符号链接 - < / p>

public

这会创建一个没有任何问题的符号链接但是当我尝试访问应用程序(http://example.com/thirdpartyapp)时,我会卡在Laravel NotFoundHttpException页面上。该应用程序有一个index.php,如果我转到http://example.com/thirdpartyapp/index.php,则会加载Laravel网站的索引页面 - 几乎就像它完全忽略符号链接和cd {{release}} ln -s /home/eyf/storage/app/thirdpartyapp public/thirdpartyapp 一样网址。

该应用确实附带了以下/thirdpartyapp,不确定它是否会对所有这些产生任何影响:

.htaccess

1 个答案:

答案 0 :(得分:0)

显然,在Laravel应用程序中放置在/storage下的PHP代码不会被执行。我将第三方应用程序的目录移动到父文件夹并对其进行符号链接,现在一切正常。