PHP编译完成后如何启用xmlwriter?

26
我在Fedora 15上尝试安装phpMyFAQ时收到了一个消息,提示缺少ext/xmlwriter。我在PHP手册上查阅到如下信息:

该扩展默认已启用。可以使用以下编译选项--disable-xmlwriter来禁用它。

我使用yum在计算机上安装了PHP,考虑重新编译PHP非常不方便。那么我可以通过编辑一些东西(例如php.ini)来启用它吗?或者有其他方法可以不重新编译PHP就完成此任务吗?如果有,请告诉我如何操作。

1
使用 phpinfo() 或者在命令行中使用 php -i 命令,您应该能够查看 PHP 构建时的编译选项。您能否看到是否有提到 xmlwriter - James C
1
是的。而且 --disable-xmlwriter 确实在配置命令中。 - lastland
1
它可能可以作为单独的.so模块构建(因此可以通过php.ini加载)。否则(强烈不建议),最终可以通过pecl install xmlwriter安装。 - mario
1
我刚刚注意到PHP手册上说:“此扩展在php.ini中没有定义配置指令。”这是否意味着无法通过php.ini启用它? - lastland
9
请尝试执行命令yum install php-xmlwriter或者yum install php-xml来安装所需的PHP XML模块。 - netcoder
之前我在yum中见过php-xml,但是没想到它会有用... 直到现在。通过yum install php-xml并编辑php.ini,这真的起作用了! - lastland
4个回答

29

在Ubuntu上以root权限执行以下命令:

apt install php-xmlwriter

这对我有效。

否则:

sudo apt install php-xmlwriter

21
在现代PHP的背景下,PHP 7使用以下库来解决这个问题 - 以PHP 7.3为例,库名为php7.3-xml。它也适用于其他版本,只需根据您的PHP版本进行更改。
在Ubuntu系统上安装的方法如下:sudo apt-get install php7.3-xml 如果您不知道具体版本,可以通过sudo apt-get install php-xml进行安装。

2
这是正确的答案,尽管无效,因为版本会更改。请使用 sudo apt-get install php-xml - Fmstrat
对于CentOS 7.8系统:sudo yum install php-xml - Hoylen

18

按照 netcoder 推荐的方法运行以下命令对我很有帮助:

yum install php-xmlwriter


5

当我迁移到新服务器时,遇到了同样的问题:

1)检查是否安装了 libxml

php -i | grep "xml"


示例结果:

1   /etc/php.d/xmlreader.ini,
2   /etc/php.d/xmlwriter.ini,
3   xmlrpc_error_number => 0 => 0
4   xmlrpc_errors => Off => Off
5   libxml
6   mbstring.http_output_conv_mimetypes => ^(text/|applicatio...
7   Simplexml support => enabled
8   xml
9   libxml2 Version => 2.7.6
10  xmlwriter

第5、9和10行告诉我们一切正常。

2)如果未安装(以CentOS为例):

yum install libxml2

并重新启动服务器:

/etc/apache2 restart

或php-fpm:

/etc/php-fpm restart

也许下一个版本会有用处:
yum install php-xmlwriter
yum install php-xml
针对 PHP 源码的安装:最新版本默认开启 xmlwriter,您可以检查一下是否设置了 --disable-xmlwriter 参数来关闭它。

3) 最后一步 - 文件:

/etc/php.d/xmlwriter.ini

需要看起来像:

; Enable xmlwriter extension module
extension=xmlwriter.so

我认为最新的字符串 - 这是解决问题的主要决策。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接