草庐IT

php - 在 Heroku 上部署 PHP 项目

coder 2024-04-25 原文

我已经在 heroku 上成功部署了我的 PHP 项目,但问题是每当我输入“Heroku Open”以加载网页 url 时,我都会收到以下错误:

 Forbidden
 You don't have permission to access / on this server.

我知道问题可能出自服务器配置、我的 ht-access,甚至是 Apache 配置,我已经尝试进行各种更改,但到目前为止都没有奏效,这里是 heroku 日志:

015-03-15T10:47:30.266691+00:00 heroku[api]: Release v2 created by x@x.x
2015-03-15T10:50:02.189549+00:00 heroku[api]: Scale to web=1 by x@x.x
2015-03-15T10:50:02.262334+00:00 heroku[api]: Deploy d388ddf by  x@x.x
2015-03-15T10:50:02.262334+00:00 heroku[api]: Release v3 created by x@x.x
2015-03-15T10:50:08.597918+00:00 heroku[web.1]: Starting process with command `vendor/bin/heroku-php-apache2`
2015-03-15T10:50:10.812072+00:00 app[web.1]: Starting php-fpm...
2015-03-15T10:50:10.620318+00:00 app[web.1]: Optimzing defaults for 1X dyno...
2015-03-15T10:50:10.802110+00:00 app[web.1]: 4 processes at 128MB memory limit.
2015-03-15T10:50:12.815707+00:00 app[web.1]: Starting httpd...
2015-03-15T10:50:13.132692+00:00 heroku[web.1]: State changed from starting to up
2015-03-15T10:50:38.639895+00:00 heroku[api]: Scale to web=1 by x@x.x
2015-03-15T10:50:49.465371+00:00 heroku[router]: at=info method=GET path="/" host=boiling-bastion-7861.herokuapp.com request_id=92b6872e-c060-4e06-8ede-5d44ea335ada fwd="175.140.77.229" dyno=web.1 connect=1ms service=3ms status=403 bytes=387
2015-03-15T10:50:49.465802+00:00 app[web.1]: 10.123.194.135 - - [15/Mar/2015:10:50:49 +0000] "GET / HTTP/1.1" 403 209 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
2015-03-15T10:50:49.465396+00:00 app[web.1]: [Sun Mar 15 10:50:49.463558 2015] [autoindex:error] [pid 117:tid 140423049713408] [client 10.123.194.135:31742] AH01276: Cannot serve directory /app/: No matching DirectoryIndex (home.php) found, and server-generated directory index forbidden by Options directive
2015-03-15T10:50:49.907445+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=boiling-bastion-7861.herokuapp.com request_id=76865ea0-628f-426f-8bad-5507aa052fb4 fwd="175.140.77.229" dyno=web.1 connect=1ms service=5ms status=200 bytes=3964
2015-03-15T10:50:49.906266+00:00 app[web.1]: 10.123.194.135 - - [15/Mar/2015:10:50:49 +0000] "GET /favicon.ico HTTP/1.1" 200 3754 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
2015-03-15T10:53:30.128901+00:00 heroku[router]: at=info method=GET path="/" host=boiling-bastion-7861.herokuapp.com request_id=56038276-5eb7-40ad-8615-cc695a72cdcb fwd="175.140.77.229" dyno=web.1 connect=1ms service=2ms status=403 bytes=387
2015-03-15T10:53:30.129676+00:00 app[web.1]: 10.91.13.225 - - [15/Mar/2015:10:53:30 +0000] "GET / HTTP/1.1" 403 209 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
2015-03-15T10:53:30.129331+00:00 app[web.1]: [Sun Mar 15 10:53:30.128673 2015] [autoindex:error] [pid 102:tid 140423284651776] [client 10.91.13.225:15561] AH01276: Cannot serve directory /app/: No matching DirectoryIndex (home.php) found, and server-generated directory index forbidden by Options directive
2015-03-15T10:53:30.686329+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=boiling-bastion-7861.herokuapp.com request_id=9bfc7392-7f31-49ff-831a-55dbd0812914 fwd="175.140.77.229" dyno=web.1 connect=3ms service=4ms status=200 bytes=3964
2015-03-15T10:53:30.686175+00:00 app[web.1]: 10.91.13.225 - - [15/Mar/2015:10:53:30 +0000] "GET /favicon.ico HTTP/1.1" 200 3754 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
2015-03-15T11:06:22.231815+00:00 heroku[router]: at=info method=GET path="/" host=boiling-bastion-7861.herokuapp.com request_id=3a2df217-758f-469c-884a-3f27072dda7d fwd="175.140.77.229" dyno=web.1 connect=4ms service=7ms status=403 bytes=387
2015-03-15T11:06:22.228756+00:00 app[web.1]: 10.93.25.70 - - [15/Mar/2015:11:06:22 +0000] "GET / HTTP/1.1" 403 209 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
2015-03-15T11:06:22.228440+00:00 app[web.1]: [Sun Mar 15 11:06:22.227460 2015] [autoindex:error] [pid 104:tid 140423183963904] [client 10.93.25.70:29123] AH01276: Cannot serve directory /app/: No matching DirectoryIndex (home.php) found, and server-generated directory index forbidden by Options directive
2015-03-15T11:06:22.710597+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=boiling-bastion-7861.herokuapp.com request_id=ad006b2f-00fe-426e-81f0-e2a8d8e9e457 fwd="175.140.77.229" dyno=web.1 connect=1ms service=10ms status=200 bytes=3964
2015-03-15T11:06:22.709151+00:00 app[web.1]: 10.93.25.70 - -   [15/Mar/2015:11:06:22 +0000] "GET /favicon.ico HTTP/1.1" 200 3754 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36

