背景
前幾天在mac上跑workrman,由於workerman需要開啟多個進程,多進程需要pcntl擴充套件的支援,我之前那個brew安裝的php71沒有這個擴充套件,就直接解除安裝了php71,然後想下載原始碼編譯安裝php7的更高版本,也可以更自由的安裝擴充套件。
原始碼編譯安裝(php-7.2.7)
問題一
configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: --enable-fpm configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: --with-mysqli configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: --with-pdo-mysql configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: --with-iconv-dir configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: --with-eeeetype-dir configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: --with-zlib configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: --with-jpeg-dir configure: WARNING: you should use --build, --host, --target configure: WARNING: invalid host type: --with-png-dir configure: error: invalid variable name: ` --with-libxml-dir'
解決:都是因為—with前面多了個空格
問題二
Sorry, I cannot run apxs. Possible reasons follow: 1. Perl is not installed 2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs 3. Apache was not built using --enable-so (the apxs usage page is displayed)
解決辦法
brew install httpd find / -name apxs Centos下執行 yum install -y httpd-devel
查詢到apxs檔案路徑,然後修改編譯引數如下
--with-apxs2=/usr/local/bin/apxs
問題三
checking if the location of ZLIB install directory is defined... no ; configure: error: Cannot find libz.
解決辦法
brew install zlib find / -name lib
加上引數
--with-zlib-dir=/usr/local/Cellar/zlib/1.2.11
問題四
configure: error: Cannot locate header file libintl.h
原因是沒有gettext
解決辦法:
$PHP_GETTEXT /usr/local /usr; do
configure檔案改為
for i in $PHP_GETTEXT /usr/local /usr /usr/local/opt/gettext; do
問題五
configure: error: Please specify the install prefix of iconv with --with-iconv=<DIR>
解決辦法,編譯引數中加上
--with-iconv=/usr/local/Cellar/libiconv/1.15
問題六
checking for libiconv in -liconv... no checking for iconv in -liconv... no configure: error: Please reinstall the iconv library.
【最終卡在了這裡,沒解決。然後編譯安裝就沒有成功】
最後解決到問題五的時候的編譯安裝命令如下:
./configure --prefix=/usr/local/php/7.2.7—with-config-file-path=/usr/local/php/7.2.7/etc --with-config-file-scan-dir=/usr/local/php/7.2.7/etc/conf.d --with-apxs2=/usr/local/bin/apxs --with-zlib-dir=/usr/local/Cellar/zlib/1.2.11 --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv=/usr/local/Cellar/libiconv/1.15 --with-eeeetype-dir --with-zlib --with-jpeg-dir --with-png-dir --with-libxml-dir=/usr/bin/xml2-config --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-onsnssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintnener-zts --enable-mysqlnd
brew安裝
1.搜尋brew中的php
brew search php
出現了:[email protected] [email protected] [email protected]
2.然後安裝了php7.0
brew install php70
3.將php設定系統環境變數
find / -name php # 先找到php執行檔案 cp /usr/local/Cellar/[email protected]/7.0.30_1/bin/php /usr/bin # 將php執行檔案放到/usr/bin/資料夾中
最後
通過原始碼編譯安裝沒有成功,還是brew install安裝成功。
更多PHP7相關知識,請存取PHP7專題欄目!
以上就是mac安裝PHP7時出現的問題匯總的詳細內容,更多請關注TW511.COM其它相關文章!