《PHP教程:CentOS下PHP7的編譯安裝及MySQL的支持和一些常見問題的解決辦法》要點:
本文介紹了PHP教程:CentOS下PHP7的編譯安裝及MySQL的支持和一些常見問題的解決辦法,希望對您有用。如果有疑問,可以聯系我們。
PHP學習最近試了一下PHP7,在編譯和支持MySQL上都遇到一些問題,相信不少同學也同樣遇到,所以在這里聊一下這個過程.簡單來講編譯PHP7只必要3步:
PHP學習1、./buildconf --force
2、./configure
3、make && make install
PHP學習1、3步,都沒啥好管的,configure是編譯的關鍵,涉及到PHP對一些庫的支持,這里我們使用最小的支持,包含MySQL:
PHP學習curl
gd
fpm
mysqlnd
PHP學習之所以把curl和gd拿來說,目的是要搞清楚,這些三方庫在編譯PHP之前得安裝好,可以直接使用yum安裝在默認位置,也可以編譯安裝到指定位置,yum安裝后,編譯時不用指定庫的安裝位置,關于安裝這些庫,可以搜索一下有很多.下面看看基本的configure
PHP學習./configure --prefix=/apps/php/php7.0 --enable-mbstring --with-curl --with-gd --with-config-file-path=/apps/php/php7.0/etc/ --
PHP學習enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd
PHP學習PHP-FPM
PHP學習關于fpm,相信不用多說,用它來支持PHP是一個比擬好的選擇,PHP5.3.3開始就已經內置了php-fpm,所以PHP7里當然也有,只需要--enable-fpm一下就可以了
PHP學習php-fpm參數:
PHP學習--start 啟動
--stop 強制終止
--quit 平滑終止
--restart 重啟
--reload 重新平滑加載php的php.ini
--logrotate 重新啟用log文件
PHP學習MySQL支持
PHP學習重點講一下這個,因為在它上面花了一點時間,不知道從哪一版本開始,PHP不在希望使用mysql的庫來支持mysql的連接,啟用了mysqlnd來支持,聽說比libmysql要快很多,PHP5.x還可以使用libmysql,PHP7貌似已經取消了支持,編譯都沒有了--with-mysql參數,只支持--with-mysqli和--with-pdo-mysql,可以通過查看configure的參數來知道:
PHP學習
./configure -help | grep mysql
PHP學習
PHP學習可以看到,PHP希望使用mysqlnd來支持MySQL,所以參數可以這樣寫:
PHP學習--enable-mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
PHP學習mysqlnd是不必要mysql支持的,所以不用先安裝好mysql一樣可以編譯通過,啟動php-fpm,查看一下phpinfo,能看到mysqlnd和pdo_mysql表示php已經可以支持mysql了(這里用的是pdo,mysqli同理)
PHP學習
PHP學習
PHP學習幾個問題
PHP學習編譯問題:cc: Internal error: Killed (program cc1)
PHP學習這個問題是第一次遇到,原來是我的阿里云服務器關掉了swap,內存不夠用,就報了這個錯. 解決方法很簡單,configure時加上--disable-fileinfo參數就可以了.
PHP學習PHP報找不到mysql服務
PHP學習正如它所說,確實沒找到,看看phpinfo中pdo_mysql.default_socket項
PHP學習
PHP學習mysql.sock在哪里,再看一下mysql.sock的真正位置,使用命令:ps -ef|grep mysql查看:
PHP學習
PHP學習明顯不在一個位置上,我的正確位置是:/var/lib/mysql/mysql.sock
PHP學習所以,修改一下php.ini,找到pdo_mysql.default_socket,改為你的實際位置,重啟一下php-fpm,很不幸,雖然php.ini有這個配置,修改后,竟然不行,最好是編譯的時候,指定mysql.socket的位置:
PHP學習
--with-mysql-sock=/var/lib/mysql/mysql.sock
PHP學習如果還不行,可以到/tmp目錄下建立一個mysql.sock的軟鏈接:
PHP學習
ln -s /var/lib/mysql/mysql.sock mysql.sock
PHP學習再重啟一次php-fpm,相信已經正常運行了.如果必要PHP支持的庫更多,可以再次編譯,在configure時把必要的支持加上,就是--with-xxx這中,記得如果是三方的,要先安裝這些庫才行哦.
《PHP教程:CentOS下PHP7的編譯安裝及MySQL的支持和一些常見問題的解決辦法》是否對您有啟發,歡迎查看更多與《PHP教程:CentOS下PHP7的編譯安裝及MySQL的支持和一些常見問題的解決辦法》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/8236.html