Управление доступом к файлам и каталогам
PHP
-сценарии, запущенные модулем mod_php, выполняются от имени пользователя
apache
. Соответственно, если на чтение/запись не были выставлены разрешения для всех (достаточно 644 - для файлов, 755 - для каталогов), то модификация созданных такими скриптами файлов (каталогов) пользователю будет запрещена (при доступе по
SSH
, по
FTP
).
Для того, чтобы проблема не возникала - нужно для такого каталога (файла) установить права, достаточные для модификации файлов, посредством функции chmod.
Сделать это можно, исполнив следующий PHP-сценарий:
<?php function chmod_R($path, $perm) { $handle = opendir($path); while ( false !== ($file = readdir($handle)) ) { if ( ($file !== ".") && ($file !== "..") ) { if ( is_file($file) ) { chmod($path . "/" . $file, $perm); } else { chmod($path . "/" . $file, $perm); chmod_R($path . "/" . $file, $perm); } } } closedir($handle); } $path = $_SERVER["QUERY_STRING"]; if ( $path{0} != "/" ) { $path = $_SERVER["DOCUMENT_ROOT"] . "/" . $path; } chmod_R($path, 0755); chmod($path, 0755); echo $path; ?>
Разместите этот файл на хостинге, в директории, доступной Вашему веб-серверу, например, как httpdocs/chmod.php
Вызывать скрипт нужно так (в браузере):
http://ваш_домен/chmod.php?path_to_problem_dir
где
path_to_problem_dir
- путь, относительно DocumentRoot для данного домена (httpdocs/ в нашем примере).
Обратите внимание, что на серверах нашего хостинга по умолчанию используется FastCGI , для этого режима такие проблемы с правами исключены и описанный способ не действует.
Если у Вас возникли трудности с установкой прав на файлы и папки, обращайтесь в круглосуточную Службу технической поддержки нашего хостинга.