zoukankan      html  css  js  c++  java
  • 4.编译安装PHP7的MySQL扩展mysql.so

    4.编译安装PHP7的MySQL扩展mysql.so

     转 https://www.cnblogs.com/qzhaosen/articles/10888937.html

    第一版:

    问题:PHP7已经彻底废弃了传统的mysql_connect()函数,源码安装包里,也不再提供传统mysql函数库的支持(PHP推荐使用mysqli或者pdo_mysql)。这样带来的问题是,运行老的PHP程序,比如WordPress,就会出现数据库连接失败的情况,表现出来的特征就是这个让人抓狂的错误:Fatal error: Uncaught Error: Call to undefined function mysql_connect()。这时,我们要么选择回退到PHP5.6,或者选择安装PHP7的mysql扩展。

    下载PHP7的传统mysql扩展:

      PHP7的源码包里面没有mysql的代码,需要另外下载,下载地址:

               http://git.php.net/?p=pecl/database/mysql.git;a=summary

    或者

    可以使用WinSCP将下载包传到Linux系统。随便哪个目录都可以,然后运行下面的命令:

    我用的ubuntu,先要安装autoconf这个工具:

    apt install autoconf

    然后:

    复制代码
    tar zxf mysql-230a828.tar.gz
    
    cd mysql-230a828
    
    /usr/local/php/bin/phpize
    
    ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=/usr/local/mysql
    
    make && make install
    复制代码

    然后修改php.ini

    添加extension=mysql.so

    DONE!

    补充一个经验:

    wordpress程序默认关闭了php的debug输出,这时如果出现连接数据库错误,屏幕一篇空白,什么都没有,我们需要打开php的debug开关来查看具体是什么错误,具体在wp-config.php文件里面:

    /* 将默认的false修改为true */
    define('WP_DEBUG', true);

    第二版:

     

    相对与PHP5,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”.所以在以后的程序中,为了保持兼容性,要尽量减少使用mysql扩展用于数据库连接.

    作为运维人员来说,既想使用PHP7来提升服务器的效率,又要保证老的程序能够运行,如何做呢?

    1.去php网站上下载mysql扩展,http://git.php.net/?p=pecl/database/mysql.git;a=summary

    2.解压并使用phpize工具初始化,编译:---文件包是

    1. #解压   
    2. tar xzvf mysql-45881bd.tar.gz   
    3. #进入mysql扩展目录  from www.mfbuluo.com   
    4. cd mysql-45881bd/    
    5. #使用phpize初始化,我的phpize在/opt/目录   
    6. /opt/php/bin/phpize   
    7. #编译mysql扩展,使用mysql native driver作为mysql链接库   
    8. ./configure --with-php-config=/opt/php/bin/php-config --with-mysql=mysqlnd   
    9. make && make install  

    3.接下来,我们直接编辑php.ini文件,把mysql.so拷贝到php.ini的extension_dir中,然后在php.ini中加入extension=mysql.so

    4.重启php

    成功之后,用phpinfo即可看到mysql扩展的信息

    相对于PHP5,都说PHP7有非常大的性能提升.。

    第三版:

    ubuntu 17.10 上为php7安装mysql扩展

    相对与PHP5,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”.所以在以后的程序中,为了保持兼容性,要尽量减少使用mysql扩展用于数据库连接.

    作为运维人员来说,既想使用PHP7来提升服务器的效率,又要保证老的程序能够运行,如何做呢?

    安装环境:

    系统:ubuntu 17.10

    PHP版本:php7.1

    安装步骤:

    1.去php网站上下载mysql扩展,http://git.php.net/?p=pecl/database/mysql.git;a=summary

       选择最近的一个版本,我选择的是2017-11-01更新的版本

    2.解压并使用phpize工具初始化,编译:---文件包是

    #解压   
    tar xzvf mysql-45881bd.tar.gz   
    #进入mysql扩展目录   
    cd mysql-45881bd/    
    #使用phpize初始化,我的phpize在/opt/目录   
    phpize
    #编译mysql扩展,使用mysql native driver作为mysql链接库   
    ./configure 
    make && make install  

    3.由于ubuntu 17.10版本的特殊性,接下来,添加mysql.ini扩展配置文件


    #进入扩展目录  
    cd /etc/php/7.1/mods-availabel/
    #添加mysql.ini
    sudo cp mysqli.ini mysql.ini  
    sudo vi mysql.ini
      

    4.启用mysql扩展,sudo phpenmod mysql

    5.重启apache服务, sudo service apache2 restart

    6.使用phpinfo查看确认

  • 相关阅读:
    Oracle 用 sqlprompt 修改 sqlplus 提示符
    Oracle cursor pin S wait on X 等待事件 说明
    Oracle 利用 rowid 提升 update 性能
    Oracle 从缓存里面查找真实的执行计划
    Linux 进程状态 说明
    Oracle 用户 对 表空间 配额(quota ) 说明
    Upon startup of Linux database get ORA27102: out of memory LinuxX86_64 Error: 28: No space left on device
    异常宕机 Ora00600 [Kccpb_sanity_check_2] 错误解决方法
    Oracle ORA04031 错误 说明
    Oracle Shared pool 详解
  • 原文地址:https://www.cnblogs.com/it-tsz/p/13833033.html
Copyright © 2011-2022 走看看