win7配置Apache+php+mysql

PHP :Call to undefined function mysql_connect()  


今天配置apache ,php,mysql 的时候,一直报(Call to undefined function mysql_connect()),PHP一直连接不上数据库,从网上查,答案也都是千篇一律。后来经过慢慢调试总的来说从以下几个方面来查
1:php.ini配置文件中 extension_dir 前面分好去掉,同时把目录指向php的ext目录
     如:extension_dir = "D:/shenghuo/php/ext"
2:php.ini中 以下几项的分号去掉
     extension=php_mysql.dll
     extension=php_mysqli.dll
     extension=php_gd2.dll
3:把php5ts.dll拷贝到system32目录下
4:从mysql的安装目录下找到libmySQL.dll拷贝到system32以及php安装根目录和根目录/ext 下(记住是从mysql的安装目录找该dll而不是
      php 的安装根目录)
5:指定httpd.conf中的PHPIniDir参数
      如:PHPIniDir "D:/shenghuo/php/php.ini"  (需要要指定php.ini的绝对路径)



在自定义配置PHP+MySQL时,如果没有配置成功,在连接Mysql时会报错:


Fatal error: Call to undefined function mysql_connect() inC:\myenv\apache\htdocs\test.php on line2



搭建过程参看Blog:

http://blog.csdn.net/php1923880282/article/details/8581505


我实在Windows2003环境中

win7配置Apache+php+mysql_第1张图片

遇到这样的问题,不要盲目地去网上搜索各种解决方案来尝试;

因为各个环境都是很复杂的,导致这个错误的原因也都不尽相同,最后能试的你头晕脑花都解决不了


我们要找到自己的问题的根源,对症下药,这样解决了问题后方能增强我们对这个环境的理解

这不正是我们自己“找麻烦”来自定义搭建环境的初衷吗?

如果一知半解,还不如直接去用泰国老的Appserv 或者WAMP呢


首先,PHP要想处理Mysql,我们知道在PHP方面要做的是


[plain]  view plain  copy
 print ?
  1. 启用mysql功能,在php.ini中  
  2. extension=php_mysql.dll  
  3. extension=php_mysqli.dll  

开启后请重启 Apache服务,再测试

如果还是不行

那就说明在Apache加载Httpd.conf 的过程中没有加载成功php.ini 中的这2句话

不信去看,phpinfo( )

搜索一下Mysql字眼,除了mysqlld 的项目,根本找不到 mysql  和 mysqli 这两个东东


原因有两方面:

1,php.ini 中 extension_dir 没有配置好

2,php.ini 没有正常加载


解决第一个问题只需要如下图操作:

win7配置Apache+php+mysql_第2张图片


第二个问题我们从 phpinfo( ) 中就可以看出

win7配置Apache+php+mysql_第3张图片


因此我们要确保的是:

在 httpd.conf 中

[plain]  view plain  copy
 print ?
  1. LoadModule php5_module C:/myenv/php/php5apache2_2.dll  
  2. PHPIniDir "C:/myenv/php"  
  3. AddType application/x-httpd-php .php .phtml  

小结一下:

1,确保在php.ini 中加载了 2个 DLL

2,确保在php.ini 中配置了正确的 extension_dir = "C:/myenv/php/ext/"  这个路径是 ./php/ext  

3,确保在 httpd.conf 中配置了正确的 PHPIniDir "C:/myenv/php"  这个路径是 ./php




如果小结2中,配置成了  C:/myenv/php/

则在 重启动 Apache的会报错并且无法成功加载2个DLL:

win7配置Apache+php+mysql_第4张图片


如果小结3中,配置成了 C:/myenv/php/ext  (这样就不会报找不到 php_mysql.dll模块 的错误)

那么整个 php.ini 都无法加载到,具体可看本文中phpinfo( )的那张图片中 批注。



关于网上各种解决方法,这里也作一个汇总仅供参考,但是我真心没有用下面的任何一条来解决问题,应该是环境不一样吧:


1、把 ../mysql/bin/libmySQL.dll  拷贝到 php 下面,还有拷贝到 php/ext 目录下

