記一次PHP源碼編譯過程

引言

好久沒有源碼編譯過php了。php

本身電腦一直用docker跑php,另外就是以前裝過XAMPP(由於本身電腦系統是deepin,deepin官方推薦用XAMPP搭建php環境)。原本也夠用,可是最近在折騰phpunit,剛好本身用phpstorm作單元測試。phpstorm的php cli雖然也支持遠程docker,可是本身仍是想在本地運行單測。因爲本身原先的XAMPP環境是php7.4,可是公司項目不徹底支持php7.4。因此打算在本地從新構建一套php7.2環境。mysql

下面是phpstorm cli解釋器配置 支持from docker
clil解釋器 配置sql

以前用docker和包安裝php環境比較多,此次想了下,很久沒有折騰源碼安裝了,因此試下源碼編譯php。docker

個人系統:deepin 15.11
gcc版本:6.3.0緩存

開始

第一步,固然是源碼下,我這裏選擇php官網,版本7.2.34 tag.gz 包。

image

第二步,解壓 tar -zxvf xxx
第三步,.configure 編譯檢查 生成Makefile

這裏開始就有坑了 開始的時候我沒有加php編譯參數,只指定安裝目錄和配置目錄php7

第四步,make && make install

編譯和安裝大概幾分鐘,沒有報錯。也編譯安裝成功。跑了下項目試了下,發現默認編譯是沒有pdo_mysql 擴展的。怪本身大意,從新編譯擴展phpstorm

image

第五步 從新編譯擴展

進入源碼擴展目錄 依次 phpize,configure,make && make install
發現報錯,目錄異常,打開源碼,加絕對路徑,從新編譯,而後改php.ini 在extension開啓pdo_mysql.so,試了下 又不行,各類報錯,折騰了好久,刪除整個php安裝目錄,從新編譯 單元測試

image

image

ps:最後經過改源碼里路徑爲絕對路徑解決測試

第六步 .configure

這裏必定要清除以前編譯緩存,編譯的時候加上編譯參數
同時把其餘經常使用php擴展也加到裏面(gd,xml,bcmath,mbstring,openssl等等 這些默認都是不會安裝的) spa

這裏因爲安裝了部分擴展(例如gd庫),致使依賴報錯,經過本地安裝對應依賴解決

第七步,make && make install

又是漫長的等待...

第八步 測試 終於成功

總結

源碼編譯確實麻煩並且時間漫長,前先後後大概折騰了快2個小時。除非是體驗新版本或者本身對源碼有修改以外,更加推薦docker或者包安裝方式。

相關文章
相關標籤/搜索