【问题标题】:Failing to deploy a Laravel app to EC2无法将 Laravel 应用程序部署到 EC2
【发布时间】:2015-12-31 21:02:34
【问题描述】:

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

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

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

【问题讨论】:

  • 可能和权限有关,检查你的 laravel 日志(app/storage/logs/laravel.log)如果它是空的,然后尝试将文件权限更改为 755 或 777(不推荐)

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


【解决方案1】:

这对我有用:

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

【讨论】:

    【解决方案2】:

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

    Laravel“Storage”文件夹和“bootstrap/cache”文件夹需要命令行用户(运行 composer update 等的用户)和默认 Web 服务器用户(www-data)访问,以防你使用 ubuntu在您的 EC2 实例上。

    以下三个命令将确保它们都有权执行此操作。在项目的根目录下运行它们

    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 设置为

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

    yourproject/config/app.php    
    
    php artisan key:generate
    

    新 Amazon EC2 实例的一个常见缺陷是分配安全组 到您的实例,该实例不允许将端口 80 和 443 作为入站。 请检查您的 EC2 实例的安全组,如果尚未允许该组中的这些端口。

    【讨论】:

    • 您能告诉我如何为 Amazon Linux AMI 运行上述命令吗?
    猜你喜欢
    • 2013-05-24
    • 2011-06-28
    • 2016-09-29
    • 2017-02-01
    • 2014-11-13
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2021-07-16
    相关资源
    最近更新 更多