调用未定义的函数 simplexml_load_file()
Posted
技术标签:
【中文标题】调用未定义的函数 simplexml_load_file()【英文标题】:Call to undefined function simplexml_load_file() 【发布时间】:2018-09-01 23:36:05 【问题描述】:我的 ubuntu 服务器上运行着 php 7.0。
php -m 命令说:
[PHP 模块] 日历 核 类型 卷曲 日期 dom exif 文件信息 筛选 ftp gd 获取文本 哈希 图标v 国际 json libxml mbstring mcrypt mysqli mysqlnd openssl pcntl 聚合酶链反应 PDO pdo_mysql 法尔 正则表达式 阅读线 反射 会议 shmop 简单XML 插座 声压级 标准 系统虚拟机 系统 系统 分词器 wddx xml xml阅读器 xmlwriter xsl Zend OPcache 压缩 zlib但是当我运行我的网站时,它的日志仍然显示“PHP 致命错误:”
【问题讨论】:
命令行中使用的 PHP 配置不一定与运行网站时使用的相同。在网页上尝试phpinfo()
,或检查您的主机配置,以确定在该环境中加载了哪些模块。
使用 phpinfo() 检查时未加载 Simplexml。但是我尝试通过命令 php a2enmod simplexml 启用 simplexml,但它仍然没有启用。该命令不会给出错误。一些网站说重启/opt/php 7.0-fpm..但是文件丢失了。
你找到解决办法了吗?
【参考方案1】:
我有同样的问题。我通过安装php7.2-xml
修复了它:
$ sudo apt-get install php7.2-xml
$ sudo systemctl reload apache2
之后,SimpleXML 被php -m
列出:
$ php -m | grep -i simple
SimpleXML
【讨论】:
同样,在 CentOS 8 中,我用“yum install php-xml”解决了这个问题 在 Debian 10 上工作。 在 Debian 9 上也为我工作(但 php7.3-xml)。 "sudo apt-get install php7.4-xml" 然后在 Ubuntu 20.04 上使用 "sudo systemctl reload apache2" 谢谢!最好将 reload apache2 部分添加到答案中。【参考方案2】:我使用的是 ubuntu 18.04。当我在模块列表中检查 SimpleXML 时,它和你的一样。
然后我检查了我的 phpinfo(),它说它是从不同的 php 版本中提取的,并且与 php cli 不同。
要检查 php cli 版本,我运行 php -v
为了检查 phpinfo(),我将该函数放在脚本 index.php 的顶部。
确认我的phpcli版本与phpinfo中的不同后,
我只是运行这 2 个命令
sudo a2dismod php7.0
sudo a2enmod php7.3
然后重启我的apache
sudo systemctl 重启 apache2
之后,我再次测试我的 phpinfo()
现在它正在工作。
【讨论】:
以上是关于调用未定义的函数 simplexml_load_file()的主要内容,如果未能解决你的问题,请参考以下文章