在 Heroku Scheduler 中找不到 mysqli(但可以在网站上使用)

标签 mysql heroku

我正在尝试执行:

heroku run ./php/bin/php www/scheduled.php

但我收到错误:

PHP Fatal error: Class 'mysqli' not found in /app/www/scheduled.php on line 17

mysqli 在直接在浏览器中访问页面时起作用。

我已按照以下说明设置了 Heroku 应用程序:https://gist.github.com/danielepolencic/6983030

建议在根目录添加一个包含以下内容的 php.ini 文件:

extension_dir = "/app/www/ext/"

extension=mysqli.so

也许这个文件不在调度程序中?

我应该怎么做才能解决我的问题?

谢谢

最佳答案

您不再需要任何这些自定义说明。 Heroku 几个月前就已经提供了新的、重建的 PHP 支持版本。运行 heroku config:unset BUILDPACK_URL 以停止使用多重包并获取最新版本。

删除 Procfilephp.iniext/ 文件夹和 .buildpacks

接下来,创建一个 composer.json 以启用 ext/gettext(ext/mysqli 默认情况下处于启用状态):

{
  "require": {
    "ext-gettext": "*"
  }
}

那么你应该可以开始了。要运行计划的进程,只需执行 heroku run php Scheduled.php (应用程序内容在推送时不再移动到 www/ 子目录)。

参见https://devcenter.heroku.com/categories/php对于所有文档;具体来说,https://devcenter.heroku.com/articles/php-support关于扩展、版本等。

关于在 Heroku Scheduler 中找不到 mysqli(但可以在网站上使用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25298693/

相关文章:

ruby-on-rails - Heroku Postgresql 抛出 PG::DiskFull

php - 具有多个字段的 MySql Distinct

mysql - 后备排序

mysql外键约束格式错误

ruby-on-rails-3 - Heroku REST API - 有吗?

php - Heroku - 如何在 heroku php 应用程序上启用 gd?

python - 在 Heroku 上运行 Telethon

javascript - 如何让 Codeship 通过 Heroku 上的 NodeJS ExpressJS 部署的 check_url 阶段?

php - 使用多个动态复选框更新多个数据库行

php - while-list 给出奇怪的值