準備
- MAC環(huán)境mac mojave 10.14.1
- Homebrew 2.0.1-25-g4550f70
mac item下使用brew管理依賴可以說是不二選了志秃,可是最新的brew upgrade已經(jīng)從core中拋棄php 5.6了蜕猫,唯一的辦法可能就是自己編譯安裝刃榨,這一流坑算是要踩一遍了
開始
源碼地址:
wget -c http://cn2.php.net/distributions/php-5.6.40.tar.gz
安裝:
./configure \
--prefix=/usr/local/php5.6 \
--with-mysql \
--with-xpm-dir=/usr/X11/include \
--with-gd=/usr/local/Cellar/gd/2.2.5 \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-freetype-dir=/usr/local/Cellar/freetype/2.9.1 \
--with-jpeg-dir=/usr/local/Cellar/libjpeg \
--with-png-dir=/usr/local/Cellar/libpng \
--with-libxml-dir=/usr/local/Cellar/libxml2 \
--with-zlib-dir=/usr/local/Cellar/zlib/1.2.11 \
--with-iconv=/usr/local/Cellar/libiconv/1.15 \
--enable-xml \
--enable-mbstring \
--enable-sockets \
--enable-simplexml \
--enable-soap \
--enable-mbstring=all \
--enable-sockets \
--enable-pdo \
--with-curl=/usr/local/Cellar/curl \
--with-config-file-path=/usr/local/php5.6/etc \
--with-mhash \
--enable-cli \
--enable-fpm \
--with-pdo-mysql
.configure可能會找不到相關依賴刽肠,比如gd庫、zlib等等,不用急,基本上brew search\install都能搞定吨掌。
這里碰到了個問題,安裝gd庫依賴X11,也就是libxpm庫膜宋,可是mac這個版本找不到窿侈,mac從lion版本已經(jīng)拋棄并且繼承在了XQuartz中了,我們需要下載dmg安裝秋茫,最后把inclue目錄引入進來棉磨。
X11代替方案:
下載安裝 https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.11.dmg
但是還是用問題,會報這個錯誤
/usr/local/src/php-5.6.40 /ext/gd/gd.c:57:22: 錯誤:X11/xpm.h:沒有那個文件或目錄
make: *** [ext/gd/gd.lo] 錯誤 1
我的分析是這樣的学辱,我們通過brew安裝gd、x11等依賴环形,默認在Cellar下策泣,但是沒有放入compilers的環(huán)境變量下,所以想了個辦法抬吟,我把
X11目錄中gd需要的頭文件放到php的編譯目錄下萨咕,也就是如果你裝了X11(XQuartz),那么
cp -R X11 php-5.6.40/ext/gd/
重新編譯
出現(xiàn)問題
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
基本上我是google搜到的解決辦法,參考的
Mac編譯PHP7時引入OpenSSL時的錯誤Undefined symbols for architecture x86_64
我的理解是還是brew安裝時候沒有將目錄寫入環(huán)境變量引起的火本。
重新編譯
make && make install
沒有問題危队,最后
make test