сделать маленький php-тулз

Автор daedal, 08 января 2008, 23:54:49

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

daedal

возникла проблемка. в результате непонятных манипуляций неопытным напарником, ему удалось сынсталлить неплохую тему в папке Themes  ;D но при этом права на запись у всех файлов и самой директории темы только у оунера httpd  >:( тоесть через свой ftp-аккаунт я туда не могу ничего залить или изменить. но если менять содержимое файлов в админке - все проходит на ура. собственно нужно бы сделать маахонький скрипт, в который можно былобы вписать нужную корневую директорию ручками. запустив его средствами админки, нужно чтобы он выставил всем файлам и поддиректориям 777. тоесть рекурсивный chmod. наверняка такое уже есть в Sources. может кто-нибудь уже сталкивался или знает, по-моему полезная вещь ^-^

Mavn

вообще то это проблема хоста обратитесь к хостеру
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

daedal

а я не требую от вас саппорта :) просто хотелось бы под рукой иметь такой тулз, использующий код smf.

Mavn

еще раз повторюсь проблема в вашем хосте никакого отношения к smf не имеет. Утилиту предоставляет хостер
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

daedal

Mavn, большое спасибо тебе за исчерпывающую и полезную информацию  :coolsmiley:
но контролировать это дело можно и без хостера, собственно. вот причина
ЦитироватьДело в том, что PHP-сценарии, запущенные модулем mod_php, выполняются от имени пользователя wwwserver. Соответственно, если на чтение/модификацию не были выставлены разрешения для всех (достаточно 666 - для файлов, 777 - для каталогов), то модификация созданных такими скриптами файлов (каталогов) пользователю uXXXX (id площадки) будет запрещена (при доступе по 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($path0777);
 echo 
$path;
?>
ЦитироватьРазместите этот файл на площадке, в директории, доступной веб-серверу, например, как domain.tld/www/chmod.php

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

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

думаю эта тулза поможет тем, у кого руки не кривые 2funny