禁止在 heroku 中托管 laravel 应用程序时,您无权访问此 xampp 服务器上的 /
Posted
技术标签:
【中文标题】禁止在 heroku 中托管 laravel 应用程序时,您无权访问此 xampp 服务器上的 /【英文标题】:Forbidden You don't have permission to access / on this xampp server while hosting laravel app in heroku 【发布时间】:2017-07-20 21:16:25 【问题描述】:我尝试将我的 laravel 应用程序部署到 heroku,但是在完成所有步骤后运行 heroku 时,它显示以下错误
我的 ht 访问文件是
<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
RewriteCond %HTTP:Authorization .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]
</IfModule>
【问题讨论】:
服务器是否有权限读取和创建app目录下的临时文件? 我正在使用 xampp 服务器...我有权创建临时文件 一定要加Options +FollowSymLinks
是的,您有访问权限,但是...运行服务器的用户呢?
此问题是否与:***.com/q/38556113/1144627 相关?您的错误日志文件显示什么?
【参考方案1】:
创建Procfile 默认情况下,Heroku 将与 PHP 一起启动一个 Apache Web 服务器,以从项目的根目录为应用程序提供服务。 但是,您的应用程序的文档根目录是 public/ 子目录,因此您需要创建一个配置正确文档根目录的 Procfile:
在项目目录的终端上,执行以下操作(适用于 Windows)
echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
然后执行 Git 添加、提交、推送 -来源 Heroku 文档
【讨论】:
【参考方案2】:我觉得问题出在这里:
access here, or in any related virtual host.
<Directory />
Options FollowSymLinks
AllowOverride All
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
重点是
Require all denied
您应该将拒绝更改为授予
【讨论】:
【参考方案3】:您是否在 Heroku 上正确部署了应用程序?你能检查一下你是否做了以下事情吗?
-
创建 Heroku 应用程序
在项目的根目录上创建 Procfile
修改composer.json
让您的项目文件保持最新
将项目文件添加到 Heroku
设置数据库连接 *
如果您错过了任何步骤,请执行并重试。 在 Heroku 云应用平台上部署、构建、运行和操作 Laravel 应用程序的完整指南包含在以下博客文章中,其中包含您需要的所有步骤和信息。
阅读:Laravel: Deploy Laravel Projects On Heroku
https://www.ashenlive.com/blog/laravel-deploy-laravel-projects-on-heroku
【讨论】:
【参考方案4】:我遇到了同样的问题并找到了解决方案。这是关于 Heroku 在目录中找不到索引文件(index.php,index.html)。 例如,如果您无法访问根目录下的文件,您应该在那里添加一个索引文件。就我而言,我有一个根目录和一个 index.php 文件,因此我可以访问其中的文件。但是根目录下还有另一个文件夹我无法进入。所以我也在那里创建了一个空的 index.html 文件。
然后问题就解决了。
【讨论】:
【参考方案5】:在 Procfile 中您已对其进行编辑并将代码替换为
web: heroku-php-apache2 public/
现在通过 cmd 中的此命令更新您的 Procfile
-
git 状态
git add -A
git commit -m "添加 Procfile 并使用 Apache2"
git push heroku master
希望能修复
【讨论】:
以上是关于禁止在 heroku 中托管 laravel 应用程序时,您无权访问此 xampp 服务器上的 /的主要内容,如果未能解决你的问题,请参考以下文章
windows中heroku达到的最大setlocal递归级别
Laravel 密码重置电子邮件未在 Heroku 上使用 gmail 发送
Heroku 上的 Laravel 5.4。 Forbidden 您无权访问此服务器上的 /
如何从 Heroku 中托管的 Rails API 应用程序在浏览器中设置 cookie,该应用程序在 Netlify 中托管的 React 应用程序中运行前端?