php编译安装pdo_mysql的方法:首先从“pecl.php.net”中下载“pdo_mysql”扩展包;然后执行“/usr/local/bin/phpize”;接着修改“php.ini”;最后重启php-fpm即可。
php7 编译安装pdo_mysql扩展
1.从pecl.php.net 下载pdo_mysql扩展包;
如果有php源码包可以不用下载,在 源码包下的 ext/ 下面可以找到;
2.解压,进入扩展包目录,执行 /usr/local/bin/phpize (路径根据实际情况,主要是找phpize,如果没有phpize 则可能需要安装 php-dev)
# tar -zxvf PDO_MYSQL-1.0.2.tgz # /usr/local/bin/phpize Configuring for: PHP Api Version: 20160303 Zend Module Api No: 20160303
3. configure
./configure -with-php-config=/usr/local/bin/php-config -with-pdo-mysql=mysqlnd 这里使用mysqlnd 而不是 /usr/local/mysql,PHP7 正式移除了 mysql 扩展;如果有多个版本的 PHP,使用-with-php-config=/usr/local/bin/php-config 指向对应版本的php-config 可以将扩展安装到对应的 PHP 版本;
4. make ,make install
5. 然后就是修改php.ini
找到; extension=php_pdo_mysql.dll这一行,去掉注释,并修改后面的文件名:
extension=pdo_mysql.so
重启 php-fpm ,ok!
————————————————————————————————————
记录一个问题:
环境:docker ,Debian GNU/Linux 8
PHP:7.1.10
用下载的 pdo_mysql 包安装 configure 时报:can not find mysql under the "mysqlnd" that you specified,但是检查 PHP 扩展mysqlnd 是安装了的,
然后 -with-pdo-mysql=/usr/local/include/php/ext/mysqlnd 也不行;
但是用 PHP 源码包里的 pdo_mysql 安装就没问题;
比对了 源码包下的mysqlnd 和 /usr/local/include/php/ext/mysqlnd 中的文件确实不一样;
有时间了要把这个搞清楚
————————————————————
上面的问题解决了:安装 mysql 开发工具包就可以了
apt-get install libmysqlclient-dev
但是又会出现新的问题。。。
终极解决方案:
下载对应版本的 PHP 源码包,用源码包安装 非常流畅。。。
http://php.net/downloads.php http://php.net/releases/
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理