DOMDocument保存无法打开流:如果https

时间:2018-10-19 15:43:59

标签: php .htaccess http https domdocument

保存DOMDocument创建的文件时出现问题。

我的主机已启用HTTPS协议,为确保所有页面都使用此协议,我创建了以下htaccess:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

所有页面都正确重定向到HTTPS协议。

在创建DOMDocument之后,我将其保存时会出现问题。

如果我删除.htaccess文件,则会正确保存文件;相反,如果我使用https协议打开当前正在创建文件的页面,则不会创建该文件,并且出现此错误:

  

警告:DOMDocument :: save(../../ data / files / 1 / TEST.xml):无法打开流:/usr/local/psa/home/vhosts/myhost.com/中的权限被拒绝第1229条第2行的httpdocs / user / test / dir / dirtwo / dirthree / test.php

我尝试保存文件的路径类似于755权限。

我在HTTP中重复一遍,它工作正常,文件已正确创建和保存。我在HTTPS中强制执行所有操作后,该文件将不会保存。

有人知道我错了吗?

脚本

<?php
echo "start<br>";
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$doc = new DOMDocument('1.0');
// nous voulons un bel affichage
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

$doc->save("test.xml");
echo "<br>end";
?>

结果

start
Warning: DOMDocument::save(test.xml): failed to open stream: Permission denied in /usr/local/psa/home/vhosts/myhost.com/httpdocs/user/test/dir/dirtwo/dirthree/test.php on line 20
end

谢谢!

1 个答案:

答案 0 :(得分:0)

我已经解决了将权限从755更改为777的问题