折腾了两天,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文件了。没卵用。
下载个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
zh这种试过了。在 二(2)单独下载pdo_mysql编译安装。
安装过程没有问题,生成了文件,修改了php.ini,但就是phpinfo里没有pdo_mysql
@lippor: 如果你的php -m 是说明你添加的php.ini中添加了,并不表示已正常安装配置。 如果你编译成功那么你的php目录下有pdo_mysq这个文件,看你的说目录下有pdo_mysq这个文件说明你编译成功了,你就看你php.ini中的格式配置是否正确,一般是
extension=pdo_mysql.so 添加后重启php就可以了
@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 ,也没有修改库文件。
我两天编译了好多次,很多情况都试过了
@Novicelong: 我贴出编译命令来了,帮我看看哪一步有问题
@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
版本和目录自注意下和,我测试了下也是可以的
@Novicelong: 重新编译了一遍:
所有编译代码如上;编译PDO_MYSQL-1.0.2.tgz 前:
编译PDO_MYSQL-1.0.2.tgz后:
然后修改php.ini文件,重启php和apache,
还是不行,我就是觉得我php编译过程哪个地方有问题,实在又不知道是哪里问题
@lippor: 这个就真不知道了,正常情况这样就可以了。。你可以试试,添加一个其他的模块试试,是不是也有这种问题
哥们,我碰到同样的问题,你的问题解决了吗?
没有,去阿里云市场安装了个镜像。不知道是怎么回事。每次我搭环境都会遇到奇奇怪怪的事
@lippor: 我也感觉是PHP配置的问题,我这边用的PHP是5.6.30,不管是mysql,mysqli,还是pdo,我用php -m都能看到模块,并且也把动态库编译出来了,但是phpinfo都没显示出来
@shl0519: 我也是 -m时候有,但事实phpinfo里就是没有,那个问题折腾了我好几天。安装了不知道多少次