Composer - 缺少扩展iconv

Tan*_*che 11 php apache iconv composer-php nette

我正在运行Manjaro linux,我已经安装了apache 2.4.10-1和php 5.5.15-1以及php-composer 1.0.0.alpha8.458-1.

我想用这个命令下载带有composer的项目

composer create-project nette/sandbox TaskManager
Run Code Online (Sandbox Code Playgroud)

但是我在使用ext-iconv时遇到错误

- nette/neon v2.2.1 requires ext-iconv * -> the requested PHP extension iconv is missing from your system.
- nette/nette v2.2.0 requires ext-iconv * -> the requested PHP extension iconv is missing from your system.
Run Code Online (Sandbox Code Playgroud)

但是在我的php.ini中我启用了iconv扩展

extension=iconv.so
.
.
[iconv]
iconv.input_encoding = ISO-8859-1
iconv.internal_encoding = ISO-8859-1
iconv.output_encoding = ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

在我的PHP脚本中,我可以使用iconv函数,没有任何问题.

当我运行php -mi时,请在列表中查看iconv与其他模块

知道哪里可能有问题?

编辑:当我从cli运行php -i时,我得到了这个:

Configuration File (php.ini) Path => /etc/php
Loaded Configuration File => /etc/php/php.ini
Scan this dir for additional .ini files => /etc/php/conf.d
Additional .ini files parsed => (none)
Run Code Online (Sandbox Code Playgroud)

在此配置文件中启用了iconv.

即使我跑步

php -d error_reporting=E_ALL -r 'echo iconv("UTF-8", "ASCII//TRANSLIT", "Žlu?ou?ký k??\n");'
Run Code Online (Sandbox Code Playgroud)

它正确执行并打印"Zlutoucky kun".

Tan*_*che 15

所以我发现,作曲家使用不同的php配置文件,存储在

/usr/share/php-composer/php.ini
Run Code Online (Sandbox Code Playgroud)

在那里我刚刚添加了以下行

extension=iconv.so
Run Code Online (Sandbox Code Playgroud)

一切正常!


Ahm*_*ğur 6

在 Centos7 上的 WHM 中,它对我有用。

yum install ea-php72-php-iconv
Run Code Online (Sandbox Code Playgroud)

您可以替换您的 php 版本而不是php72


dar*_*xlz 5

我解决了这个问题,取消了注释

ext=iconv
Run Code Online (Sandbox Code Playgroud)

在/etc/php/ini.php中在manjaro linux上工作

  • 我尝试在 /etc/php/php.ini 中编辑然后取消注释 extension=iconv (3认同)