Laravel 5.2生产应用程序部署

时间:2017-04-18 07:20:03

标签: php laravel laravel-5.2 bitbucket web-deployment

我在laravel 5.2中开发了应用程序。我在本地使用虚拟主机并轻松指向publice / index.php。

但是在生产中为什么我们需要使用put index.php&公共文件夹中的所有内容。这是在生产中部署的最佳实践吗?

我复制整个项目文件夹和公共文件夹中的东西复制在服务器的根目录(public_html)上。

我相应地更改了index.php并且工作正常。

require __DIR__.'/project/bootstrap/autoload.php';


$app = require_once __DIR__.'/project/bootstrap/app.php';

问题是当我使用自动部署工具时,它会将整个代码推送到项目文件夹中。每次我通过ssh将资产从项目/公共/资产手动移动到root / assets。

主要问题 我也面临问题,在资产文件夹中保存个人资料图片。但它保存了项目/公共/资产中的图片,而不是它应该在根/资产中。我也对此问题感到困惑。

告诉我 请向我推荐最佳实践,我应该在哪里保存公用文件夹以及如何管理自动部署。

我们可以将index.php保存在public中并直接指向index.php。通过这种方式,自动部署工作正常。

部署命令后出现问题 我正在使用DeployHQ.com来部署我的代码。它执行ssh命令,但不幸的是我的命令不起作用,因为artisan文件在root / abc / project文件夹中。我不知道这个shell执行命令的位置。或者如何直接指向项目文件夹以执行这些命令。

Bitbucket webhook返回422错误代码 我在批准活动时使用bitbucket webhook。我已经给它部署URL并且自动部署已打开。 Hook也被触发,但它没有部署任何东西,它显示错误代码422和错误"无法解码部署"。

1 个答案:

答案 0 :(得分:0)

index.php文件应该位于公用文件夹中。其他一切都不应该。您的Web服务器应配置为指向此目录。

index.php文件引导Laravel框架。框架文件应位于可公开访问的文件夹之外的目录中。这通常位于public /文件夹上方的目录中。

您不应该使用部署工具。它应配置为维护此目录结构。一旦没有混淆应该推送文件的位置,您就可以开始解决其他与路径相关的部署问题。为了避免将来的痛苦,我建议尽可能将您的开发环境设置为接近生产。