如何在特定目录中部署Laravel应用?

时间:2019-05-17 15:31:45

标签: laravel apache

我已经完成了我漂亮的Laravel应用,我们在开发PC上将其称为Beautiful。因此,现在该将其置于生产环境中。

我们正在使用Apache,并且被告知我的应用程序必须在/var/apache/html/projects/Beautiful下,因此我转移了该应用程序(使用Git),运行了作曲家和npm,等等。我已经更改了.env文件,因此它可以连接到生产postgres数据库等。

即使索引页在http:://ourserver/Beautiful/public中正常工作,这也是我的问题。

要在没有/public的情况下运行,我还需要配置什么?问题在于,显然所有路线都不适用于公共路线,例如http://ourserver/Beautiful/public/login无效,或其他任何路线。

这是Apache的配置,还是Laravel中我可以做的事情?

我知道正确的做法是在Apache中创建一个指向Beautiful.ourserver.com的虚拟主机,但是我无法控制DNS,我所能做的就是在我们的服务器上工作。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了问题,则应遵循以下路径。 将所有公用文件夹中的内容放入/var/apache/html/projects/Beautiful,然后将所有laravel文件夹和文件放入/var/apache/html/{somewhere}。现在编辑/var/apache/html/projects/Beautiful/index.php并像这样进行编辑,
    -require __DIR__.'/../vendor/autoload.php';require __DIR__.'/../{somewhere}/vendor/autoload.php';
    -$app = require_once __DIR__.'/../bootstrap/app.php';$app = require_once __DIR__.'/../{somewhere}/bootstrap/app.php';';
    并在此$app = require_once __DIR__.'/../{somewhere}/bootstrap/app.php';';之后添加以下内容     -$app->bind('path.public', function() { return __DIR__; });