安装PDO_MYSQL遇到的问题:need re2c、 Cannot find MySQL header、php_pdo_mysql_int.h:25:19
LNMP环境搭建后总会遇到各类问题,今天在使用TP搭建网站时,出现could not find driver
错误,正是由于服务器环境没有pdo_mysql
扩展导致。安装过程遇到的问题:
安装
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xzvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
./configure --with-php-config=/usr/local/php/bin/php-config
问题 You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
解决办法:
wget http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download
tar zxf re2c-0.13.5.tar.gz && cd re2c-0.13.5
./configure
make && make install
问题安装PDO_MYSQL遇到的问题:error: Cannot find MySQL header files under
这是因为没找到mysql的安装目录,解决办法为执行以下命令:./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/data/mysql
(/data/mysql为mysql的安装目录)
编译
make
问题/php_pdo_mysql_int.h:25:19: 错误:mysql.h:没有那个文件或目录
编译中断。
make: * [pdo_mysql.lo] 错误 1
解决:
在编译时需要MySQL的头的文件,默认搜索找不到头文件的位置,需要建立个软连接:ln -s /data/mysql/include/* /usr/local/include/
继续
make install
`Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
`
编辑php.ini写入pdo_mysql.so
重启php-fpm即可
PS:问题总是太多,还好度娘渊博。
首先LAMP环境已经搭建好了,现在需要在php中加入pdo_mysql扩展
用/usr/local/php/bin/php -m
查看没有这个扩展,于是进入 ls /usr/local/src/php-5.3.28/ext/ 里面有pdo_mysql这个目录只是编译的时候没有配置 所以
命令行如下:
cd /usr/local/src/php-5.3.28/ext/pdo_mysql/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/
make && make install
vim /usr/local/php/etc/php.ini加入 extension=pdo_mysql.so
config.m4:104: warning: AC_CACHE_VAL(pdo_inc_path, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from... aclocal.m4:2754: PHP_CHECK_PDO_INCLUDES is expanded from... config.m4:104: the top level 这是autoconf版本太高造成的。 解决方法:
我的办法是安装autoconf 2.13 redhat类系统运行如下命令
yum install autoconf213.noarch
export PHP_AUTOCONF=/usr/bin/autoconf-2.13 export PHP_AUTOHEADER=/usr/bin/autoheader-2.13
mysql_query missing!?
添加:
--with-pdo-mysql=/usr/local/mysql
执行完以后,报了个错误:
checking for mysql_config... not found
configure: error: Cannot find MySQL header files under
这个错误表明系统缺省没有找到你的mysql安装目录,因此可以使用这个命令解决:
ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config
这样建立了你的实际msyql安装目录和mysql_config命令的管理