源碼編譯 - 看來(lái)PHP8.0呼之欲出啊

php編譯

php.net
git

操作系統(tǒng):macOS

具體步驟

  1. 獲取git源碼:
git clone https://github.com/php/php-src.git
  1. 進(jìn)入php-src
cd php-src
  1. 切換到指定分支,或者忽略此步驟,直接使用master分支
  2. 運(yùn)行
./buildconf

./configure [options]
#例如 ./configure --enable-zip --enable-fpm --without-iconv --with-openssl --with-openssl-dir=/usr/local --enable-mysqlnd --with-zlib-dir=/usr/local/opt/zlib --enable-mbstring

異常:

  • configure: error: Please specify the install prefix of iconv with --with-iconv=<DIR>

處理方法:

  1. 檢查iconv是否安裝:iconv --help
  2. 如果已經(jīng)安裝,獲取路徑:which iconv;然后重新運(yùn)行:./configure --with-iconv=pathToIconv
  3. 如果沒(méi)有安裝(建議安裝) 或 第2步失敗:
    1 brew install libiconv
    2 ./configure --with-iconv=$(brew --prefix libiconv)
  • configure: error: Package requirements (oniguruma) were not met
    處理方法:
    方法1: 去除 --enable-mbstring 選項(xiàng)
    方法2: 安裝oniguruma

5.make,
順序執(zhí)行,每一步成功后執(zhí)行下一步


make -j4 #不超過(guò)cpu核心數(shù)

make TEST_PHP_ARGS=-j4 test

make install

異常:

php-src/ext/libxml/libxml.c:32:10: fatal error: 'libxml/parser.h' file not found
解決方法:
brew install libxml2
ln -s /usr/local/opt/libxml2/include/libxml2/libxml /usr/local/include/libxml

6.查看安裝結(jié)果

php -v #查看版本
php8.0

異常:

PHP Warning: PHP Startup: Unable to load dynamic library 'redis.so'
解決方法:
找到php.ini文件 php -r "phpinfo();" | grep 'php.ini',將擴(kuò)展注釋掉;extension=redis.so
我出現(xiàn)這個(gè)問(wèn)題主要是由于用pecl裝的redis擴(kuò)展,如還需使用此擴(kuò)展,卸載(pecl uninstall redis)重裝(pecl install redis)擴(kuò)展,然后取消注釋即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容