首页 > 解决方案 > 使用 XMLReader() 的内部服务器错误 500

问题描述

我遇到了一个奇怪的问题......我正在使用 XMLReader() 从远程服务器打开大型 XML 文件并解析它。在本地服务器上,我可以从远程服务器打开 XML 文件并成功解析它。但是当在真实服务器上尝试相同时,我收到此错误Internal Server Error 500. ,我尝试使用 Curl 创建临时文件...

     $xml = new XMLReader();

     $temp_file = tempnam(sys_get_temp_dir(), 'Temp_XML');

     $fp = fopen($temp_file, 'w+');
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_FILE, $fp);
     curl_exec($ch);
     curl_close($ch);
     fclose($fp);
     $xml->open($temp_file); 

但是没有成功,同样的错误。为什么会这样?
1.编辑 [fastcgi:error] [pid 18996:tid 139642498168576] [client xxx.xxx.xxx.xxx:56057] FastCGI: comm with (dynamic) server "/usr/local/fastcgi/cgi-bin/php-cgi" aborted: (first read) idle timeout (300 sec) 了这个错误。我尝试使用函数 set_time_limit(3600) 增加超时时间;但似乎这不起作用。

标签: phpxmlxmlreader

解决方案


推荐阅读