php7.0以上的版本廢棄了mysql拓展,推薦使用mysqli以及pdo_mysql,所以老的程序使用mysql拓展的程序就會報mysql_connet()函數未定義的錯誤,我們如果想要在不更改老程序鏈接數據庫方式的前提下讓它能夠運行就需要在php7以上版本中安裝mysql的拓展。
1?去php網站上下載mysql擴展,http://git.php.net/?p=pecl/database/mysql.git;a=summary.(文件包的名稱是mysql-45881bd.tar.gz,

2?解壓并使用phpize工具初始化,編譯。
#解壓
tar?xzvf?mysql-45881bd.tar.gz
#進入mysql擴展目錄
cd?mysql-45881bd/
#使用phpize初始化,我的phpize在/data/web/目錄
/data/web/php7/bin/phpize
#編譯mysql擴展,使用mysql?native?driver作為mysql鏈接庫
./configure?--with-php-config=/data/web/php7/bin/php-config?--with-mysql=mysqlnd
make?&&?make?install
3 然后直接編輯php.ini文件,在php.ini中加入extension=mysql.so
4 重啟php-fpm,首先說下啟動php-fpm:/data/web/php7/sbin/php-fpm,下面開始講如何重啟:php 5.3.3 以后的php-fpm?不再支持?php-fpm 以前具有的 /data/web/php7/sbin/php-fpm (start|stop|reload)等命令,所以不要再看這種老掉牙的命令了,需要使用信號控制:
master進程可以理解以下信號
INT, TERM?立刻終止
QUIT?平滑終止
USR1?重新打開日志文件
USR2?平滑重載所有worker進程并重新載入配置和二進制模塊
一個簡單直接的重啟方法:
先查看php-fpm的master進程號:ps aux | grep php-fpm

重啟php-fpm:
kill -USR2 22267
上面方案一般是沒有生成php-fpm.pid文件時使用,如果要生成php-fpm.pid,使用下面這種方案:
上面master進程可以看到,matster使用的是/data/web/php7/etc/php-fpm.conf這個配置文件,cat?/data/web/php7/etc/php-fpm.conf?發(fā)現(xiàn):

pid文件路徑應該位于/data/web/php7/var/run/php-fpm.pid,由于注釋掉,所以沒有生成,我們把注釋去除,再kill -USR2 22267 重啟php-fpm,便會生成pid文件,下次就可以使用以下命令重啟,關閉php-fpm了:
php-fpm 關閉:
kill -INT 'cat /data/web/php7/var/run/php-fpm.pid'
php-fpm 重啟:
kill -USR2 'cat /data/web/php7/var/run/php-fpm.pid'
這樣我們查看phpinfo()的時候就可以看到mysql拓展了,我們親切的mysql又回來了,我們熟悉的程序又可以快樂的運行了

小結:相對于PHP5,都說PHP7有非常大的性能提升,mysql拓展被廢棄也有很多的原因,安全性首當其沖,還是推薦大家最好使用mysqli以及pdo_mysql拓展來連接數據庫。
很多剛升級php7的新同學都會遇到各種各樣的問題,一定不要灰心,困難總會被克服的。
相關鏈接(LNMP編譯安裝):http://www.itdecent.cn/p/e28cd4d30fb5