首页 新闻 会员 周边

centos 6.5下编译安装php5.6,pdo_mysql问题。

0
悬赏园豆:5 [待解决问题]

折腾了两天,phpinfo()死活不支持pdo_mysql。我试了集中方法都不行:

一、编译php时候加:--with-pdo-mysql --with-mysql-sock=/usr/local/mysql/mysql.sock这种方法据说编译完php之后,就能直接支持pdo_mysql,不用编译pdo_mysql ,也不用修改php.ini文件。但是:我试过不编译pdo_mysql了,不行。然后编译pdo_mysql ,生成了pdo_mysql.so文件。也修改php.ini文件:extension=pdo_mysql.so,重启php-fpm反而报错,提示pdo_mysql不是系统可用的库。大体是这个意思

二、编译时候不加:--with-pdo-mysql --with-mysql-sock=/usr/local/mysql/mysql.sock 然后编译pdo_mysql,这里我分别用了两种方法编译:

1、编译源码目录:ext/pdo_mysql 

2、单独下载pdo_mysql进行编译安装。

然后

extension_dir /usr/local/php/lib/php/extensions/no-debug-zts-20131226

在这个文件夹里有pdo_mysql.so文件,修改php.ini

(1)extension=pdo_mysql.so

(2)

extension=pdo_mysql.so

extension_dir=/usr/local/php/lib/php/extensions/no-debug-zts-20131226

(3)extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_mysql.so

三种配置方法都试过。然后重启php-fpm,成功

重启:httpd 成功。

然后:phpinfo() 还是不支持pdo_mysql.

 

检查过phpinfo()里的php.ini文件路径,没有错误。

 

然后今天用

/usr/local/php/bin/php -m 有pdo_mysql 为什么phpinfo()里就没有啊,我phpinfo()里php的编译安装路径也是/usr/local/php

 

求大神帮忙,提供个思路让我试试也是好的。实在没办法了

问题补充:

贴出我的编译命令来:

cd /soft
666 rm -rf php-5.6.30
667 cd /usr/local
668 rm -rf php
669 cd -
670 tar -zvxf php-5.6.30.tar.gz
671 cd php-5.6.30
672 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-zlib --enable-pdo --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/usr/local/mysql/mysql.sock
673 make && make install
//中间几行都是执行的find,没什么价值
679 export PATH=$PATH:/usr/local/php/bin
680 cp php.ini-development /usr/local/php/etc/php.ini
681 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
682 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
683 chmod +x /etc/init.d/php-fpm
684 /usr/local/php/sbin/php-fpm -t
685 chkconfig --add php-fpm
686 chkconfig php-fpm on
687 service httpd restart
688 service php-fpm restart
689 killall php-fpm
690 service php-fpm start

上面就是用--with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/usr/local/mysql/mysql.sock编译的全部命令,这样编译是不需要修改php.ini文件的,也不需要编译pdo_mysql。当然:都试过这样编译后再编译pdo_mysql和修改php.ini文件了。没卵用。

lippor的主页 lippor | 初学一级 | 园豆:51
提问于:2017-05-15 16:06
< >
分享
所有回答(2)
0

下载个pdo 重新编译