2、将 libmySQL.dll  php5ts.dll 两个文件拷贝到  windows/system32 下

3、将 php根目录下面的 php.ini拷贝到 windows目录下,(前提是php.ini必须是配置好的)

4、说需要把libMysql.dll文件拷贝到c:\windows\system32下面,如果在系统环境变量里设置好path的话,就不需要这步操作了。



apache+php+mysql+phpmyadmin 自定义安装配置环境

准备软件:

win7配置Apache+php+mysql_第5张图片


建议:

安装的时候安装到同一文件夹,利用管理

文件夹不要中文名

安装完一个测试一个

win7配置Apache+php+mysql_第6张图片


1.      apache

参看:

完后 http://locahost

注意:

由于我是在虚拟机中安装,会发现80端口已经不能使用;

因此安装完成后需要到httpd.conf中修改端口

#Listen 12.34.56.78:80
Listen 81


2.     php

下载 php 核心包(用于支持php开发 )

VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。
VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。
那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9版本;
Non Thread Safe就是非线程安全;
Thread Safe 是线程安全;


官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用

php 核心包的安装就是解压


3.      如何将apache 和php 整合


也即是说,怎样才能让apache处理php


1,在apache 的conf目录下 的 httpd.conf加入如下代码:

LoadModule php5_module ~php安装路径/php5apache2_2.dll
PHPIniDir “~php安装路径"

AddType application/x-httpd-php .php .phtml

把红色的部分,改成实际php 安装的路径(如: C:/myenv/php5.3.5/)即可


LoadModule php5_module C:/myenv/php/php5apache2_2.dll
PHPIniDir "C:/myenv/php"
AddType application/x-httpd-php .php .phtml


win7配置Apache+php+mysql_第7张图片

2,把 php.ini-development 文件 改成  php.ini 

3,在php.ini中可以指定对应的功能模块

extension=php_mysql.dll
extension=php_mysqli.dll


4,在php.ini 指定php的扩展库路径

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "C:/myenv/php/ext/"


测试看看apache和php是否整合成功


win7配置Apache+php+mysql_第8张图片


重新启动 http://localhost/test.php

多么可笑的错误!


      phpinfo();

?>



4.  安装MySQL数据库


首先要获取资源,http://www.mysql.com


win7配置Apache+php+mysql_第9张图片


小提示:

1,下载的时候不用去理会注册,登录,直接点击左下角链接即可

2,我们要的是MySQL Installer(Windows),不要选成 MySQL Community Server 了

win7配置Apache+php+mysql_第10张图片


安装的过程需要提示一下两点:

在运行 mysql-installer-community-5.6.10.0.msi 之前可能环境需要安装  .net Framework 4.0

在运行 .net FM4.0之前 可能还需要安装一个很小的 WIC 软件

win7配置Apache+php+mysql_第11张图片



开始安装:


win7配置Apache+php+mysql_第12张图片

win7配置Apache+php+mysql_第13张图片


win7配置Apache+php+mysql_第14张图片


win7配置Apache+php+mysql_第15张图片


win7配置Apache+php+mysql_第16张图片


win7配置Apache+php+mysql_第17张图片


测试mysql是否可以用
1.      写一段php 代码来测试是否成功!
//目前你看不懂,没关系
      
      $conn=mysql_connect("localhost","root","root");
       if($conn){
       echo "连接mysql数据库ok";
       }else{
              echo "连接数据库失败";
       }
?>


当我们没有对php进行正确配置的时候,会报
Fatal error: Call to undefined function mysql_connect() in C:\myenv\apache\htdocs\test.php on line 2
原因: 目前没有启用mysql功能,在php.ini中
extension=php_mysql.dll
extension=php_mysqli.dll


如果开启了这两个DLL,还是报同样的错误

请参看blog:

http://blog.csdn.net/php1923880282/article/details/8582829


2.      安装一个phpmyadmin(该网站实际可以更好的管理mysql)来看看是否可以使用
把该压缩包直接解压到htdocs目录, 然后可以直接访问
http://localhost/phpMyAdmin/index.php 即可.




你可能感兴趣的:(安装工具及环境配置)