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查看確認


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM