在 XAMPP 上安装 Php-intl
Posted
技术标签:
【中文标题】在 XAMPP 上安装 Php-intl【英文标题】:Php-intl installation on XAMPP 【发布时间】:2015-03-09 06:46:45 【问题描述】:我需要在我的 Mac 上通过 XAMPP 使用扩展 intl。
所以我关注了这个链接:
php-intl installation on XAMPP for Mac Lion 10.8
http://lvarayut.blogspot.it/2013/09/installing-intl-extension-in-xampp.html
我总是重启我的 apache 服务器,但没有安装扩展。因为如果我启动:
php -m | grep intl #should return 'intl'
返回空
没有它我无法启动的命令是针对 composer 和 cakephp 的,如下所示:
composer create-project --prefer-dist -s dev cakephp/app cakephp3
返回这个错误:
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for cakephp/cakephp 3.0.*-dev -> satisfiable by cakephp/cakephp[3.0.x-dev].
- cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system.
Problem 2
- cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system.
- cakephp/bake dev-master requires cakephp/cakephp 3.0.x-dev -> satisfiable by cakephp/cakephp[3.0.x-dev].
- Installation request for cakephp/bake dev-master -> satisfiable by cakephp/bake[dev-master].
所以我需要用扩展intl来解决ext-intl的问题。
有人可以帮我解决这个问题吗? 如何安装此扩展程序?
谢谢
【问题讨论】:
设置MAMP路径***.com/questions/4145667/…也是自动的 【参考方案1】:以下这些步骤对我有帮助,以防万一您使用的是 OSX
来自http://www.phpzce.com/blog/view/15/installing-intl-package-on-your-mac-with-xampp的步骤
检查设置了哪个php路径,即
root$: which php
如果你在你的 mac 上使用 xampp,它应该是
/Applications/XAMPP/xamppfiles/bin/php
但如果它的
/usr/bin/php
你需要改变你的 OSx php
root$: PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
安装icu4c
root$: brew install icu4c
通过 PECL 安装 Intl
root$: sudo pecl update-channels
root$: sudo pecl install intl
你可以检查Intl是否安装成功
root$: php -m | grep intl #should return 'intl'
完成
=============================
注意:
来自/Applications/XAMPP/xamppfiles/etc/php.ini
文件中的扩展列表添加/取消注释extension=intl.so
行。并重新启动 Apache。谢谢@pazhyn
在安装“intl”之前,如果您尚未安装 Autoconf,则必须先安装它。谢谢@Digint
通过Homebrew brew install autoconf automake 或通过运行以下命令
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
tar xzf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr/local
make
sudo make install
cd ..
rm -r autoconf-*
【讨论】:
得到'没有可用于包“pecl.php.net/intl”的版本' 当我运行这个命令 sudo pecl install intl 它返回这个消息 没有可用的版本包“pecl.php.net/intl”安装失败@Belalmazlom 您还需要将extension=intl.so
添加到您的/Applications/XAMPP/xamppfiles/etc/php.ini 文件中并重新启动Apache。
在安装 intl 之前,如果您还没有安装 Autoconf,则必须先安装它。在您的终端中执行以下命令: cd ~ && curl -O ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz tar -zxvf autoconf-latest.tar.gz cd autoconf-2.69 ./configure make sudo make install
谢谢。这适用于 XAMPP PHP 5.6 版本,但不适用于 PHP 7。它给出错误“致命错误:'ext/standard/php_smart_str.h' file not found”【参考方案2】:
我在使用 Moodle 时遇到了 intl 问题,我通过以下操作解决了这个问题:
-
重新运行 XAMPP 安装程序 (if you don't have the installer on hand, download it from here) 并勾选“XAMPP Developer Files”
使用终端进入 XAMPP 的二进制文件夹
$ cd /Applications/XAMPP/bin
使用 PHP 的包管理器通过运行 $ sudo ./pecl install intl
来安装 intl
这应该会编译一些东西,如果成功,安装应该完成:
Build process completed successfully
Installing '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/intl.so'
install ok: channel://pecl.php.net/intl-3.0.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=intl.so" to php.ini
$ cd ../etc
那里有你的 php.ini
,你必须添加 extension=intl.so
在我的系统上,我在第 959 行之后附加了一行,你可以通过搜索 php_intl
找到它
最后从 XAMPP GUI 重新启动您的 Apache Web 服务器。
希望这对你有用!
【讨论】:
这里询问应该在哪里安装 icu 库 当我运行这个命令 sudo ./pecl install intl 它返回这个 msg No release available for package "pecl.php.net/intl" install failed【参考方案3】:我在使用 XAMPP 时遇到了同样的问题。 我尝试了几个答案,但没有成功。 可以解决降低替代库http://php-osx.liip.ch/ 的问题。 这个库 php,已经安装了 intl 和其他几个包。 下载后转到xampp中的httpd.conf,LoadModule php5_module指向/usr/local/php5/libphp5.so中的这些包
【讨论】:
可能是一个解决方案,我会尽快尝试,谢谢 我刚试过这个——它奏效了!谢谢!我还必须将 /usr/local/php5/bin 添加到 PATH 变量的前面。一旦我这样做了,一切似乎都很好。我已经尝试了 2 天的各种事情,这似乎已经为我破解了! 最后,经过大量互联网搜索,这篇文章解决了我的问题,感谢 Leandro Souza Araujo 和 Sharon... 我使用了 /usr/local/php5/libphp7.so 而不是 libphp5。所以..并添加:export PATH="/usr/local/php5/bin:$PATH" in .bash_profile。 最后,找到了一个可行的解决方案,现在已经让我头疼了好几个小时,从内置 apache 跳到 brew 然后 xampp.. 但不是 100% 为我工作.. 我只需要 intl。所以我只是把这个文件:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20170718/intl.so 放入 php.ini 问题解决了。谢谢【参考方案4】:上述解决方案不适用于 PHP 7.4,因为在我运行之后
sudo pecl install intl
然后我得到这个错误:
n file included from
fatal error: 'php.h' file not found
#include <php.h>
^~~~~~~
1 error generated.
make: *** [php_intl.lo] Error 1
ERROR: `make' failed
【讨论】:
您设法解决了这个问题吗?我遇到了同样的错误。以上是关于在 XAMPP 上安装 Php-intl的主要内容,如果未能解决你的问题,请参考以下文章
错误:包:php-intl-7.3.28-1.el7.remi.x86_64