提问人:Montague W 提问时间:7/26/2023 最后编辑:hakreMontague W 更新时间:7/26/2023 访问量:51
SimpleXML 在 Web 服务器中出现未捕获的错误,尽管它已在 CLI 中安装并启用
SimpleXML giving an Uncaught Error in Webserver despite it being installed and enabled in CLI
问:
我正在尝试在谷歌云中的灯服务器上运行 php 脚本。尽管 SimpleXML 和 xml 已安装并处于活动状态(据我所知),但由于未捕获的错误,该脚本仍失败。我刚搬到 Google Cloud,对环境不够熟悉,也不知道是否遗漏了一些基本的设置步骤。我在同一台服务器上设置并成功运行了 wordpress,所以我对此有点困惑。将不胜感激任何帮助或指导!
Ubuntu 20.04.6 LTS 上的 PHP 8.2.8。
每当我尝试使用 SimpleXMLElement 时,我都会收到此错误。
Fatal error: Uncaught Error: Class "SimpleXMLElement" not found in /var/www/html/ifg_indexp/tpnapis/simplexmltest.php:48
我以为可能该功能没有安装/启用,但似乎是:
$ php -m | grep SimpleXML
SimpleXML
$ php -m | grep xml
libxml
xml
xmlreader
xmlrpc
xmlwriter
php -i 返回模块已启用,所以这似乎也没问题。
$ php -i
SimpleXML
SimpleXML support => enabled
Schema support => enabled
此外,xml 显示为活动状态:
xml
XML Support => active
XML Namespace Support => active
libxml2 Version => 2.9.14
我尝试测试的简化文件如下:
<?php
use SimpleXMLElement;
//use SimpleXML;
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$note = <<<XML
<depots>
<depot>
<number>001</number>
<phone>111</phone>
<name>company1</name>
<depotaddress>
<add1>address line1</add1>
<add2>address 2</add2>
</depotaddress>
</depot>
<depot>
<number>002</number>
<phone>222</phone>
<name>company2</name>
<depotaddress>
<add1>address1</add1>
<add2>address2</add2>
</depotaddress>
</depot>
</depots>
XML;
echo "</br>printf : ";printf($note);
echo "</br>var_dump : ";var_dump($note);
echo "</br>asXML :";
$xml = new SimpleXMLElement($note);
echo $xml;
echo $xml->asXML();
?>
这在屏幕上给了我这个结果:
printf : 001 111 company1 address line1 address 2 002 222 company2 address1 address2
var_dump : string(364) " 001 111 company1 address line1 address 2 002 222 company2 address1 address2 "
asXML :
Fatal error: Uncaught Error: Class "SimpleXMLElement" not found in /var/www/html/xxx1/xxx2/simplexmltest.php:40 Stack trace: #0 {main} thrown in /var/www/html/xxx1/xxx2/simplexmltest.php on line 40
对我来说唯一奇怪的是 phpinfo() 上的 PHP 版本与 cli 上的版本不同。
此外,phpinfo() 屏幕上没有 SimpleXML 详细信息框。
答: 暂无答案
评论
phpinfo();