好的我在我的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目录或者它们会在哪里!
我对此非常陌生,所以任何帮助都会很棒
迪斯科
答案 0 :(得分:13)
您启用的DLL扩展实际上是针对Windows的。在Mac和其他* nix平台上,它们实际上是SO文件。
我在Mac上,看起来SQLite模块已经加载了。您应该能够在php.ini
文件中注释掉这些行,重新启动Apache并使用SQLite而无需执行任何操作。只要我记得,SQLite模块就已经包含在内了。
如果它真的没有包含在内,你必须从源代码编译模块。这需要您安装Apple Developer Tools。
从头开始(从命令行)编译:
php -v
。tar -zxvf
后跟文件名解压缩您下载的存档。cd php-5.3.x/ext/sqlite3/
(其中“5.3.x”应替换为您的版本号,“sqlite3”可以是您要从上面的列表中安装的任何模块减去“php_”前缀)。< / LI>
phpize
。./configure
。make
。sudo make install
。extension=sqlite3.so
添加到php.ini
(如果您编译其他扩展程序,请再次确保将sqlite3.so替换为其他扩展名)。最后,重新启动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