本帖最后由 wcjwhl 于 2015-7-24 20:08 编辑
由于用了thinkphp的最新版本,而服务器刚好用的wdcp配置升级的php5.3.17,结果发现默认没有配置pdo_mysql,出现错误:
Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
于是如下解决:(耽误下班啊)
编译安装操作就是要在编译的源文件下使用phpize来./configure和make
先通过phpinfo查看一些必要的信息
确认了pdo_mysql在phpinfo里面没有,确实需要安装
1.找到编译需要的文件: 方法一: 安装好wdlinux并且升级到php5.3.17后,找到php的源码包所在位置,因为每个人下载的位置不同,需要自行查找,可以使用find搜索 比如我的: /software/php-5.3.17/ext/pdo_mysql,进入此源码包下pdo_mysql扩展的文件夹
方法二: 重新在网上下载了新的pdo_mysql mkdir tmp_pdo_mysql cd tmp_pdo_mysql wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz tar zxvfPDO_MYSQL-1.0.2.tgz cd PDO_MYSQL-1.0.2
2.进入到pdo的文件夹后,执行phpize 配置和编译文件 找到phpize的路径,wdcp的一般应该是:/www/wdlinux/apache_php-5.3.17/bin/phpize,具体可以通过phpinfo里面查看,phpinfo第三行“ConfigureCommand”里面就有记录,比如:“'./configure''--prefix=/www/wdlinux/apache_php-5.3.17'”,那么phpize就应该在/www/wdlinux/apache_php-5.3.17/里面,通过find查找可以再确认下,输入如下命令
/www/wdlinux/apache_php-5.3.17/bin/phpize
运行后得到: Configuring for:PHP Version:20090626... 类似信息表示成功,否则会报错。
常见错误:Cannot findconfig.m4 出现这个错误的原因是需要cd进入扩展的文件夹再运行phpize(也就是前面说的第1步)。
成功后输入参数: ./configure --with-php-config=/www/wdlinux/apache_php-5.3.17/bin/php-config --with-pdo-mysql=/www/wdlinux/mysql/bin/mysql_config
解释一下
./configure --with-php-config=php-config地址 --with-安装的扩展=mysql_config地址
make make install
分别运行,中途无报错就OK了
3.修改php.ini文件 然后打开 php.ini文件, 并添加一行 extension=pdo_mysql.so
4.重启web服务 service http drestart
5.phpinfo查看是否安装成功 看到“pdo_mysql”恭喜成功了 |