安装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:问题总是太多,还好度娘渊博。

Tags: Linux, mysql

已有 4 条评论

  1. 首先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

  2. 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 

  3. mysql_query missing!?
    添加:
    --with-pdo-mysql=/usr/local/mysql

  4. 执行完以后,报了个错误:
    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命令的管理

添加新评论