PHP警告:无法加载动态库

时间:2011-06-29 15:50:31

标签: php apache sqlite apache2 php-extension

好的我在我的mac os x Apache 2服务器上运行PHP。 我遇到的问题是它似乎无法找到允许我连接到sqlite数据库的扩展。

extension = php_sqlite.dll
extension = php_pdo_sqlite.dll
extension = php_sqlite3.dll

我现在因为我已取消注释这些扩展程序而收到此错误..

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/php_sqlite3.dll' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/php_sqlite3.dll, 9): image not found in Unknown on line 0

所有3都是同样的错误。
现在我已经在互联网上的不同地方阅读过它们可能没有安装在我的Mac上,但我找不到PHP目录或者它们会在哪里! 我对此非常陌生,所以任何帮助都会很棒 迪斯科

3 个答案:

答案 0 :(得分:13)

您启用的DLL扩展实际上是针对Windows的。在Mac和其他* nix平台上,它们实际上是SO文件。

我在Mac上,看起来SQLite模块已经加载了。您应该能够在php.ini文件中注释掉这些行,重新启动Apache并使用SQLite而无需执行任何操作。只要我记得,SQLite模块就已经包含在内了。

如果它真的没有包含在内,你必须从源代码编译模块。这需要您安装Apple Developer Tools

从头开始(从命令行)编译:

  1. Download the PHP's source code。您需要下载与您系统上已安装的版本匹配的版本。要找出您正在使用的那个,请从命令行键入php -v
  2. 使用tar -zxvf后跟文件名解压缩您下载的存档。
  3. 键入cd php-5.3.x/ext/sqlite3/(其中“5.3.x”应替换为您的版本号,“sqlite3”可以是您要从上面的列表中安装的任何模块减去“php_”前缀)。< / LI>
  4. 输入phpize
  5. 输入./configure
  6. 输入make
  7. 输入sudo make install
  8. extension=sqlite3.so添加到php.ini(如果您编译其他扩展程序,请再次确保将sqlite3.so替换为其他扩展名)。
  9. 最后,重新启动Apache,你应该完成。

答案 1 :(得分:0)

打开php.ini。查找定义扩展位置的行。在我的情况下(Windows机器),它是这样的:

extension_dir = "C:\xampp\php\ext"

这为您提供了所有扩展程序所在的位置。打开它,检查你的SQLite扩展是否确实存在。

另外,请确保您的扩展程序实际上适用于Mac计算机。他们的文件扩展名应为“dylib”或“so”(不确定 - 我没有Mac),而“dll”是Windows特定的动态库文件扩展名(AFAIK)。

答案 2 :(得分:0)

尝试删除然后重新安装软件包:

brew rm mcrypt
brew install mcrypt