При сохранении DOMDocument не удалось открыть поток: в доступе отказано, если https - PullRequest
0 голосов
/ 19 октября 2018

У меня проблема с сохранением файла, созданного с помощью 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/httpdocs/user/test/dir/dirtwo/dirthree/test.php встрока 1229 2

Путь, в котором я пытаюсь сохранить файл, похож на разрешения 755.

Я повторяю в HTTP, что он работает отлично, файл создан и сохранен правильно.Как только я заставляю все в HTTPS, файл не сохраняется.

Кто-нибудь знает, где я не прав?

SCRIPT

<?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 голосов
/ 19 октября 2018

Я решил проблему с изменением разрешений с 755 на 777

...