未能将Laravel应用程序部署到EC2

时间:2015-10-03 21:33:23

标签: php apache amazon-web-services amazon-ec2 laravel-5

我的Laravel项目都在我的localhost上运行。 我将它部署到EC2,但没有任何结果。 我在开发控制台中看到的只是内部错误(500)。

我错过了什么?在部署到AWS之前我需要更改什么?这是URL: http://ec2-52-88-99-75.us-west-2.compute.amazonaws.com

这是httpd.conf文件: http://collabedit.com/sdcxm

2 个答案:

答案 0 :(得分:8)

  

安装Laravel后,您可能需要配置一些权限。   存储中的目录和引导/缓存目录   应该可以由您的Web服务器写入。 - http://laravel.com/docs/master#configuration

Laravel"存储"文件夹和" bootstrap / cache"如果您在EC2实例上使用ubuntu,则文件夹需要从命令行用户(运行编译器更新等的用户)和默认Web服务器用户(www-data)访问。

以下三个命令将确保他们都有权这样做。在项目的根目录中运行它们

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`

sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX storage bootstrap/cache

sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX storage bootstrap/cache

这应该开始显示您可以调试的特定错误。还要确保在app.php中将调试选项设置为true

yourproject/config/app.php

'debug' => true,

还要确保您有一个默认的.env文件,用于指定项目根目录的环境。

yourproject/.env

//should have this
APP_ENV = dev

此外,如果您正在使用会话等,请确保您已生成密钥 使用此命令并且没有将config / app.php设置为

'键' => env(' APP_KEY',' SomeRandomString'),

yourproject/config/app.php    

php artisan key:generate
  

新Amazon EC2实例的一个常见缺陷是分配安全组   您的实例没有允许端口80和443作为入站。   请检查您的EC2实例的安全组,并允许该组中的端口(如果尚未安装)。

答案 1 :(得分:0)

这对我有用:

[root@example-laravel-server ~]# chown -R apache:apache /var/www/laravel/laravel/storage