【发布时间】:2021-10-27 18:19:26
【问题描述】:
我的网站有问题。我使用 HostGator,他们在 21 年 8 月 26 日更新了 我的 .htaccess 文件并指向与以前不同的 PHP 版本 有。这也发生在一月份,但我能够恢复到该版本 我以前使用过的 php 并自己解决了这个问题。这次修复是 不工作。我的网站中两个不再工作的主要组件是:
- OAuth
- 我的 php 脚本中的以下行(我无法再发送电子邮件)
require_once "Mail.php";
OAuth 问题
早在 2015 年我最初开始使用 OAUTH 时,我只需在我的 php.ini 文件中添加以下行 extension=oauth.so
OAuth 没有被列为 HostGator 中的 php 模块之一,但情况一直如此 https://www.hostgator.com/help/article/php-modules
当我加载任何网页时,即使我已恢复到以前版本的 PHP,我也会在 error_log 中收到以下错误消息
PHP 启动:无法加载动态库 '/opt/cpanel/ea php56/root/usr/lib64/php/modules/oauth.so'
/opt/cpanel/ea-php56/root/usr/ lib64/php/modules/oauth.so:
无法打开共享对象文件:
第 0 行的 Unknown 中没有这样的文件或目录
我尝试在 cPanel 中使用“PHP PEAR Packages”来添加 OAuth。我使用了以下步骤。
- 我在查找“PHP 扩展和应用程序包”中搜索了“oauth”
- 我找到了 OAuth 1.0a 规范的“HTTP_OAuth (0.3.2)”PEAR 实现
- 我点击了“安装”
- 失败了。我得到了以下内容
警告:“pear/Console_Getopt”已被弃用,取而代之的是“pear/Console_GetoptPlus”
pear/HTTP_OAuth 可以选择使用 PHP 扩展“pecl_http”(版本 >= 1.6.0)
pear/PEAR 需要 PEAR Installer(版本 >= 1.10.1),安装版本为 1.9.5
pear/PEAR 依赖包“pear/Archive_Tar”安装的1.4.14版本不是推荐的1.4.4版本,但可能兼容,使用--force安装
pear/HTTP_OAuth 需要包“pear/PEAR”(版本 >= 1.4.0)
pear/HTTP_Request2 需要包“pear/PEAR”(版本 >= 1.9.2)
pear/Cache_Lite 需要包“pear/PEAR”(版本 >= 1.10.1)
没有找到有效的包
安装失败
然后我尝试安装 PEAR (1.10.13) PEAR Base System。我使用了以下步骤。
- 我在查找“PHP 扩展和应用程序包”中搜索了“PEAR”
- 我找到了 PEAR (1.10.13) PEAR 基础系统
- 我点击了“安装”
- 失败了。我得到了以下
警告:“pear/Console_Getopt”已被弃用,取而代之的是“pear/Console_GetoptPlus”
pear/PEAR 需要 PEAR Installer(版本 >= 1.10.1),安装版本为 1.9.5
pear/PEAR 依赖包“pear/Archive_Tar”安装的1.4.14版本不是推荐的1.4.4版本,但可能兼容,使用--force安装
没有找到有效的包
安装失败
然后我做了一些研究。我打算尝试在我的主目录的 php 文件夹中本地安装它。我使用了以下步骤。
- 我从http://pecl.php.net/package/oauth下载了“oauth-1.0.0.tgz”
- 我将“oauth-1.0.0.tgz”上传到我的主目录中的 php 文件夹(我通过检查目录中已安装的 PHP 扩展和应用程序确认了这一点)
- 然后我在 PHP PEAR Packages 中的 Install a PHP Extensions and Applications Package 中输入“oauth-1.0.0.tgz”(不带引号)并单击“立即安装”
- 失败了。我得到了以下信息:
没有可用于包“pear.php.net/oauth”的版本 - 可以使用“pecl install oauth”安装包 pecl/oauth 安装失败
此时我被卡住了。这超出了我目前的技能范围。
邮件问题
我的 php 脚本中的以下行(我无法再发送电子邮件)
require_once "Mail.php";
我在错误日志中收到以下消息
PHP 致命错误:require_once():无法打开所需的“Mail.php”(include_path='.:/opt/cpanel/ea-php56/root/usr/share/pear')
解决 OAuth 问题的方法应该与此修复类似,因为它也是一个 PEAR 模块。
【问题讨论】: