繁体   English   中英

将Laravel 5.2项目部署到服务器

[英]Deploying Laravel 5.2 Project to Server

我的网站有两个服务器-本地服务器(ubuntu桌面上的laravel homestead)和公共服务器(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的错误日志:

[2016年7月10日21:38:26.082328,星期日] [:错误] [pid 18269] [客户端192.168.1.7:41368] PHP致命错误:未捕获UnexpectedValueException:流或文件“ /var/www/html/mydomain.com/ storage / logs / laravel.log”无法打开:无法打开流:/var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:87 \\中的权限被拒绝nStack跟踪:\\ n#0 /var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37):Monolog \\ Handler \\ StreamHandler-> write(Array)\\ n #1 /var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/Logger.php(336):Monolog \\ Handler \\ AbstractProcessingHandler-> handle(Array)\\ n#2 / var / www / html / mydomain.com / vendor / monolog / monolog / src / Monolog / Logger.php(615):Monolog \\ Logger-> 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-> error(Object(Symfony \\ Component \\ Debug \\ E xception \\ FatalErrorException),数组)\\ n#4 /var/www/html/mydomain.com/vendor/laravel/framework/在/var/www/html/mydomain.com/vendor/monolog/monolog/src/Monolog/第87行的Handler / StreamHandler.php

您必须正确设置文件夹和文件的权限。 您可以在此问题中找到很多信息。 Laravel 5(及其他)的文件权限

另外,为什么不使用git部署项目呢? 进行回购,然后您可以在服务器上克隆项目,并且在更新站点时,只需要做一个git pull :)。如果您确实想以正确的方式进行操作,则可以在Envoy中使用deploybot。 这样,您可以直接从本地计算机进行部署。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM