我正在运行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
但是我在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.
但是在我的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
在我的php脚本中,我可以使用iconv函数,没有任何问题。
当我运行php-m时,我看到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)
并且在这个配置文件中启用了iconv。
即使我跑的时候
php -d error_reporting=E_ALL -r 'echo iconv("UTF-8", "ASCII//TRANSLIT", "Žluťoučký kůň\n");'
它正确执行并打印“Zlutoucky kun”。
5条答案
按热度按时间mi7gmzs61#
所以我发现, composer 使用不同的php配置文件,这是存储在
在那里我只是添加了以下行
而且一切正常!
5n0oy7gb2#
我解决了这个问题uncomment行
in/etc/php/php. ini在manjaro linux上工作
raogr8fs3#
在Centos7上的WHM中,它为我工作。
您可以替换您的php版本而不是php72
9ceoxa924#
如果您使用的是PHPBrew,请运行以下命令来安装
iconv
扩展:ncecgwcz5#
我也在运行Arch(在Manjaro堆栈下,也使用
pacman
)。如果php.ini文件声明了正确的扩展名,但仍然得到错误,请尝试
composer
标志--ignore-platform-req=
。在您的情况下,可能是这样的:此外,请确保永远不要以root用户身份运行
composer
,而要以web用户身份运行php
。如果
php
正在执行composer
命令,那么Composer可能会更好地查看更相关的php.ini文件。在为他人创建自己的项目时,错误警报的倾向可能是不使用
composer
的另一个原因。请记住,
composer
是作为一种“保姆”来自动安装依赖项的......因为Web管理员不知道如何阅读文档并自己完成,对吗?它主要适用于不了解Web管理的Web开发人员,或者被雇主或客户拒绝访问root
,但只能在堆栈中更高的位置工作。由于Composer的目的,它可能会触发很多错误警告。这可能就是为什么它有
--ignore-platform-req=
标志。不要害怕使用这个标志,因为它是composer
的补救措施之一。