PHP 致命错误:调用未定义函数 apache_getenv()

Posted

技术标签:

【中文标题】PHP 致命错误:调用未定义函数 apache_getenv()【英文标题】:PHP Fatal error: Call to undefined function apache_getenv() 【发布时间】:2016-02-20 00:38:39 【问题描述】:

主机:亚马逊网络服务

领域:Godaddy

SSL:Godaddy

框架:Laravel 4.2

php:PHP5.6

阿帕奇:阿帕奇 2.4.16

文件位于:/var/www/html/test

我的代码:

$api_request = 'https://'.apache_getenv("HTTP_HOST") . apache_getenv("REQUEST_URI");

错误:

好像不存在。

Laravel 应用位于:html。然后是另外两个带有 laravel 的文件夹:test 和 live。

html/ (Laravel 应用登陆页面) 应用/ 引导程序/ 包/ 公开/ 供应商/ 测试/(Laravel 应用) live/(Laravel 应用) index.php

它在 html 应用程序中正常工作。但在测试应用程序中,该功能不再存在。

【问题讨论】:

您的 Server API 是 Apache 处理程序吗? @ÁlvaroGonzález Server API Apache 2.0 Handler 使用$_SERVER有什么问题? 也许很有趣? getenv — Gets the value of an environment variable. @JonStirling 我试过了。给我未定义索引的错误HTTP_HOST 【参考方案1】:

看起来apache_getenv 在您的 php.ini 中被禁用

通过

启用它

编辑 php.ini (默认/etc/php.ini)

disable_functions 部分中删除apache_getenv

保存并退出。

重新启动 apache/php 处理程序。

【讨论】:

我应该在 php.ini 中搜索什么词? 我找到了,但它是空的 disable_functions = 没有什么可擦除的。 您使用的是共享主机环境吗?如果是,那么服务器的主 php.ini 中可能会被覆盖。 用后续问题检查我的答案。这可以帮助很多人呵呵【参考方案2】:

你可以试试

$_SERVER['HTTP_HOST'] and  $_SERVER['REQUEST_URI']

代替apache_getenv 有时apache 不允许您在未激活模块的情况下访问这些功能。

希望这会对你有所帮助。

【讨论】:

我试过了。给我未定义索引的错误HTTP_HOST 用后续问题检查我的答案。这可以帮助很多人呵呵 @MarlonBuendia - 说真的,所有症状都表明您是从命令行运行 PHP,而不是通过 Web 服务器。

以上是关于PHP 致命错误:调用未定义函数 apache_getenv()的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:调用未定义的函数 imagewebp() [关闭]

致命错误:在 PHP 中调用未定义的函数 imap_open()

PHP 致命错误:调用 Cpanel 上未定义的函数 json_decode()

php:致命错误:调用未定义函数 sqlsrv_connect()

PHP 致命错误:调用未定义函数 apache_getenv()

PHP 致命错误:未捕获的错误:使用 Laravel 5.8 和 PHP 7.4 调用未定义函数 Whoops\Exception\xdebug_is_enabled()