将Laravel 5.2项目部署到服务器

时间:2016-07-10 17:15:10

标签: php apache laravel-5.2 ubuntu-server

我的网站有两个服务器 - 本地(ubuntu桌面上的laravel宅基地)和公共(带有php7的ubuntu服务器)。我已经有一些在我的公共服务器上工作正常的简单网站,它们在网络上可见。我在我的laravel Homestead本地服务器上创建了laravel 5.2项目,现在我想移动它 - 将它部署到我的公共服务器上。我压缩完整的项目文件夹(tar.gz)并使用filezilla将其移动到服务器并解压缩并将域DocumentRoot导航到公共文件夹中的项目index.php页面,但它打开了一个空白页面。如果我在index.php中进行了更改并回显了一些字符串,则会显示它的工作和字符串,但是laravel bootstrap不会加载应用程序。 我的index.php位于:

/var/www/html/mydomain.com/public/index.php

这两行:

require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

和此:

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

我也尝试使用绝对路径:

require '/var/www/html/mydomain.com/bootstrap/autoload.php';
$app = require_once '/var/www/html/mydomain.com/bootstrap/app.php';

但浏览器仍然打开空白页面。 使用此数据创建此域的Apache配置文件(/etc/apache2/sites-available/mydomain.com.conf):

<VirtualHost *:80>
    ServerAdmin admin@mydomain.com
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    DocumentRoot /var/www/html/mydomain.com/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

这是我的第一个laravel项目,我没有在服务器上部署它的经验。请问,我需要做哪些设置和更改才能使其正常工作?域被导航到公共文件夹中的index.php页面,但浏览器没有加载应用程序。请帮忙。

编辑:来自apache的错误日志:

[Sun Jul 10 21:38:26.082328 2016] [:error] [pid 18269] [client 192.168.1.7:41368] PHP致命错误:未捕获UnexpectedValueException:流或文件&#34; / var / www / HTML / mydomain.com /存储/记录/ laravel.log&#34;无法打开:无法打开流:/var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:87 \ nStack trace:\ n#0 / var / www / html / mydomain.com / vendor / monolog / monolog / src / Monolog / Handler / AbstractProcessingHandler.php(37):Monolog \ Handler \ StreamHandler-&gt; write(Array)\ n#1 / var / www / html / mydomain.com / vendor / monolog / monolog / src / Monolog / Logger.php(336):Monolog \ Handler \ AbstractProcessingHandler-&gt; handle(Array)\ n#2 /var/www/html/mydomain.com/ vendor / monolog / monolog / src / Monolog / Logger.php(615):Monolog \ Logger-&gt; addRecord(400,Object(Symfony \ Component \ Debug \ Exception \ FatalErrorException),Array)\ n#3 / var / www /html/mydomain.com/vendor/laravel/framework/src/Illuminate/Log/Writer.php(202):Monolog \ Logger-&gt;错误(对象(Symfony \ Component \ Debug \ Exception \ FatalErrorException),数组)\位于第8行的/var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php中的#4 /var/www/html/mydomain.com/vendor/laravel/framework/ 7

1 个答案:

答案 0 :(得分:0)

您必须正确设置文件夹和文件的权限。你可以在这个问题上找到很多信息。 File permissions for Laravel 5 (and others)

另外,为什么不使用git来部署你的项目呢?制作一个回购,然后你可以在你的服务器上克隆你的项目,当你更新你的网站时,你所要做的就是git pull :) 如果您真的想以正确的方式执行此操作,则可以使用带有Envoy的deploybot。这样您就可以直接从本地计算机部署。

相关问题