Ошибка при попытке открыть страницу в public_html

Я пытаюсь запустить скрипт, который создает страницы и сохраняет их на сервере, но я получаю ошибку разрешения для одного из файлов, находящихся в каталоге public_html.

Таким образом, 2 страницы создаются в каталоге «pages», который является chmod до 0777, и они созданы отлично. Третья страница создается в каталоге «public_html», который не дает вам разрешения. Единственный способ, который я нашел, чтобы исправить это, – это chmod в каталоге «public_html» до 0770, который тогда работает, но я настоятельно рекомендовал хостинговую компанию не делать этого без риска для безопасности.

Поэтому мой вопрос: есть ли другие пути для достижения этой цели? Вникая в это немного, похоже, что мне нужно дать сценарий «пользователь» priviliges, который может работать, но в настоящее время это невозможно. Я даже не уверен, что сценарий работает как на данный момент, я бы предположил, что «группа», поскольку chmoding public_html до 0770 позволяет «группе»,

Моя настройка: vps server running centos CENTOS 6.7 x86_64

php 5, dso, Apache suEXEC on

упрощенный код, который я использую:

$page_path = "/home/username/public_html/"; $loop[Html_Name] = "test.html"; $new_page_file = "test.html"; $fp = fopen($page_path.$loop[Html_Name], "w"); fwrite($fp, $new_page_file); fclose($fp); chmod($page_path.$loop[Html_Name], 0666); 

Спасибо заранее.

Как правило, мы используем ftp в этих ситуациях. / public_html может оставаться до 750 и запускать этот код.

 $server = 'localhost'; $ftp_user_name = 'username'; $ftp_user_pass = 'passw'; $dest = 'public_html/new.file'; $source = '/home/username/public_html/path/to/existing.file'; $connection = ftp_connect($server); $login = ftp_login($connection, $ftp_user_name, $ftp_user_pass); if (!$connection || !$login) { die('Ftp not connected.'); } $copied = ftp_put($connection, $dest, $source, FTP_BINARY); if ($copied) { echo 'File copied'; } else { echo 'Copy failed!'; } ftp_close($connection); 

Страница с конечным пунктом назначения в public_html может быть создана в другом каталоге, а затем этот скрипт скопирует ее в public_html. Старый файл останется, и если файл существует с тем же именем назначения, он будет перезаписан.
$ Dest – относительный путь к домашнему каталогу пользователя. Источник $ – это абсолютный путь.
Соединение будет терпеть неудачу, если ftp одновременно используется filezilla или что-то в этом роде. Решением этого является создание второй учетной записи пользователя ftp в cPanel.