cd PDO_MYSQL
/opt/service/php/bin/phpize
./configure --with-php-config=/opt/service/php/bin/php-config --with-pdo-mysql=/opt/service/mysql
ln -s /opt/service/mysql/include/* /usr/local/include/
make
make install

Novicelong | 园豆:204 (菜鸟二级) | 2017-05-15 17:07

zh这种试过了。在   二(2)单独下载pdo_mysql编译安装。

安装过程没有问题,生成了文件,修改了php.ini,但就是phpinfo里没有pdo_mysql

支持(0) 反对(0) lippor | 园豆:51 (初学一级) | 2017-05-15 17:37

@lippor:  如果你的php -m 是说明你添加的php.ini中添加了,并不表示已正常安装配置。 如果你编译成功那么你的php目录下有pdo_mysq这个文件,看你的说目录下有pdo_mysq这个文件说明你编译成功了,你就看你php.ini中的格式配置是否正确,一般是

extension=pdo_mysql.so  添加后重启php就可以了

支持(0) 反对(0) Novicelong | 园豆:204 (菜鸟二级) | 2017-05-15 18:03

@Novicelong: 专门编译pdo_mysql ,会在extension_dir :/usr/local/php/lib/php/extensions/no-debug-zts-20131226

 这个文件夹下生成:pdo_mysql.so 

如果编译时候不加:--with-pdo-mysql --with-mysql-sock=/usr/local/mysql/mysql.sock 那生成后修改php.ini文件,问题里(1)(2)(3)三种方式都试过。

如果编译时候加了:--with-pdo-mysql --with-mysql-sock=/usr/local/mysql/mysql.sock    修改php.ini文件后,重启php-fpm就报错,大体是说mysql_pdo.so这个文件不是php库文件

 

说明一下,php -m有pdo_mysql是在 加了--with-pdo-mysql --with-mysql-sock=/usr/local/mysql/mysql.sock 编译后,没有重新编译pdo_mysql ,也没有修改库文件。

我两天编译了好多次,很多情况都试过了

支持(0) 反对(0) lippor | 园豆:51 (初学一级) | 2017-05-15 21:09

@Novicelong: 我贴出编译命令来了,帮我看看哪一步有问题

支持(0) 反对(0) lippor | 园豆:51 (初学一级) | 2017-05-16 09:18

@lippor:  正常命令上看不出问题,如果可以,你按着我给你贴出来的操作一遍应该可以,我一直都是这样编译添加的,php5.6也是这样编译的

tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/opt/service/php/bin/phpize
./configure --with-php-config=/opt/service/php/bin/php-config --with-pdo-mysql=/opt/service/mysql
ln -s /opt/service/mysql/include/* /usr/local/include/
make
make install

安装成功后注意修改php.ini文件添加到最后一行就可以

extension=pdo_mysql.so

版本和目录自注意下和,我测试了下也是可以的

支持(0) 反对(0) Novicelong | 园豆:204 (菜鸟二级) | 2017-05-16 09:25

@Novicelong: 重新编译了一遍:

所有编译代码如上;编译PDO_MYSQL-1.0.2.tgz 前:

编译PDO_MYSQL-1.0.2.tgz后:

然后修改php.ini文件,重启php和apache,

还是不行,我就是觉得我php编译过程哪个地方有问题,实在又不知道是哪里问题

支持(0) 反对(0) lippor | 园豆:51 (初学一级) | 2017-05-16 10:03

@lippor: 这个就真不知道了,正常情况这样就可以了。。你可以试试,添加一个其他的模块试试,是不是也有这种问题

支持(0) 反对(0) Novicelong | 园豆:204 (菜鸟二级) | 2017-05-16 10:07
0

哥们,我碰到同样的问题,你的问题解决了吗?

shl0519 | 园豆:202 (菜鸟二级) | 2017-07-04 14:56

没有,去阿里云市场安装了个镜像。不知道是怎么回事。每次我搭环境都会遇到奇奇怪怪的事

支持(0) 反对(0) lippor | 园豆:51 (初学一级) | 2017-07-04 15:19

@lippor: 我也感觉是PHP配置的问题,我这边用的PHP是5.6.30,不管是mysql,mysqli,还是pdo,我用php -m都能看到模块,并且也把动态库编译出来了,但是phpinfo都没显示出来

 

支持(0) 反对(0) shl0519 | 园豆:202 (菜鸟二级) | 2017-07-04 15:26

@shl0519: 我也是 -m时候有,但事实phpinfo里就是没有,那个问题折腾了我好几天。安装了不知道多少次

支持(0) 反对(0) lippor | 园豆:51 (初学一级) | 2017-07-04 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册