php7.2編譯安裝,以及安裝擴展

Linux下編譯安裝PHP7.2
【準備工做】php

全部操做須要在root用戶下html

本機測試案例系統信息:centos7.3mysql

安裝路徑:/usr/local/phpnginx

【安裝PHP】c++

先安裝以下依賴包sql

yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

下載PHP7.2.0安裝包apache

wget http://cn2.php.net/distributions/php-7.2.12.tar.gz

解壓php-7.2.12.tar.gz 而後進入目錄,編譯。命令以下:vim

tar -zxvf php-7.2.12.tar.gz
cd php-7.2.12
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl

說明:因爲PHP7.2再也不支持mysql,而是用mysqli取代。所以會出現上面圖中所示的warning。不過不要緊,若是須要安裝php的mysql擴展,文章後面會有說明。centos

編譯完成以後,執行安裝命令:api

make && make install

說明:若是是在阿里雲購買的雲服務器,安裝到這裏可能會出現錯誤:

解決方法:看這裏:
http://kccdzz.com/detail/13uat9xrd.html

安裝過程大約須要20分鐘時間

【配置PHP】

在以前編譯的源碼包中,找到 php.ini-production,複製到/usr/local/php下,並更名爲php.ini:

cp php.ini-production /usr/local/php/php.ini

[可選項] 設置讓PHP錯誤信息打印在頁面上

vim /usr/local/php/php.ini 
display_errors = On

複製啓動腳本:

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

修改php-fpm配置文件:

cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf

① 去掉 pid = run/php-fpm.pid 前面的分號

cd php-fpm.d
cp www.conf.default www.conf
vim www.conf

② 修改user和group的用戶爲當前用戶(也能夠不改,默認會添加nobody這個用戶和用戶組)

【啓動PHP】

/etc/init.d/php-fpm start        #php-fpm啓動命令
/etc/init.d/php-fpm stop         #php-fpm中止命令
/etc/init.d/php-fpm restart        #php-fpm重啓命令
ps -ef | grep php 或者 ps -A | grep -i php  #查看是否已經成功啓動PHP

【PHP7.2的MySQL擴展】

因爲PHP7.2再也不支持mysql,而是用mysqli取代,若是須要安裝php的mysql擴展,請看這裏。

下載安裝包:連接:https://pan.baidu.com/s/1bqDutYZ 密碼:ae40

解壓,並進入目錄:

tar -zxvf mysql-24d32a0.tar.gz
cd mysql-24d32a0
/usr/local/php/bin/phpize  #使用phpize初始化

#編譯mysql擴展,使用mysql native driver 做爲mysql連接庫

./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=mysqlnd

接下來,安裝:
make && make install

最後,編輯php.ini文件,在最後面加入 extension=mysql.so 便可。

重啓PHP,查看phpinfo()

【Linux PHP7的openssl擴展安裝】

能夠從新再次編譯PHP,加上--enable-openssl參數便可。

可是若是隻爲了安裝這一個擴展就去從新編譯,未免有點麻煩,其實能夠簡單一點,只要安裝openssl.so擴展就能夠了。

(1)找到以前編譯安裝PHP的安裝包,或者從php的官網下載php7(本例使用php7,其餘版本的PHP相似)

(2)解壓並進入文件夾

cd php7.0/ext/openssl
(3)運行 phpize:

/usr/local/php/bin/phpize

備註,若是出現以下錯誤:Cannot find config.m4.

    Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

    【解決辦法】cp ./config0.m4 ./config.m4 便可解決

(4)編譯和安裝

./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
make && make install

(5)而後進入最後提示的目錄,查看文件

(6)將 openssl.so 複製到PHP的擴展目錄下:

cp openssl.so /usr/local/php/include/php/ext

(7)找到php.ini,在最後面添加以下內容:

extension=openssl.so

(8)重啓php-fpm和nginx/apache,查看phpinfo();

備註:/bin/php -i|grep ini 查看php.ini的位置

相關文章
相關標籤/搜索