intl扩展 mac 安装php,在Mac上的XAMPP上安装PHP 7.0国际化扩展(Intl)

I followed the instructions outlined here:

Ran sudo pecl install intl

selected the correct files from the Cellar

then this error happened:

/private/tmp/pear/temp/intl/intl_error.h:24:10: fatal error:

'ext/standard/php_smart_str.h' file not found

include

^ 1 error generated. make: *** [php_intl.lo] Error 1 ERROR: `make' failed

No matter, did some research and found out that PHP 7.0.8 deprecated php.smart_str.h to php.smart_string.h

So given my scant knowledge of C++ I copied smart_string.h to smart_str.h and renamed all the headers from STRING to string.....

re-ran pecl -no luck....more errors......without knowing where the .c files are and remaking php (not really interested in going that far) since anyway I'm using XAMPP so that ended that option.

I have php 5.5 on my mac, deep in the usr/local/bin folder

so next step was to get pecl to use those files and generate an intl.so file....

Did that....I have the intl.so file so put it in the 'extensions' folder in XAMPP (for reference: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012)

Ran php and came up with this error:

Warning: PHP Startup: Unable to load dynamic library

'/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so'

- dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so,

9): Symbol not found: _zval_used_for_init Referenced from:

/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so

Expected in: flat namespace in

/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so

in Unknown on line 0

I imagine it has to do with different versions?

In any case I can't get pecl to install intl without a make error in PHP 7.0.8 on XAMPP. There is no documentation on this and you'd think that if you deprecate a header.h file you'd update all extensions?

Install intl.so in PHP 7 seems impossible?

解决方案

So far, it seems that extension intl.so for php is bundled with php

and should be compiled with php (intl --enabled). XAMPP does not support this (as of Oct 2016), MAMP does. I do not know about other distros. However, if you're willing to recompile PHP 7, it's worth it just to do that and enable it during compiling.

So....I ran with MAMP. Then I decided that I would simply install apache 2.4 and php 7 and Mysql without the stack and the junk that comes with MAMP or XAMPP and everything works like a charm... so if you need to use CakePHP or intl support etc... just drop XAMPP/MAMP and go with a standard install. I used homebrew (MacOS) and everything is working fine.

Update: As regards Windows, XAMPP does not default it, but you can add the module (dll) in php.ini and works like a charm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值