MAC下PHP7.1.23安装intl3.0.0
**** 歡迎轉(zhuǎn)載,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處,商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系 forzhangy@163.com ****
?
最近幫人做站,接觸到PrestaShop 1.7,然后想自己先在本地搭一個(gè)環(huán)境起來,結(jié)果遇到坑了。
這個(gè)坑是長(zhǎng)這樣子滴:
我現(xiàn)在用的是macOS Mojave (10.14.4),自帶的PHP 7.1.23 (cli) (built: Feb 22 2019 22:08:13) ( NTS )
prestashop安裝的時(shí)候,提示需要intl插件,然而....坑來了,intl在安裝的時(shí)候報(bào)錯(cuò)提示缺少頭文件"php_smart_str.h",這玩意兒在現(xiàn)行的php版本中已經(jīng)沒有了,替代的是"php_smart_string.h"。這都不是重點(diǎn),重點(diǎn)是intl這個(gè)插件貌似沒有更新了,它只認(rèn)"php_smart_str.h"這個(gè)文件。從頭到尾,這個(gè)坑我爬了三天,還是太年輕,技術(shù)積累太差了。
背景交待完畢,進(jìn)入正題,這個(gè)坑我是怎么填的呢,如下:
?
先把前置環(huán)境配一下,可能你需要一個(gè)ICU和Autoconf,網(wǎng)絡(luò)狀況不好的話,可能會(huì)下載失敗,多試幾次即可
安裝擴(kuò)展之前,把這件事情做一下?Download PEAR 這一段來自:
-----------------------------------------
(作者:jason 鏈接:https://www.zhihu.com/question/37469140/answer/109028380 來源:知乎)
curl -O http://pear.php.net/go-pear.phar sudo php -d detect_unicode=0 go-pear.pharConfigure and Install PEAR
You should now be at a prompt to configure PEAR.
Enter:
/usr/local/pearEnter:
/usr/local/binYou should be able to type:
pear version----------------------------
開始安裝擴(kuò)展
Installing ICU
cd ~ && curl -O http://download.icu-project.org/files/icu4c/52.1/icu4c-52_1-src.tgz tar -zxvf icu4c-52_1-src.tgz cd icu/source ./runConfigureICU MacOSX make sudo make install如果你有如下報(bào)錯(cuò),你可以去找其他版本的ICU? ?http://site.icu-project.org/download
ld: 304 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1接著,安裝autoconf
注意:autoconf-2.69不固定,看你下載是哪個(gè)版本
cd ~ && curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz tar -zxvf autoconf-latest.tar.gz cd autoconf-2.69 ./configure make sudo make install?
安裝完了,清除安裝包
cd ~ rm -rf icu rm -rf autoconf-2.69?
接下來,配置一下php.ini
sudo cp /etc/php.ini.default /etc/php.inisudo vi /etc/php.ini
在php.ini中添加兩行
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20160303"
extension=intl.so
*no-debug-non-zts-20160303 這里可能隨版本不同,后面數(shù)字也有不同,注意查看*
?
前置技能加滿,開始大招
================================
1.?到php的官網(wǎng)下載7.1.3的版本,這個(gè)版本中還保留著intl擴(kuò)展,我直接下載了tar.gz壓縮格式 https://www.php.net/distributions/php-7.1.3.tar.gz
2.自己手動(dòng)編譯得到擴(kuò)展? intl.so
步驟如下:
1)進(jìn)入到php的?ext/intl?目錄下,執(zhí)行??phpize,?權(quán)限不夠加sudo,正常的話,應(yīng)該是以下信息
sudo phpize Password: Configuring for: PHP Api Version: 20160303 Zend Module Api No: 20160303 Zend Extension Api No: 320160303?
2)在當(dāng)前目錄下執(zhí)行 ./configure --with-php-config=/usr/bin/php-config? ?(當(dāng)前使用的php,不知道的話執(zhí)行where php-config)
?
3)還是當(dāng)前目錄,執(zhí)行 make ,若報(bào)錯(cuò),可參考這里 https://segmentfault.com/q/1010000010678737
?
4)再執(zhí)行 make install,還是老話,權(quán)限不夠在前面加sudo
?
5)會(huì)在intl/module目錄下看到有個(gè)intl.so文件,復(fù)制這個(gè)文件到要使用的php/extentions目錄下即可。
?
參考資料:
?
https://codingexplained.com/dev-ops/mac/installing-php-intl-extension-os-x-mavericks#comment-42246
https://www.zhihu.com/question/37469140
http://www.php.cn/php-weizijiaocheng-387299.html
https://segmentfault.com/q/1010000010678737
?
轉(zhuǎn)載于:https://www.cnblogs.com/daoxian/p/10910614.html
總結(jié)
以上是生活随笔為你收集整理的MAC下PHP7.1.23安装intl3.0.0的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好程序员大数据笔记之:Hadoop集群搭
- 下一篇: Git pull[push] 不用每次输