ubuntu LTS 16.04 編譯安裝PHP

ubuntu LTS 16.04只能安裝php7及以上版本偏瓤,這里安裝的具體版本是php7.1.10

安裝相關(guān)依賴庫(kù)

依賴庫(kù)安裝

sudo apt-get update
sudo apt-get install libxml2-dev
sudo apt-get install build-essential
sudo apt-get install openssl
sudo apt-get install libssl-dev 
sudo apt-get install make
sudo apt-get install curl
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
sudo apt-get install libtool-bin
sudo apt-get install bison
sudo apt-get install php7.0-dev
sudo apt-get install php-fpm

編譯安裝libiconv

libiconv官網(wǎng)下載壓縮包蝙眶,放到/usr/local/src下乐严,解壓刮刑,編譯安裝,這里下載的是libiconv-1.15.tar.gz

sudo tar zxvf libiconv-1.15.tar.gz
cd libiconv-1.15
sudo ./configure --prefix=/usr/local
sudo make
sudo make install
sudo ldconfig // 刷新動(dòng)態(tài)鏈接庫(kù)緩存

注意,這里是將libiconv安裝到了系統(tǒng)默認(rèn)的lib目錄下沐悦,安裝路徑/usr/local不可隨意更改,否則后面會(huì)出現(xiàn)編譯錯(cuò)誤崔兴。另外彰导,執(zhí)行sudo make之后會(huì)有如下warning

warning: remember too run 'libtool --finish /usr/local/lib'

按照warning的提示執(zhí)行一下

libtool --finish /usr/local/lib

編譯安裝PHP

編譯PHP

PHP官網(wǎng)下載php7.1.10壓縮包放到/usr/local/src下,解壓敲茄,編譯安裝位谋,這里下載的是php-7.1.10.tar.gz

sudo tar zxvf php-7.1.10.tar.gz
cd php-7.1.10
sudo ./configure --prefix=/usr/local/php-7.1.10 --with-config-file-path=/usr/local/php-7.1.10/conf  --with-apxs2=/usr/local/apache2/bin/apxs --with-iconv-dir=/usr/local/lib --enable-fpm --enable-mysqlnd --with-mysqli=mysqlnd --without-pear --disable-phar
sudo make ZEND_EXTRA_LIBS='-liconv'
sudo make install

注意,這里--with-apxs2的路徑要與apache2安裝路徑一致堰燎,--with-iconv-dir路徑要與libiconv安裝路徑一致掏父,pear是php的一個(gè)組件,需要專門安裝秆剪,因?yàn)閜hp5以后赊淑,pear沒什么用了,所以這里就禁用了pear仅讽。

fpm是支持PHP的一個(gè)比較好的工具陶缺,php-fpm參數(shù)如下:

--start 啟動(dòng)
--stop 強(qiáng)制終止
--quit 平滑終止
--restart 重啟
--reload 重新平滑加載php的php.ini
--logrotate 重新啟用log文件

另外,PHP7.0啟用了mysqlnd來支持MySQL連接洁灵,具體可選的有mysqlipdo-mysql饱岸,可以通過參數(shù)來配置

--enable-mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd

安裝完成之后,會(huì)有warning

warning: remember to run 'libtool --finish /usr/local/src/php-7.1.10/libs'

按照warning的提示執(zhí)行一下

libtool --finish /usr/local/src/php-7.1.10/libs

完成之后,會(huì)在/usr/local/apache2/modules下生成一個(gè)libphp7.so苫费,這就是Apache的php動(dòng)態(tài)鏈接庫(kù).

PHP7.0以后不再提供默認(rèn)的php.ini配置文件汤锨,而是在源碼目錄下提供php.ini-developmentphp.ini-production 兩個(gè)配置文件,一個(gè)用于開發(fā)環(huán)境百框,一個(gè)用于線上環(huán)境闲礼。這里我們把php.ini-production 復(fù)制到之前的php配置目錄下,作為php的配置文件

 sudo cp /usr/local/src/php-7.1.10/php.ini-production /usr/local/php-7.1.10/conf/php.ini

接下來我們配置Apache解析PHP & Apache的mysqli擴(kuò)展

配置Apache解析PHP

打開Apache的主配置文件/usr/local/apache2/conf/httpd.conf琅翻,寫入如下配置行

// 這一行剛剛安裝php的時(shí)候位仁,系統(tǒng)應(yīng)該已經(jīng)自動(dòng)生成了,如果沒有方椎,手動(dòng)加入即可
// 配置Apache加載php動(dòng)態(tài)鏈接庫(kù)
LoadModule php7_module modules/libphp7.so

// 配置Apache解析php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

配置Apache的mysqli擴(kuò)展

php.ini中加入以下配置

extension=/usr/local/php-7.1.10/lib/php/extensions/no-debug-zts-20151012/mysqli.so

