Laravel 5.4 on Heroku.禁止 您无权访问 / 在此服务器上

2022-08-30 21:36:08

我已经在Heroku上部署了我的laravel 5.4应用程序。问题是,我收到此错误消息:

禁止 您无权访问 / 在此服务器上

我的程序文件:

web: vendor/bin/heroku-php-apache2 public/

查看日志,我发现它一直在尝试“app/”而不是“/”。

我的日志,为提高可读性而被截取。

2017-12-03T14:18:45.747195+00:00 app[web.1]: [Sun Dec 03 14:18:45.746749 2017] [autoindex:error] [pid 122:tid 140692458305280] [client 10.140.221.43:41026] AH01276: Cannot serve directory /app/: No matching DirectoryIndex (index.php,index.html,index.htm) found, and server-generated directory index forbidden by Options directive

My .htaccess:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteC

我不知道我可能在哪里说它来研究“app/”而不是“/”。如果这是导致此错误的原因。


答案 1

我不知道为什么服务器认为您的root位于,但是由于Heroku应该为您的应用程序提供服务的目录的权限而发生此错误。/apppublic/

要解决此问题,只需将以下内容添加到scriptcomposer.json

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

请注意目录权限的更改。public/

编辑:

当您使用它时,请检查确保拼写正确并以大写字母开头。ProcfileP

PS:我知道有些人真的很挑剔,会说许可太宽松了。是的,我同意你的看法。你可以把它改成别的东西,比如让我们把果汁流出来。775


答案 2

在Laravel Root文件夹中,创建一个名为Procfile的文件。

在Procfile中写下以下行。

web: vendor/bin/heroku-php-nginx public/

然后再次部署它!Src和更多在这里 https://appdividend.com/2018/04/17/how-to-deploy-laravel-project-on-heroku/

希望这是有帮助的=)


推荐