php編譯
操作系統(tǒng):macOS
具體步驟
- 獲取git源碼:
git clone https://github.com/php/php-src.git
- 進(jìn)入php-src
cd php-src
- 切換到指定分支,或者忽略此步驟,直接使用master分支
- 運(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>
處理方法:
- 檢查iconv是否安裝:iconv --help
- 如果已經(jīng)安裝,獲取路徑:which iconv;然后重新運(yùn)行:./configure --with-iconv=pathToIconv
- 如果沒(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ò)展,然后取消注釋即可