缺少扩展 .so 文件

缺少扩展 .so 文件

我在 Ubuntu 11.03 上运行着一个本地服务器,其中运行着 PHP 5.3.6 和 Apache 2.2.19。我从源代码构建了 Apache 和 PHP。PHP 在 Apache 上工作正常,但它似乎从不加载任何扩展。我取消了注释我希望 PHP 加载的扩展,我检查了 PHP 是否正在读取 INI 文件,我取消了注释指令extension_dir并确保它是正确的。

这些文件mysqli.so似乎mysql.so丢失了,还有很多其他文件。这是我第一次从源代码安装 PHP。我知道 PHP 5.3.6 没有捆绑 MySQL 客户端库。

我还检查了 PHP 存储库,它不再被维护。我可以使用 PDO,但我更喜欢使用 MySQL 类。

我的问题是:我从哪里获取这些文件?我查看了 MySQL 网站,但它并没有真正帮助我。PHP 似乎只加载了已经内置在 PHP 中的扩展。

答案1

MySQL 扩展包含在单独的包中:

$ apt-cache search mysql |grep php

这是我在 debian 上所拥有的(通过 apt-get 安装后它自动运行):

plaes@machine:~$ dpkg -L php5-mysql
/.
/etc
/etc/php5
/etc/php5/conf.d
/etc/php5/conf.d/pdo_mysql.ini
/etc/php5/conf.d/mysqli.ini
/etc/php5/conf.d/mysql.ini
/usr
/usr/share
/usr/share/doc
/usr/lib
/usr/lib/php5
/usr/lib/php5/20090626
/usr/lib/php5/20090626/mysqli.so
/usr/lib/php5/20090626/pdo_mysql.so
/usr/lib/php5/20090626/mysql.so
/usr/share/doc/php5-mysql

答案2

缺少扩展 .so 文件

列出并注释掉的扩展php.ini只是示例。默认情况下,它们不会随 PHP“交付”/安装。此外,mysql.so除非您将扩展构建为“共享”扩展,否则不会有任何文件。

如果您自己编译 PHP,则需要在配置中激活扩展。运行./configure --help以获取选项。

如果您使用配置脚本更改了配置,当然需要重新进行制作(make && make install)。

configure:错误:在 /usr/share/mysql 下找不到 MySQL 头文件。

安装libmysqlclient-dev包或使用 mysqlnd:--with-mysql=mysqlnd(mysqli 和 pdo-mysql 配置参数相同)

用于dpkg -L libmysqlclient-dev查找位置并传递该位置,或者在配置参数中将路径留空。

自己编译

您似乎对自己编译代码了解不多,所以问题是您是否真的需要它。

问自己一个问题为什么你自己正在编译它。

检查它的权重,以解决不使用 Ubuntu 的库存包时遇到的问题:

  • 您需要安装所有开发包
  • 升级必须手动完成,包管理器不会为你执行此操作

相关内容