Php 如何在cPanel管理的服务器上安装MySQLi?

Php 如何在cPanel管理的服务器上安装MySQLi?,php,mysqli,cpanel,Php,Mysqli,Cpanel,我有一个在过去几年中编写的现有web应用程序。我选择mysqli作为访问MySQL数据库的方法。那很好。我的问题是,我正在部署到第三方web主机服务器—WHM/cPanel—并且找不到在该服务器上安装mysqli的方法。我已经尝试了太多的东西在这里列出-包括一切我可以在这个网站上找到。 此服务器使用yum。它有PHP5.4-MySQL 5.5当我在上面运行phpinfo时,有一个MySQL部分,但没有MySQLi部分。我的代码因“未找到mysqli类”错误而崩溃。 PHP.net上的文档说明,从

我有一个在过去几年中编写的现有web应用程序。我选择mysqli作为访问MySQL数据库的方法。那很好。我的问题是,我正在部署到第三方web主机服务器—WHM/cPanel—并且找不到在该服务器上安装mysqli的方法。我已经尝试了太多的东西在这里列出-包括一切我可以在这个网站上找到。 此服务器使用yum。它有PHP5.4-MySQL 5.5当我在上面运行phpinfo时,有一个MySQL部分,但没有MySQLi部分。我的代码因“未找到mysqli类”错误而崩溃。 PHP.net上的文档说明,从PHP5.0开始,mysqli已包含在标准发行版中。我知道有一个事实已经不复存在了——我用Ubuntu构建的最后3台机器上没有mysqli,我必须使用apt get install php5 mysqlnd查找/安装它,我在这台服务器上找不到mysqli的软件包。
重写所有SQL以使用本机驱动程序将不是一项简单的任务。我宁愿避免那样。任何想法都将不胜感激。

您正在服务器上使用cPanel控制面板,因此您需要通过WHM>>软件>>EasyApache(Apache更新)在服务器上启用此mysqli

或者,您也可以使用以下命令通过命令行执行相同的操作

/scripts/easyapache

我自己问题的答案是:WHM-->软件-->EasyApache

我的当前配置显示在顶部并已选中(单选按钮)。我编辑了它,并选择了详尽的选项列表。我能够选择几个项目,包括mysqli、mbstring、json、mcrypt、XML、date、openssl、sockets、soap、xmlwriter。。。很难相信有这么多人失踪了许多是我的下一个问题,我只是还没有发现

EasyApache为我重新编译了apache/php,并自动重启了apache。MySQLi现在与我选择的其他元素一起被包括在内

为了进一步配置PHP,我必须使用phpinfo找到它正在加载的PHP.ini文件,并将其作为root(sudo)进行编辑。有一个设施位于

WHM-->服务配置-->PHP配置编辑器

可以使用,但不太可能使用此页面提供所有选项。另外:请参见下面的注释:我必须手动编辑php.ini来配置新内容


我还想指出,还有一些本应添加到php.ini文件中但未添加的附加部分。应该有一个部分来配置mysqli(与mysql[native driver]分开)、mbstring、soap等。在运行EasyApache更新php之后,我的服务器上的php.ini文件中没有这些内容。我必须编辑php.ini文件并为它们添加部分,然后重新启动apache。仅供参考

最近几次ubuntus使用的是mariadb,而不是mysql。您不必重写任何内容或失去冷静,您需要做的是使用
——mysqli
选项重新编译PHP。老实说,这样做比从软件包安装要简单。我不知道你的软件包安装失败的原因,我很确定你错过了什么,但是不要惊慌,自己配置东西,点击
make
命令并放松。软件包安装没有失败-我不知道要安装什么软件包我看不到连接。我导航到EasyPache网页,它让我可以在Apache2.2/PHP5.4/MPM PreFork或Apache2.4/PHP5.4/MPM PreFork之间进行选择—安装Apache2.4而不是Apache2.2会带来什么变化?在这个页面上,我唯一能做的就是选择一个选项(单选按钮)并单击build,然后用我现在拥有的同样的东西重新编译apache和php。我假设,如果这不是一个第三方托管站点,我将能够使用这个工具以某种方式配置PHP?鉴于这个设施似乎毫无用处,还有其他选择吗?我找到了。我确实有能力定制它,并发现有能力选择MySQLi。我以前被指到过这个设施,但似乎我所能做的就是在一个预装配配置列表中进行选择,这些配置都不符合我的要求。我终于找到了点击小轮图像并得到一个页面菜单系统,它允许我定制apache/PHP软件的每个元素。我需要研究这些选项,我对所有这些都不熟悉。但这绝对是正确的地方。我可能会有一些问题,但现在谢谢你。