当前位置: 首页 > 知识库问答 >
问题:

为Heroku PHP应用程序更改文档根

吕淮晨
2023-03-14

我正在创建一个Yii 2应用程序,并在Heroku上尝试

文档根应该是该应用程序的web/文件夹

这就是我尝试过的:

  • 在该应用程序的根中创建Procfile
web:    sh www/config/web-boot.sh
  • 在配置文件夹中创建web-boot.sh
    echo "Include /app/www/config/httpd/*.conf" >> /app/apache/conf/httpd.conf
    touch /app/apache/logs/error_log
    touch /app/apache/logs/access_log
    tail -F /app/apache/logs/error_log &
    tail -F /app/apache/logs/access_log &
    export LD_LIBRARY_PATH=/app/php/ext
    export PHP_INI_SCAN_DIR=/app/www
    echo "Launching apache"
    exec /app/apache/bin/httpd -DNO_DETACH
  • 在config文件夹中,我创建了“httpd”文件夹,并在该文件夹中创建了“default.conf”
DocumentRoot "/app/www/web"
<Directory "/app/www/web">
         Options Indexes FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
</Directory>

当我部署应用程序时,会出现以下错误:


An error occurred in the application and your page could not be served. Please try again in a few moments.

If you are the application owner, check your logs for details.

当我检查日志时:

2014-07-12T20:23:08.476411+00:00 heroku[web.1]: State changed from starting to crashed
2014-07-12T20:23:06.313554+00:00 heroku[web.1]: Starting process with command `sh www/config/web-boot.sh`
2014-07-12T20:23:08.465571+00:00 heroku[web.1]: Process exited with status 2
2014-07-12T20:23:10.025168+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=richy-rich.herokuapp.com request_id=e4bb1124-5f2d-4a27-8df4-6fff9bc166b2 fwd="50.19.158.232" dyno= connect= service= status=503 bytes=
2014-07-12T20:41:49.308914+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=richy-rich.herokuapp.com request_id=5785ac83-c4fb-473e-b794-50ce491512c9 fwd="223.255.224.107" dyno= connect= service= status=503 bytes=

如何解决这个问题?我一点也不懂那个文件,谢谢

使现代化

现在我尝试了另一种解决方案,我将这个包添加到我的composer中。json

heroku/heroku-buildpack-php

并将程序文件更改为:

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

这一次我得到了这个错误:

2014-07-12T21:12:58.960392+00:00 app[web.1]: This program requires PHP 5.5.11 or newer; check your 'php' command.
2014-07-12T21:13:00.147518+00:00 heroku[web.1]: State changed from starting to crashed
2014-07-12T21:12:58.044158+00:00 heroku[web.1]: Starting process with command `vendor/bin/heroku-php-apache2 web/`
2014-07-12T21:13:00.136787+00:00 heroku[web.1]: Process exited with status 1
2014-07-12T21:13:08.648874+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=richy-rich.herokuapp.com request_id=a3bcc52d-2a7c-45ac-b21d-f856154d7e38 fwd="223.255.224.107" dyno= connect= service= status=503 bytes=

这似乎是因为我的PHP版本,因为heroku安装的版本是5.5。10,因此我尝试将composer php版本更新为“

