【问题标题】:Installing MySQLi with Apache 2 and PHP 5.5使用 Apache 2 和 PHP 5.5 安装 MySQLi
【发布时间】:2015-03-09 19:13:43
【问题描述】:

我真的被困在这个我一直在寻找几个小时...

我最近在我的网站的远程 Ubuntu 机器上安装了一个 Apache 服务器,我想开始使用 PHP 和 MySQL。 MySQL 已安装并正在运行。 PHP 安装得很好,可以,但我不知道如何启用 MySQL 扩展。我已经完成了sudo apt-get install php5-mysql 和/或sudo apt-get install php5-mysqlnd,但至少根据我的Apache 服务器,它们似乎都没有实际安装任何东西。当我运行php -m 时,我看到了 mysql、mysqli 和 mysqlnd。我还尝试取消注释用于在 Apache php.ini 文件中加载扩展的行,但默认扩展目录中不存在 mysql.somysqli.so 或任何内容。还有另一个 PHP 扩展目录,其中包含这些文件,但是当我尝试将我的 Apache 服务器指向该扩展目录时,我收到错误消息:

/usr/local/lib/php/extensions/no-debug-zts-20131226/mysqli.so: undefined symbol: core_globals in Unknown on line 0

到目前为止,我已经尝试了所有我所看到的,但没有任何效果。这个错误是我得到的最接近的错误。任何帮助表示赞赏。

这也是我的phpinfo() 输出:http://pastebin.com/VM8kyrKV

当我运行sudo apt-get install php5-mysqlnd 时,我也得到了这个:

php5_invoke: Enable module mysqlnd for cli SAPI
php5_invoke: Enable module mysqlnd for apache2 SAPI
php5_invoke: Enable module mysql for cli SAPI
php5_invoke: Enable module mysql for apache2 SAPI
php5_invoke: Enable module mysqli for cli SAPI
php5_invoke: Enable module mysqli for apache2 SAPI
php5_invoke: Enable module pdo_mysql for cli SAPI
php5_invoke: Enable module pdo_mysql for apache2 SAPI
看起来不错,但它仍然无法正常工作......除了 CLI PHP 的文件之外,我在任何地方都找不到任何 mysql 模块文件。

编辑: 长话短说,不要编译自己的二进制文件...我重新开始只使用apt-get 安装东西,一切正常。

【问题讨论】:

    标签: php mysql apache ubuntu mysqli


    【解决方案1】:

    我已经完成了 sudo apt-get install php5-mysql 和/或 sudo apt-get install php5-mysqlnd 但这些似乎都没有实际安装任何东西,至少根据我的 Apache 服务器。

    phpinfo() 的输出显示 mysql 和 mysqlnd 模块都处于活动状态。这表明安装成功,您只需取消注释该行即可加载 mysqli.so。确保您正在编辑 Apache 实例的文件(/etc/php5/apache2/php.ini,如果我没记错的话)而不是 CLI 实例。当然不要忘记在任何更改后重新启动服务!

    【讨论】:

    • 我认为这不是正确的文件。我一直在编辑的导致 Apache 在加载 PHP 时出错的 ini 文件位于 /usr/local/lib/php.ini 中。我很确定这是正确的文件,因为当我更改它时,我的 Apache 输出会更改。但是它正在寻找扩展的地方没有mysqli.so 文件。我在任何地方都能找到的唯一mysqli.so 文件是/usr/lib/php5/20121212/mysqli.so,将php.ini 指向该文件只会给出我在OP 中提到的未定义符号错误。
    • 我上面提到的文件是基于包的安装的正确文件。你的问题表明这就是你正在使用的。但是,如果您使用的是 /usr/local,那么系统的某些元素必须是手动编译的。如果是这种情况,您将需要停止使用 apt-get 并继续自己构建东西。您必须选择一种策略或另一种策略,混合使用是不明智的;当然不会像 Apache 和 PHP 那样紧密集成。
    • 是的,我最终意识到了这一点......我最终只是擦拭了我的盒子,因为它太乱了,并且只使用 apt-get 重新开始。现在就像一个魅力!
    猜你喜欢
    • 2014-02-18
    • 2013-12-25
    • 1970-01-01
    • 2014-04-26
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2012-06-11
    相关资源
    最近更新 更多