无法在Debian9上使用PHP7启用XMLWriter模块

时间:2018-10-05 22:05:33

标签: php debian

我正在尝试安装使用PHPSpreadSheet库的PHP应用程序。

Web服务器是Nginx;操作系统是Debian 9.5,当前的PHP-FPM版本是7.0。

在尝试使用PHPSpreadsheet库时,我面临如下错误

  

错误:找不到类“ XMLWriter”

     

文件/var/www/XXXX/vendor/cakephp/cakephp/src/PhpOffice/PhpSpreadsheet/Shared/XMLWriter.php

     

第5行

深入研究库本身,我看到该类正在尝试从\ XMlWriter继承-这是一个描述为PHPSpreadsheet正常运行所必需的模块-直到现在我还好。

<?php

namespace Cake\PhpOffice\PhpSpreadsheet\Shared;

class XMLWriter extends \XMLWriter
{
...

问题是我已经在Debian上安装了php7.0-xml(也为Nginx所困扰),但是似乎XMLWriter仍未安装,因此产生了致命错误...

请参阅以下apt的输出

apt-get install php7.0-xml
Reading package lists... Done
Building dependency tree
Reading state information... Done
php7.0-xml is already the newest version (7.0.30-0+deb9u1).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

此外,在我的phpinfo文件中,除了显示的作者姓名之外,我找不到对XMLWriter的任何其他引用。绝对未启用此模块!

要在PHP环境中真正启用此模块,还需要执行其他步骤吗?

编辑: 我还必须安装php7.0-gd和php7.0-zip;对于这2个模块,我分别运行了apt-get install php7.0-gd php7.0-zipservice php7.0-fpm restart,以查看它们在我的phpinfo()中处于活动状态

这些模块的一切似乎都很正常,因为我可以在/etc/php/7.0/fpm/mods-available中看到ini文件

ls /etc/php/7.0/mods-available/ -al
total 28
drwxr-xr-x 2 root root 4096 Oct  5 23:04 .
drwxr-xr-x 4 root root 4096 Sep 24 13:09 ..
-rw-r--r-- 1 root root   64 Jun 14 15:50 gd.ini
-rw-r--r-- 1 root root   71 Jun 14 15:50 mysqli.ini
-rw-r--r-- 1 root root   72 Jun 14 15:50 mysqlnd.ini
-rw-r--r-- 1 root root   74 Jun 14 15:50 pdo_mysql.ini
-rw-r--r-- 1 root root   66 Jun 14 15:50 zip.ini

在那里,对于xml或xmlwriter的任何操作,我都遵循完全相同的命令。

我可以在与gd.so或zip.so相同的位置找到xml.so,但是暂时无法启用此扩展!

find / -name xml.so
/usr/lib/php/20151012/xml.so

find / -name gd.so
/usr/lib/php/20151012/gd.so

此致

2 个答案:

答案 0 :(得分:0)

好,我终于得到了这个。

我刚跑

apt-get purge php7.0-xml && apt-get install php7.0-xml

在重新启动PHP以查看XML模块(Reader,Writer和其他模块)之前。

我不知道发生了什么,但至少我已经完成了。

此致

答案 1 :(得分:0)

在Ubuntu 18.04上以root用户身份

apt install php-xmlwriter

或使用sudo:

sudo apt install php-xmlwriter