Сетевые диски и Апач

master_x

Pitavale XXI wieku
Сетевые диски и Апач

Решил вот в качестве документРута для апача указать папку на сетевом диске... не получилось... апач не находит папку. все делается под WinXP. В чем может быть проблема?
 

master_x

Pitavale XXI wieku
как обычно, диск подключен к \\sun
сам диск обознач. буквой Z
следовательно путь указываю такой z:/www
 

bizon-k

Guest
Вообще-то это вопрос прав.
Нужно проверить на каких правах стартует сервис Апача.
Если как локальный сервис, то само собой - он не будет видеть никаких сетевых дисков.
Т.е. апач должен стартовать с правами того же юзверя, который видит в вашем случае диск z:/www

-~{}~ 25.07.05 17:03:

Хотел добавить, что это тема не для данной ветки форума, а для http://phpclub.ru/talk/forumdisplay.php?forumid=25.
 

master_x

Pitavale XXI wieku
так по-моему в этом случае апач писал бы в логах, что access denied, а то ведь пишет, not found
 

bizon-k

Guest
master_x
А вот и нет, - он именно его не видит - поэтому и пишет, что нот фаунд.

-~{}~ 25.07.05 17:08:

Более того, если в дальнейшем планируешь юзать сетевые диски (подмапленные) при работе связки win32, Apache, PHP, совет - мапь диски прямо из под апача, используя net use
В противном случае геммороя не оберешься - сам на эти грабли столько раз наступал ...
 

master_x

Pitavale XXI wieku
а вот про маппинг дисков из под Апача можно поподробнее?
 

bizon-k

Guest
Автор оригинала: master_x
а вот про маппинг дисков из под Апача можно поподробнее?
Ну вот пару функций, которые помогут в этом нелегком труде :)

PHP:
function mysystem($command)
{
 $out = '';
 if (!($p=popen("($command)2>&1","r"))) { 
   return 126;
 }
 while (!feof($p)) {
   $line=fgets($p,1000);
   $out .= $line;
 }
 pclose($p);
 return $out; 
}

function map_network_drive($drive_name, $remote_dir) {
    $drive_name = strtoupper($drive_name);
    $remote_dir = strtoupper($remote_dir);
    $map = false;
	$str = mysystem("net use");
	$str = preg_split("/\r{0,}\n/", $str, -1, PREG_SPLIT_NO_EMPTY);
	foreach ($str as $val) {
		$data = preg_split("/\s{1,}/", $val, -1, PREG_SPLIT_NO_EMPTY);
		if(count($data) == 6) {
		    if(strtoupper($data[1]) == $drive_name) {
		        if(strtoupper($data[0]) == 'OK') {
		            if(strtoupper($data[2]) == $remote_dir) {
                       	return true;
                       	}
			        }
		    	}
			else {
			    $unmap = mysystem("net use " . $drive_name . " /delete");
			    $map = mysystem("net use " . $drive_name . " " . $remote_dir);
			    break;
				}
			}
		}
//	echo $map;
    return $map;
	}
 

master_x

Pitavale XXI wieku
в общем так, все уже лежит в хостс... функциями я не пользовался, узнал какой юзер запускает апач, естественно это был system. Потом след. коммандой подключил диск NET USE Z: \\sun /USER:SYSTEM /PERSISTENT:YES. Все эти операции были выполненны успешно, а апач диск все-равно не видит... :(((((( Задолбался я с этой виндой...
 

bizon-k

Guest
Автор оригинала: master_x
в общем так, все уже лежит в хостс... функциями я не пользовался, узнал какой юзер запускает апач, естественно это был system. Потом след. коммандой подключил диск NET USE Z: \\sun /USER:SYSTEM /PERSISTENT:YES. Все эти операции были выполненны успешно, а апач диск все-равно не видит... :(((((( Задолбался я с этой виндой...
А Апач у тебя уже стартанутый был?
А у тебя system этот диск видит :) ?

А вообще, - зайди в свойства сервиса и настрой вход в систему под каким-нибудь конкретным юзверем, который этот диск видит...

И кстати, - о безопасности немного подумать не хотелось? Это кто ж рут делает на сетевом диске???!!!

Я-то юзаю подмапленные диски потому, что тупому юзеру долго объяснять как можно передать инфу для публикации, чтобы мне удобнее ее было атоматом обработать. Вот и кладут файлы на сетевые диски откуда я их по крону забираю.
 

master_x

Pitavale XXI wieku
а вот теперь объясни мне пож. как узнать какой юхзер видит этот диск? Я просто с виндой работаю ооооочень редко... А насчет безопасности я даже не думаю, потому, как сетевой диск находится на соседнем компе (хом сетка)
 
Сверху