Problem 1
           - The requested package php could not be found in any version, there may be a typo in the package name.
         Problem 2
           - The requested package php could not be found in any version, there may be a typo in the package name.
         Problem 3
           - Installation request for cebe/markdown 0.9.x-dev -> satisfiable by cebe/markdown[0.9.x-dev].
           - cebe/markdown 0.9.x-dev requires php >=5.4.0 -> no matching package found.
         Problem 4
           - Installation request for ezyang/htmlpurifier v4.6.0 -> satisfiable by ezyang/htmlpurifier[v4.6.0].
           - ezyang/htmlpurifier v4.6.0 requires php >=5.2 -> no matching package found.
         Problem 5
           - Installation request for swiftmailer/swiftmailer 5.2.x-dev -> satisfiable by swiftmailer/swiftmailer[5.2.x-dev].
           - swiftmailer/swiftmailer 5.2.x-dev requires php >=5.2.4 -> no matching package found.
         Problem 6
           - Installation request for swiftmailer/swiftmailer dev-master -> satisfiable by swiftmailer/swiftmailer[dev-master].
           - swiftmailer/swiftmailer dev-master requires php >=5.2.4 -> no matching package found.
         Problem 7
           - Installation request for yiisoft/yii2 2.0.0-beta -> satisfiable by yiisoft/yii2[2.0.0-beta].
           - yiisoft/yii2 2.0.0-beta requires php >=5.4.0 -> no matching package found.
         Problem 8
           - yiisoft/yii2 2.0.0-beta requires php >=5.4.0 -> no matching package found.
           - yiisoft/yii2-swiftmailer 2.0.0-beta requires yiisoft/yii2 * -> satisfiable by yiisoft/yii2[2.0.0-beta].
           - Installation request for yiisoft/yii2-swiftmailer 2.0.0-beta -> satisfiable by yiisoft/yii2-swiftmailer[2.0.0-beta].

请帮助我,谢谢

共有1个答案

孟茂
2023-03-14

看起来您使用的不是官方的buildpack,而是某种第三方的(检查heroku config并查找buildpack\u URL)。

与维护人员一起整理,或者更好,使用Heroku的官方PHP支持(Heroku config:unset BUILDPACK\u URL并推动更改)。然后您的Procfile就可以工作了(但是您需要删除composer.json中的heroku/heroku buildpack php依赖项,或者将其移动到require dev)。

 类似资料:
  • 问题内容: 我从url下载视频文件,并使用以下路径将其保存在文档目录中: 我的视频已下载并成功播放。但是有一个问题,当我在Xcode中重建应用程序并尝试播放我下载的最后一个视频时,视频不会显示,而当我下载一个新视频时,此保存成功地播放了。 我看过每个视频包的路径,它们是不同的。 1-文件:/// Users / myMac / Library / Developer / CoreSimulator

  • 我从url下载视频文件,并将其保存在document目录中,路径如下: 我的视频下载并成功播放。但有一个问题,当我重建应用程序在Xcode和尝试播放我下载的最后一个视频时,视频不显示,而当我下载一个新的视频,这保存和播放成功。 我看过每个视频捆绑路径,它们是不同的。 1-文件:///users/mymac/library/developer/coresimulator/devices/eac2f4

  • 如果<code>targetSdkVersion 我的应用程序< code>targetSdkVersion是27版本,我运行在< code>8.0.0[26]设备上。我得到了下面链接中描述的< code > IllegalStateException ,因为我使用了一个对话框< code>Activity。 只有全屏不透明的活动才能请求方向 有两个建议的选项。从中删除或将更改为26。这两个解决方

  • 问题内容: 我曾经运行过Flask应用。如果将变量更改为,则Gunicorn给出错误。为什么会出现此错误,我该如何解决? myproject.py: wsgi.py: 问题答案: Gunicorn(和大多数WSGI服务器)默认在你指向的模块中查找可调用的名称。添加别名或将使再次发现可调用对象。 但是,wsgi.py不需要文件或别名,Gunicorn可以直接指向实际模块并可以调用。 Gunicorn

  • 我刚刚完成了我的第一个android应用程序,并生成了一个apk文件在我的手机上测试。然后我意识到我在制作项目时留下了默认的“My Application”名称。所以安装的应用程序名为“我的应用程序”。如何更改应用程序的名称?

  • 以前,我的应用程序根本不使用AppCompat,但现在我需要它,因为有几个库需要它。问题是,在我开始使用AppCompat之后,一些(和)不会显示: 所改变的是,我现在使用v7支持库中的(而不是)和(而不是)。 布局的hieararchy如下: 我知道这很复杂,但这是我能够实现我想要的唯一方法。(使用前台FrameLayout,这样当特定的弹出对话框打开时,我就可以调暗应用程序的其余部分。网格是通