Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
System() в php
Новая тема
Ответить
цитата
29/11/07 в 17:39
Onliner
Привет ,
пытаюсь выполнить такую команду в php скрипте - не получается system("unzip $source_file -x");
хотя остальные команды работают без проблем. в чем может бть причина и вапще возможно ли выполнить так данную команду?shell_exec() passthru() exec() тоже не выполняется
спасибо
цитата
29/11/07 в 17:42
lega_cobra
А unzip на сервере есть?
цитата
29/11/07 в 18:06
Onliner
да. через шелл все летает.
цитата
29/11/07 в 19:28
-=Faraon=-
safe_mode
просто включён в php.ini
поэтому запускаться небудет ничего!
цитата
29/11/07 в 20:41
Pentarh
А ты полный путь к унзип пропиши ну типа /usr/bin/unzip или где он у тебя там...
при вызове system переменная окружения PATH бывает другой. Или вообще не бывает.
цитата
29/11/07 в 22:41
Sams
Может быть еще один смешной вариант (сам так мучился однажды) - запущенному из-под скрипта унзипу просто не хватает прав для записи распакованного.
цитата
30/11/07 в 00:28
Pentarh
А может и ресурсов. Короче бля, дебаг смотри да?!
цитата
30/11/07 в 01:04
Formator
Реально может в 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);
цитата
30/11/07 в 15:03
Onliner
Все перепробовал , все ровно не работает ( , safe_mode=0 , запускаю на удаленном хосте
цитата
30/11/07 в 15:25
Sha
Имхо с правами что-то.
Ещё может у апача не хватает прав запустить unzip или "сходить" в каталог где unzip лежит.
команда ping запускается из-под твоего php ?
цитата
30/11/07 в 15:42
Onliner
cmd_exec("ping -c 3 host.com",$out,$err);
пишет неверный параметр
цитата
30/11/07 в 16:02
Sha
А хостинг не виндовый ?
А то у виндового ping параметр -n а не -с
цитата
30/11/07 в 16:11
Onliner
freebsd , вот что пишет в ответ "/usr/local/bin/unzip" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
цитата
30/11/07 в 16:15
Sha
find / -name unzip
полученный полный путь вписывай
PS сообщение "не является внутренней или внешней командой, исполняемой программой или пакетным файлом" виндовое сто пудов у тя винда
цитата
30/11/07 в 16:19
Pentarh
Onliner писал:
freebsd , вот что пишет в ответ "/usr/local/bin/unzip" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
нэ пызды, так пишет тока виндоуз
цитата
30/11/07 в 16:36
Onliner
100% free стоит
цитата
30/11/07 в 16:40
Sha
uname -a
пробовал ?
Код:
<HTML>
<?php
system("uname -a");
?>
</HTML>
цитата
30/11/07 в 16:44
Onliner
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 раз
цитата
30/11/07 в 16:46
Sha
Onliner писал:
root@sowich:/root# uname -a
FreeBSD **** 6.2-STABLE FreeBSD 6.2-STABLE #23: Wed Oct 31 06:35:38 CET 2007
Да не, попробуй через PHP. Походу шелл и апач на разных серваках.
цитата
30/11/07 в 16:47
Onliner
то же самое пишет
цитата
30/11/07 в 16:50
Pentarh
У тебя, товарищ, твой хост, к которому ты обращаешься, не на денвере? Он реврайтит хост на локалхост, т.е. на винду
цитата
30/11/07 в 16:59
Onliner
то же самое пишет
цитата
30/11/07 в 17:01
Pentarh
Короче, сочувствую
цитата
30/11/07 в 17:09
Onliner
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
что не так?
цитата
30/11/07 в 17:14
Sha
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.
Стр.
1
,
2
>
последняя »
Новая тема
Ответить
Эта страница в полной версии