[英]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.