我的Laravel项目都在我的localhost上运行。 我将它部署到EC2,但没有任何结果。 我在开发控制台中看到的只是内部错误(500)。
我错过了什么?在部署到AWS之前我需要更改什么?这是URL: http://ec2-52-88-99-75.us-west-2.compute.amazonaws.com
这是httpd.conf文件: http://collabedit.com/sdcxm
答案 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