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
Короче, сочувствую icon_smile.gif
цитата
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  >  последняя »


Эта страница в полной версии