在mysql-server的配置目錄下聂抢,從主配置文件my.cnf開始遍歷配置文件,找到mysqld.sock的路徑棠众。這里是用apt-get安裝的mysql-server-5.7琳疏,所以mysqld.sock路徑是/var/run/mysqld/mysqld.sock,我們需要把這個(gè)路徑寫到php.ini中闸拿。找到mysqli.default_socket空盼,寫入配置

mysqli.default_socket = /var/run/mysqld/mysqld.sock

重啟Apache,加個(gè)php頁(yè)面新荤,用echo phpinfo()看看Apache能否正常解析php揽趾,是否正常加載了php的配置文件,是否支持了mysqli苛骨,以及是否能找到mysqli.default_socket是否已經(jīng)被配置篱瞎。

編譯安裝PHP的mysqli擴(kuò)展(以此為例介紹如何編譯安裝PHP擴(kuò)展)

PHP所有的擴(kuò)展都放在目錄/usr/local/php-7.1.10/lib/php/extensions/no-debug-zts-20151012/下,我們?cè)谶@個(gè)目錄下可以看到apache的擴(kuò)展痒芝,現(xiàn)在我們來編譯mysqli擴(kuò)展俐筋。

轉(zhuǎn)到php源碼目錄下的ext文件夾中,這里可以看到該php版本所支持的所有擴(kuò)展严衬,應(yīng)該可以看到mysqli文件夾澄者。轉(zhuǎn)到mysqli下,運(yùn)行phpize

/usr/local/src/php-7.1.10/ext/mysqli$ /usr/local/php-7.1.10/bin/phpize

會(huì)得到以下信息

Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012

會(huì)在該目錄下生成configure等文件请琳,然后執(zhí)行

sudo ./configure --with-php-config=/usr/local/php-7.1.10/bin/php-config --with-mysqli
sudo make
sudo make install

注意粱挡,這里--with-php-config并非apache配置文件所在路徑,必須設(shè)為bin/php-config单起。安裝完之后會(huì)提示extensions所在路徑抱怔,轉(zhuǎn)到該路徑下,可以看到mysqli.so嘀倒,即為mysqli擴(kuò)展屈留。(編譯安裝其他PHP也是同理)局冰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市灌危,隨后出現(xiàn)的幾起案子康二,更是在濱河造成了極大的恐慌,老刑警劉巖勇蝙,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沫勿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡味混,警方通過查閱死者的電腦和手機(jī)产雹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翁锡,“玉大人蔓挖,你說我怎么就攤上這事」菹危” “怎么了瘟判?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)角溃。 經(jīng)常有香客問我拷获,道長(zhǎng),這世上最難降的妖魔是什么减细? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任匆瓜,我火速辦了婚禮,結(jié)果婚禮上未蝌,老公的妹妹穿的比我還像新娘陕壹。我一直安慰自己,他們只是感情好树埠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘶伟,像睡著了一般怎憋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上九昧,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天绊袋,我揣著相機(jī)與錄音,去河邊找鬼铸鹰。 笑死癌别,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蹋笼。 我是一名探鬼主播展姐,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼躁垛,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了圾笨?” 一聲冷哼從身側(cè)響起教馆,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎擂达,沒想到半個(gè)月后土铺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡板鬓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年悲敷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俭令。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡后德,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出唤蔗,到底是詐尸還是另有隱情探遵,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布妓柜,位于F島的核電站箱季,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏棍掐。R本人自食惡果不足惜藏雏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望作煌。 院中可真熱鬧掘殴,春花似錦、人聲如沸粟誓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鹰服。三九已至病瞳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悲酷,已是汗流浹背套菜。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留设易,地道東北人逗柴。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像顿肺,于是被迫代替她去往敵國(guó)和親戏溺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渣蜗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • php+mysql+apache+centos 編譯安裝 領(lǐng)導(dǎo)要求先保證php環(huán)境穩(wěn)定,然后再去考慮其他于购,例如性能...
    dnaEMx閱讀 2,204評(píng)論 1 16
  • php.ini設(shè)置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 6,763評(píng)論 3 64
  • Linux 系統(tǒng)為 CentOS 7.2 1. 安裝 Nginx 安裝 Nginx 依賴包: 安裝 Nginx: ...
    野塵lxw閱讀 1,673評(píng)論 1 5
  • 一袍睡、LAMP環(huán)境的介紹 1.LAMP環(huán)境的重要性 思索許久,最終還是決定寫一篇詳細(xì)的LAMP的源碼編譯安裝的實(shí)驗(yàn)文...
    endmoon閱讀 2,620評(píng)論 4 26
  • 微風(fēng)中 盛開著一朵可愛的花 它纖細(xì)的枝干 托舉著一片朦朧 它芳香馥郁 卻又溫柔嬌羞 癡情的蝶兒 縈繞其左右 汲取空...
    毀滅陰影閱讀 309評(píng)論 0 1