Osticket: 致命错误:在第 573 行的 include/class.mailer.php 中调用未定义的函数 _S()

创建于 2017-07-10  ·  4评论  ·  资料来源: osTicket/osTicket

先决条件

  • [ ] 你能在“开发”分支的全新安装中重现这个问题吗?
  • [x] PHP 错误日志或 javascript 控制台中是否有任何错误?
  • [x] 你查看osTicket 论坛了吗?
  • [x] 您是否进行了粗略搜索以查看是否已经报告了您的错误或增强功能?

有关如何编写好的错误报告的更多信息

描述

在全新的 osticket 安装中:

Strict Standards: Non-static method Misc::currentURL() should not be called statically in /opt/osticket/public/bootstrap.php on line 345

Notice: Undefined index: HTTPS in /opt/osticket/public/include/class.misc.php on line 148

Strict Standards: Non-static method Bootstrap::loadConfig() should not be called statically in /opt/osticket/public/main.inc.php on line 24

Notice: Constant ROOT_PATH already defined in /opt/osticket/public/include/ost-config.php on line 39

Strict Standards: Non-static method Bootstrap::i18n_prep() should not be called statically in /opt/osticket/public/main.inc.php on line 26

Deprecated: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated in /opt/osticket/public/bootstrap.php on line 289

Strict Standards: Non-static method Bootstrap::loadCode() should not be called statically in /opt/osticket/public/main.inc.php on line 27

Strict Standards: Non-static method Bootstrap::connect() should not be called statically in /opt/osticket/public/main.inc.php on line 28

Strict Standards: Non-static method Bootstrap::croak() should not be called statically in /opt/osticket/public/bootstrap.php on line 190

Strict Standards: Non-static method Mailer::sendmail() should not be called statically in /opt/osticket/public/bootstrap.php on line 295

Deprecated: Non-static method Misc::randCode() should not be called statically, assuming $this from incompatible context in /opt/osticket/public/include/class.mailer.php on line 144

Deprecated: Non-static method Crypto::random() should not be called statically, assuming $this from incompatible context in /opt/osticket/public/include/class.misc.php on line 30

Notice: Undefined index: reply-tag in /opt/osticket/public/include/class.mailer.php on line 441

Deprecated: Non-static method Format::html2text() should not be called statically, assuming $this from incompatible context in /opt/osticket/public/include/class.mailer.php on line 449

Strict Standards: Only variables should be passed by reference in /opt/osticket/public/include/html2text.php on line 64

Deprecated: Non-static method Mail::factory() should not be called statically, assuming $this from incompatible context in /opt/osticket/public/include/class.mailer.php on line 566

Fatal error: Call to undefined function _S() in /opt/osticket/public/include/class.mailer.php on line 573



重现步骤

  1. [第一步]
  2. [第二步]
  3. [等等...]

预期行为: [你预期发生的事情]

实际行为: [实际发生的事情]

版本

  • 操作系统票 1.10
  • PHP 5.6.30

更新:这似乎发生在 osTicket 无法连接到 mysql 时,它似乎会尝试发送电子邮件并且该函数使用 _S(),但是 Internationlization::bootstrap 仅在 /setup/ 期间被调用?

最有用的评论

在我的情况下,由于数据库引擎关闭而发生错误。

所有4条评论

以防万一其他人遇到这个问题......我在运行 Apache 的 CentOS 7 上遇到了这个问题 - 使用 SELinux,但是数据库在一个单独的系统上。
要测试您的问题是否与 SELinux 相关: setenforce 0并刷新浏览器。 osTicket 现在应该可以正常工作了。 如果您是这种情况,这里是解决方案。

SELinux 不允许 apache 创建网络连接,因此只需允许它们即可。

setenforce 1 # We want SELinux to remain on!
setsebool -P httpd_can_network_connect_db 1

简单

在我的情况下,由于数据库引擎关闭而发生错误。

尽管数据库已关闭,但这里的问题是由于此编译错误,db 已关闭的电子邮件通知失败。

函数_S似乎来自 il8n 模块,但是跟踪该函数是否/如何实际加载有点复杂。
https://github.com/osTicket/osTicket/blob/master/include/cli/modules/i18n.php#L628

数据库连接可能有问题! 确保您的用户拥有密码。 没有密码的 root 也可能导致此错误。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

howdu picture howdu  ·  41评论

nickmacwiz picture nickmacwiz  ·  78评论

alirezastack picture alirezastack  ·  33评论

Hannibal226 picture Hannibal226  ·  122评论

Bram0194 picture Bram0194  ·  56评论