Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Как вы узнали о нашем сайте?

От друга, знакомого
Из печатных источников
Из поисковой машины
По ссылке с другого сайта
Случайно
Не знаю


Результаты
Другие опросы

Всего голосов: 1031
Комментарии: 4


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Статьи и обзоры



Проблемы с доступом к файлам, созданным PHP-скриптами?

Речь пойдет о новой версии самого популярного в настоящее время языка написания сценариев для сервера - РНР 5. Этот язык позволяет разрабатывать высокопроизводительные Web-сайты любого масштаба и любой категории сложности. Рассматриваются такие вопросы, как синтаксические конструкции языка, объектно-ориентированное программирование на РНР, работа с базами данных и графическими изображениями, а также построение WAP-содержимого. Большое внимание уделяется эффективным решениям типовых практических задач на PHP, среди которых аутентификация посетителей, шифрование данных, использование сеансов, обработка ошибок, работа с электронной почтой. Дело в том, что PHP-сценарии, запущенные модулем mod_php, выполняются от имени пользователя wwwserver. Соответственно, если на чтение/модификацию не были выставлены разрешения для всех (достаточно 666 — для файлов, 777 — для каталогов), то модификация созданных такими скриптами файлов (каталогов) пользователю будет запрещена (при доступе по SSH, по FTP).

Исключить проблему можно, установив достаточные для модификации файлов посредством функции chmod.

Сделать это рекурсивно можно, исполнив PHP-сценарий:
PHP - Код
function chmod_R($path$perm) {

  
$handle opendir($path);
  while ( 
false !== ($file readdir($handle)) ) {
    if ( (
$file !== "..") ) {
      @
chmod($path "/" $file$perm);
      if ( !
is_file($path."/".$file) && ($file !== ".") )
        
chmod_R($path "/" $file$perm);
    }
  }
  
closedir($handle);

}

$path $_SERVER["QUERY_STRING"];

if ( 
$path{0} != "/" )
  
$path $_SERVER["DOCUMENT_ROOT"] . "/" $path;

chmod_R($path0777);
echo 
$path;




Разместите этот файл на площадке, в директории, доступной веб-серверу, например, как: domain.tld/www/chmod.php где domain.tld/www — корневая директория (DocumentRoot) вашего сайта на сервере.

Вызывать скрипт нужно так:
http://domain.tld/chmod.php?путь_к_нужной_директории
или так:
http://domain.tld/chmod.php?/home/uXXXXX/domain.tld/www/путь_к_нужной_директории

В первом случае указывается путь относительно DocumentRoot для вашего сайта (domain.tld/www/ в данном примере). Во втором случае (uXXXXX — идентификатор вашей площадки) — абсолютный путь от корневой директории сервера.

При запуске скрипта без параметров будут изменены права для всех файлов и директорий, располагающихся в DocumentRoot.



Нет комментариев. Почему бы Вам не оставить свой?
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



Статьи и обзоры PHP Проблемы с доступом к файлам созданным PHP-скриптами Дело том что PHP-сценарии запущенные модулем mod_php выполняются от имени пользователя wwwserver Соответственно если на чтение/модификацию не были выставлены разрешения для всех достаточно файлов каталогов то модификация созданных такими скриптами пользователю будет запрещена при доступе по Исключить проблему можно установив достаточные модификации посредством функции chmod Сделать это рекурсивно исполнив PHP-сценарий