phpinfo() 没有加载显示mysql只有myslnd的解决方案

来源:互联网 发布:人工智能产品设计 编辑:程序博客网 时间:2024/05/21 07:57
在window环境下搭建我的php(5.6)+nginx+mysql环境(独立安装)。
搭建完毕后尝试在php中使用mysql,但是在调用mysql_connect()函数时,一直报错显示该函数未定义。
然后打印phpinfo(),发现缺少了mysql,在php.ini里将mysql扩展打开后,还是没有,只有mysqlnd。
然后各种谷歌,尝试各种解决方案也没有,最普遍的说法是说在window目录下放入一个dll文件,也是解决不了,话说也没人解释下为什么要放在那里。
    然后偶然注意到在phpinfo打印出出来的内容有两个参数:
Configuration File (php.ini) PathC:\WINDOWSLoaded Configuration Filenone以及在php.ini的开头部分有个注释写着:
; 6. The directory from the --with-config-file-path compile time option, or the
; Windows directory (C:\windows or C:\winnt)

查找了一下这方面的资料,原来加载php.ini文件顺序是:如果在Loaded Configuration File目录找不到php.ini文件,就会默认加载Configuration File (php.ini) Path这里的配置默认信息(不知道这是不是大家说要把扩展文件放这里的原因)。所以一旦Loaded Configuration File这里为none时,不管你怎么修改那个配置文件,都是不起作用的。那么现就就要找出为什么不能加载到php.ini的原因了。
下面是我的php.ini的目录 以及启动php.cgi:
RunHiddenConsole.exe  D:\Program Files (x86)\anmp\php56\php-cgi.exe -b 127.0.0.1:9000 -c D:\Program Files (x86)\anmp\php56\php.ini
其实php-cgi.exe可以启动起来。有可能是加载php.ini那句没起作用。路径应该没错。
谷歌不到的情况下我去下载了一个xampp的集成环境。打开mysql扩展,然后打印phpinfo,是有mysql扩展的。然后将xampp的php整个文件夹放到自主安装的anmp目录下,启动服务。发现还是为none,没有mysql信息。
于是开始猜测是否有可能目录命名有问题:Program Files (x86)
于是将整个anmp提到D盘目录下,就成了:  D:\anmp
再次启动服务,打印phpinfo,此时就发现有值了:
Loaded Configuration FileD:\anmp\php56\php.inimysql的信息也有了。
所以整个问题的解决思路我想应该可以归纳到两点:
一是Loaded Configuration File 的路径是否正确
二是看php.ini的mysql相关扩展是否有打开,dll是否缺少。
0 0
原创粉丝点击