可能的解决方案是什么?!任何考虑表示赞赏...

最佳答案

Apache 会在您的错误日志中告诉您问题出在哪里(为了便于阅读,我将其封装):

2015-03-15T10:50:49.465396+00:00 app[web.1]: [Sun Mar 15 10:50:49.463558 2015]
  [autoindex:error] [pid 117:tid 140423049713408] [client 10.123.194.135:31742]
  AH01276: Cannot serve directory /app/: No matching DirectoryIndex (home.php) found,
  and server-generated directory index forbidden by Options directive

您显然在 .htaccess 文件中的某处有 DirectoryIndex home.php,但是没有 home.php,所以当您尝试转到 /,它找不到该文件(当您只请求目录本身 / 时它会使用),并且列出目录内容(不是你想要什么)在默认配置中是不允许的。

因此,您要么需要使用您的代码创建一个 home.php,要么更改该 .htaccess 以删除 DirectoryIndex 语句,以便您的 index.php/index.html(如果存在)得到服务,或者,如果您的 home.php 和其他所有内容不在根目录中您的项目,但位于 publicweb 之类的子目录中,define a document root using the documented argument in your Procfile command :

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

关于php - 在 Heroku 上部署 PHP 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29060475/

有关php - 在 Heroku 上部署 PHP 项目的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  5. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  6. ruby-on-rails - 在 heroku 的 .fonts 文件夹中包含自定义字体,似乎无法识别它们 - 2

    Heroku支持人员告诉我,为了在我的Web应用程序中使用自定义字体(未安装在系统中,您可以在bash控制台中使用fc-list查看已安装的字体)我必须部署一个包含所有字体的.fonts文件夹里面的字体。问题是我不知道该怎么做。我的意思是,我不知道文件名是否必须遵循heroku的任何特殊模式,或者我必须在我的代码中做一些事情来考虑这种字体,或者如果我将它包含在文件夹中它是自动的......事实是,我尝试以不同的方式更改字体的文件名,但根本没有使用该字体。为了提供更多详细信息,我们使用字体的过程是将PDF转换为图像,更具体地说,使用rghostgem。并且最终图像根本不使用自定义字体。在

  7. ruby-on-rails - Heroku 吃掉了我的自定义 HTTP header - 2

    我正在使用Heroku(heroku.com)来部署我的Rails应用程序,并且正在构建一个iPhone客户端来与之交互。我的目的是将手机的唯一设备标识符作为HTTPheader传递给应用程序以进行身份​​验证。当我在本地测试时,我的header通过得很好,但在Heroku上它似乎去掉了我的自定义header。我用ruby​​脚本验证:url=URI.parse('http://#{myapp}.heroku.com/')#url=URI.parse('http://localhost:3000/')req=Net::HTTP::Post.new(url.path)#boguspara

  8. ruby - 未定义的方法 auto_upgrade!将 Sinatra/DataMapper 应用程序推送到 Heroku 时 - 2

    有谁知道在Heroku的Bamboo堆栈上启动并运行使用DataMapper的Sinatra应用程序所需的魔法咒语?Bamboo堆栈不包含任何预安装的系统gem,无论我尝试使用何种gem组合,我都会不断收到此错误:undefinedmethod`auto_upgrade!'forDataMapper:Module(NoMethodError)这是我的.gems文件中的内容:sinatrapgdatamapperdo_postgresdm-postgres-adapter这些是我将应用程序推送到Heroku时安装的依赖项:----->Herokureceivingpush----->Si

  9. ruby - 如何在 Ruby 字符串中插入项目符号字符? - 2

    我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195

  10. ruby - 在 Rails 项目中测试本地版本的 gem - 2

    我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行​​bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正

随机推荐