【问题标题】:PHP Configuration : PDO extension is enabled but not loadingPHP 配置:PDO 扩展已启用但未加载
【发布时间】:2012-11-18 10:02:24
【问题描述】:

我使用的是 Windows 7,wamp 服务器版本 2.2,PHP 版本 5.2.9。当我尝试在本地主机上运行我的 magento 网站时,它给了我以下错误:

“此适配器需要 PDO 扩展,但未加载扩展”

我仔细检查了 php.ini 文件中是否启用了 PDO 扩展。

;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

还有加载正确的 php.ini 文件的 phpinfo。它早些时候工作,但突然开始给出错误。我还检查了 Apche 错误日志,但没有找到任何线索。

请提出建议。

【问题讨论】:

  • phpinfo() 是否列出了 PDO 扩展?
  • php扩展目录是否有相关扩展.dll文件?
  • 这是一个 Zend 框架错误,与 Magento 无关!它抛出“Zend_Db_Adapter_Exception”消息,检查 PDO 扩展的可用性。另外,请确定使用哪个版本的 PHP,线程或非线程!
  • @Botond : phpinfo 没有列出 PDO 扩展。
  • @LoVeSmItH: 以下路径在 php.ini 中给出;可加载扩展(模块)所在的目录。 extension_dir = "E:/wamp/bin/php/php5.2.9-2/ext/" 我已经检查了文件夹和 dll 都放在那里。

标签: php apache magento wamp


【解决方案1】:
  • 首先将扩展目录移动到\Windows\System32\inetsrv{php}\extension
  • 更改 php.ini 文件的路径

我认为您在加载 .dll 时遇到了安全问题!试试这个,让我知道结果。


要找出加载了哪个 php.ini 文件,请尝试以下操作(在命令行和网络服务器中运行以确保哪个版本加载了不同的环境)。

检查 php.ini 文件路径:

<?php
    $path = php_ini_loaded_file();
    echo 'The loaded file path is :' . $path;
?>

【讨论】:

  • 我已将扩展移动到以下目录:C:\Windows\System32\inetsrv\php5.2.9-2\ext 并更改了 php.ini 中的路径,但仍然无法正常工作。跨度>
  • @MubashirQayyum 在 Wamp 服务器中有多少 php.ini 文件可用?只需在我的答案中尝试上面的代码。检查并告诉我。
  • @OğuzÇelikdemir 非常感谢您的反馈。我已经运行了你的代码并得到了这个:“加载的文件路径是:E:\wamp\bin\apache\Apache2.2.21\bin\php.ini”我确信我已经改变了这个特定的路径php.ini 文件。
  • @MubashirQayyum 亲爱的兄弟,我们还有一个问题,可能是 .dll 损坏或配置错误。我的建议是使用 Zend Server 社区版而不是 WAMP,总比没有好!
  • @OğuzÇelikdemir 谢谢兄弟!你说的对。 dll 已损坏。我已经重新安装了 wamp 服务器。再次,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
相关资源
最近更新 更多