С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 29/11/07 в 17:39 |
Привет ,
пытаюсь выполнить такую команду в php скрипте - не получается system("unzip $source_file -x");
хотя остальные команды работают без проблем. в чем может бть причина и вапще возможно ли выполнить так данную команду?shell_exec() passthru() exec() тоже не выполняется
спасибо
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 29/11/07 в 17:42 |
А unzip на сервере есть?
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 29/11/07 в 18:06 |
да. через шелл все летает.
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 29/11/07 в 19:28 |
safe_mode
просто включён в php.ini
поэтому запускаться небудет ничего!
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 29/11/07 в 20:41 |
А ты полный путь к унзип пропиши ну типа /usr/bin/unzip или где он у тебя там...
при вызове system переменная окружения PATH бывает другой. Или вообще не бывает.
|
|
|
|
Best4U.Biz
С нами с 21.02.04
Сообщения: 1252
Рейтинг: 1441
|
Добавлено: 29/11/07 в 22:41 |
Может быть еще один смешной вариант (сам так мучился однажды) - запущенному из-под скрипта унзипу просто не хватает прав для записи распакованного.
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 30/11/07 в 00:28 |
А может и ресурсов. Короче бля, дебаг смотри да?!
|
|
|
|
С нами с 03.05.07
Сообщения: 801
Рейтинг: 825
|
Добавлено: 30/11/07 в 01:04 |
Реально может в stderr кидается ошибка. Заюзай:
Код: |
function cmd_exec($cmd, &$stdout, &$stderr)
{
$outfile = tempnam(".", "cmd");
$errfile = tempnam(".", "cmd");
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("file", $outfile, "w"),
2 => array("file", $errfile, "w")
);
$proc = proc_open($cmd, $descriptorspec, $pipes);
if (!is_resource($proc)) return 255;
fclose($pipes[0]);
$exit = proc_close($proc);
$stdout = file($outfile);
$stderr = file($errfile);
unlink($outfile);
unlink($errfile);
return $exit;
}
cmd_exec("unzip $source_file -x",$out,$err);
echo join(" ",$out)."<br>".join(" ",$err);
|
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 30/11/07 в 15:03 |
Все перепробовал , все ровно не работает ( , safe_mode=0 , запускаю на удаленном хосте
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 30/11/07 в 15:25 |
Имхо с правами что-то.
Ещё может у апача не хватает прав запустить unzip или "сходить" в каталог где unzip лежит.
команда ping запускается из-под твоего php ?
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 30/11/07 в 15:42 |
cmd_exec("ping -c 3 host.com",$out,$err);
пишет неверный параметр
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 30/11/07 в 16:02 |
А хостинг не виндовый ?
А то у виндового ping параметр -n а не -с
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 30/11/07 в 16:11 |
freebsd , вот что пишет в ответ "/usr/local/bin/unzip" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 30/11/07 в 16:15 |
find / -name unzip
полученный полный путь вписывай
PS сообщение "не является внутренней или внешней командой, исполняемой программой или пакетным файлом" виндовое сто пудов у тя винда
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 30/11/07 в 16:19 |
Onliner писал: | freebsd , вот что пишет в ответ "/usr/local/bin/unzip" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. |
нэ пызды, так пишет тока виндоуз
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 30/11/07 в 16:36 |
100% free стоит
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 30/11/07 в 16:40 |
uname -a
пробовал ?
Код: |
<HTML>
<?php
system("uname -a");
?>
</HTML>
|
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 30/11/07 в 16:44 |
root@sons:/root# uname -a
FreeBSD **** 6.2-STABLE FreeBSD 6.2-STABLE #23: Wed Oct 31 06:35:38 CET 2007
FreeBSD sons.info 6.2-STABLE FreeBSD 6.2-STABLE #23: Wed Oct 31 06:35:38 CET 2007 root@dione.ispsystem.net:/root/src/sys/i386/compile/ISPSYSTEM_PAED i386
Последний раз редактировалось: Onliner (30/11/07 в 16:46), всего редактировалось 1 раз
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 30/11/07 в 16:46 |
Onliner писал: | root@sowich:/root# uname -a
FreeBSD **** 6.2-STABLE FreeBSD 6.2-STABLE #23: Wed Oct 31 06:35:38 CET 2007 |
Да не, попробуй через PHP. Походу шелл и апач на разных серваках.
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 30/11/07 в 16:47 |
то же самое пишет
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 30/11/07 в 16:50 |
У тебя, товарищ, твой хост, к которому ты обращаешься, не на денвере? Он реврайтит хост на локалхост, т.е. на винду
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 30/11/07 в 16:59 |
то же самое пишет
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 30/11/07 в 17:01 |
Короче, сочувствую
|
|
|
|
С нами с 05.06.04
Сообщения: 209
Рейтинг: 37
|
Добавлено: 30/11/07 в 17:09 |
function zakachka(){
global $ip, $login, $pass, $destination_file, $source_file;
$conn_id = ftp_connect($ip);
@$login_result = ftp_login($conn_id, $login, $pass);
$rendal = ftp_chdir($conn_id, "www");
if ((!$conn_id) || (!$login_result))
{echo ("Проблемы соединения: хост::$ip пользователь::$login");}
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
if (!$upload){
echo "Ничего не закачалось на $ip - проверьте параметры<br>";
}else{
echo "Закачка успешна на $ip<br>";
}
ftp_exec($conn_id, system("/usr/local/bin/unzip $source_file"));
ftp_close($conn_id);
}
выдает
Warning: ftp_exec(): 'SITE EXEC' not understood in x:\home\zas.com\www\19\ftp_parser.php on line 31
что не так?
|
|
|
|
С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950
|
Добавлено: 30/11/07 в 17:14 |
Onliner писал: | Warning: ftp_exec(): 'SITE EXEC' not understood in x:\home\zas.com\www\19\ftp_parser.php on line 31
что не так? |
А сам как думаешь ?
x:\home - это виндовый хостинг.
ФТП-сервер не понимает (отключена) SITE EXEC.
|
|
|
|