2016-09-22 6 views
1

일부 rss/atom 피드 (필요한 경우 아래 코드)를 집계하기 위해 SimplePie 1.4.2 (GitHub에서 마지막 태그 버전)의 컴파일 된 버전을 사용하고 있습니다.Azure의 SimplePie가 https 피드를 파싱하지 않습니다.

두 리눅스 기반 웹 호스트에서 잘 작동하지만 Azure app services으로 업로드하면 http 피드가 제대로 표시되지만 https는 제대로 표시되지 않습니다.

왜 그런가? 두 환경에서 PHP 5.6을 사용하여 웹 응용 프로그램에 특정 설정을 지정하지 않았습니다. http 또는 https를 통해 azure 웹 앱에 액세스하는 데 차이가 없습니다.

감사합니다.


<?php 
date_default_timezone_set('Europe/Rome'); 
set_time_limit(0); 
header('Content-Type: application/rss+xml; charset=UTF-8'); 
require_once('SimplePie.compiled.php'); 

[...] 

echo '<?xml version="1.0" encoding="UTF-8"?>'; 
?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/"> 
<channel> 
<title><?php echo $feedtitle; ?></title> 
<atom:link href="<?php echo $feedlink; ?>" rel="self" type="application/rss+xml" /> 
<link><?php echo $feedhome; ?></link> 
<description><?php echo $feeddesc; ?></description> 
<?php 
$feed = new SimplePie(); 
$feed->set_feed_url($feeds); 
$feed->force_feed(true); 
$feed->init(); 
$feed->handle_content_type(); 
foreach($feed->get_items() as $item) { 
    ?> 
    <item> 
     <title><?php echo $item->get_title(); ?></title> 
     <link><?php echo $item->get_permalink(); ?></link> 
     <guid><?php echo $item->get_permalink(); ?></guid> 
     <pubDate><?php echo $item->get_date('D, d M Y H:i:s T'); ?></pubDate> 
     <dc:creator><?php if ($author = $item->get_author()) { echo $author->get_name()." at "; }; ?><?php if ($feed_title = $item->get_feed()->get_title()) {echo $feed_title;}?></dc:creator> 
     <description><![CDATA[<?php echo $item->get_content(); ?>]]></description> 
    </item> 
    <? 
}; 
?> 
</channel> 
</rss> 

답변

1

SimplePie를 HTTP 요청을 만들기 위해 cURL을 활용하기 때문에 그것은 '은 https'URL의 작품을 나던 및 https 요청의 cURL 호스트 또는 피어 인증서를 확인해야합니다.

다음 코드 스 니펫을 시도하여 인증을 건너 뛸 수 있습니다. 여기

$simplePie = new SimplePie(); 
$simplePie->set_curl_options(
    array(
     CURLOPT_SSL_VERIFYHOST => false, 
     CURLOPT_SSL_VERIFYPEER => false 
    ) 
); 

https://github.com/simplepie/simplepie/pull/407

에서 유사한 시나리오