【问题标题】:Heroku 403 Forbidden - Laravel 5Heroku 403 禁止 - Laravel 5
【发布时间】:2020-05-28 06:01:59
【问题描述】:

我有一个 Laravel 5.8 网站

https://boss-security-2.herokuapp.com/

我部署到 Heorku 以使用我创建的这个脚本进行测试

appName='boss-security-2'
echo 'appName =' $appName


# heroku apps
# heroku apps:destroy appName --confirm appName
# ----------------------

echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git init
git status
git add -A
git commit -m "Initial commit"

heroku create $appName
heroku git:remote -a $appName
heroku buildpacks:set heroku/php
heroku config:set APP_KEY=9O7AegDFJhVC16jLfNNepT7TEQ7FyFZc

git push heroku master

heroku apps:info
heroku open
echo "done"
#

我一直在得到

禁止

>

您无权访问此资源


我的脚本中有什么错误吗?


作曲家.json

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.1.3",
        "fideloper/proxy": "^4.0",
        "guzzlehttp/guzzle": "~6.0",
        "laravel/framework": "5.8.*",
        "laravel/tinker": "^1.0",
        "laravelcollective/html": "~5.0",
        "nesbot/carbon": "^2.19",
        "pusher/pusher-php-server": "^3.4"
    },
    "require-dev": {
        "beyondcode/laravel-dump-server": "^1.0",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^2.0",
        "phpunit/phpunit": "^7.5"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ],
        "post-install-cmd": [
            "php artisan clear-compiled",
            "chmod -R 777 public/"
        ]
    },

}

更新 1

我检查了日志,我看到了这个

无法提供目录 /app/:找不到匹配的 DirectoryIndex (index.php,index.html,index.htm),并且 Options 指令禁止服务器生成的目录索引


更新 2

我不知道为什么我的测功机中的composer.json 似乎没有我的最新 代码。我通过 SSH 登录并检查。

heroku ps:exec

这跟我的composer.lock有关系吗?

【问题讨论】:

  • 尝试将以下内容添加到 composer.json "post-install-cmd" 的脚本部分:[ "php artisan clear-compiled", "chmod -R 775 public/" ]跨度>
  • @Sehdev 我试过了并更新了我的帖子以向您展示我的 composer.json。
  • 我认为您没有正确地将 Apache 指向 public 目录;当我转到 boss-security-2.herokuapp.com/public 时,我收到 500 错误,但这意味着 something 存在。
  • 您收到 500 错误?不是 403 吗?这怎么可能 ?可以分享一下截图吗?
  • 我一直在使用上面的脚本,昨晚成功了。我不知道为什么它现在不起作用。

标签: php laravel bash laravel-5 heroku


【解决方案1】:

试试这个来解决你的问题。在你的 composer.json 中添加这个

 "post-install-cmd": [
     "php artisan clear-compiled",
     "chmod -R 777 public/"
 ]

【讨论】:

    【解决方案2】:

    可能你在你的 远程 git 仓库

    1. 转到您的本地代码
    2. 更新权限
    3. 然后推回代码
    4. 从 Heroku 应用中提取数据

    【讨论】:

      【解决方案3】:

      我试过http://boss-security-2.herokuapp.com/artisan,它显示了工匠源代码。 (不应该)

      我认为你错误地配置了根文件夹。

      更新

      你说你的composer.json 没有更新。您是否尝试过提交并推送所有更改?

      git add -A && git commit -m 'update' && git push heroku master
      

      然后尝试 SSH 并列出内容

      heroku ps:exec
      
      pwd && ls -la && cat Procfile
      

      【讨论】:

      • 我尝试了这个解决方案,但没有奏效。仍然显示 403 禁止访问
      猜你喜欢
      • 1970-01-01
      • 2016-11-28
      • 2015-02-25
      • 2017-08-18
      • 2019-01-23
      • 2017-09-07
      • 2020-06-29
      • 2017-12-20
      • 2017-07-15
      相关资源
      最近更新 更多