最新消息:本站访问过程中有任何问题请与我联系……

PHP7安装mysql的扩展让老版本PHP程序继续服役

技术教程 xx2008 1518浏览 0评论

    PHP7以后有一些改变,之前碰到mysql_connect()失效的一个小程序,是自己写的,PHP7下出错后就手动修改了,这两天升级本博客的相关内容时,有碰到mysql_connect()连接失败的问题,因为不是自己写的,手动修改了一些,觉得太类,干脆在PHP7下重新加入mysql扩展,程序也省的修改了,但是这个做法到底好不好,效率影响有多大,作为半瓶酒的醒醒就不知道了,只知道反正能用了。

    PHP7移除了mysql扩展,推荐使用mysqli或者pdo_mysql,实际上在PHP5.5开始,PHP就着手开始准备弃用mysql扩展,如果你的程序使用了mysql扩展,可能看到过这样的提示”Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in”.所以在以后自己写PHP程序中,为了保持兼容性,要尽量不要使用mysql扩展用于数据库连接。 

    以lnmp为例两种方法安装PHP7的mysql扩展:

 一、直接下载mysql.so文件安装PHP7的扩展,这种方法不知道到底通用不通用,反正我在自己的几台机器上都能正常使用。 

    mysql.so下载地址: http://down.xxorg.com/PHP/mysql.so

    下载到/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303目录下,然后修改php.ini文件,lnmp的php.ini文件的位置在/usr/local/php/etc,在php.ini中添加extension=mysql.so,然后使用命令lnmp restart重启lnmp。到此就可以正常使用mysql_connect了。从PHP探针上可以先看下成果:

PHP7安装mysql的扩展让老版本PHP程序继续服役PHP7安装mysql的扩展让老版本PHP程序继续服役

推荐这种方法,简单粗暴,如果不行的话可以往下看。   

二、编译安装PHP7的mysql扩展 

1、到http://git.php.net/?p=pecl/database/mysql.git;a=summary下载源文件,我下载的是最新的一个http://git.php.net/?p=pecl/database/mysql.git;a=snapshot;h=647c933b6cc8f3e6ce8a466824c79143a98ee151;sf=tgz 

2、解压并使用phpize工具初始化,编译:  

#解压   
tar xzvf mysql-647c933.tar.gz   
#进入mysql扩展目录 
cd mysql-647c933/    
#使用phpize初始化,lnmp的phpize在/usr/local/php/bin目录   
/usr/local/php/bin/phpize   
#编译mysql扩展,使用mysql native driver作为mysql链接库   
./configure --with-php-config=/opt/php/bin/php-config --with-mysql=mysqlnd   
make && make install  

3、然后同一中的办法,编辑php.ini文件,把mysql.so拷贝到php.ini的extension_dir中(这里实际上目录中已经有mysql.so了,如果没有的话文件在/root/mysql-647c933/modules,复制过去即可),然后在php.ini中加入extension=mysql.so ,最后lnmp restart重启就完工了。

转载请注明:服务器VPS折腾 » PHP7安装mysql的扩展让老版本PHP程序继续服役

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址