在 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

在 Windows 上安装 XAMPP

在 XAMPP 上安装 SDAPS?

安装 XAMPP 时如何在 UAC 上工作

无法在 Windows 上使用 Xampp 安装 Composer

XAMPP 与单独安装