ФорумРазработкаУстановка и администрирование ПОВебсервер → Проблема с запуском внешних программ

Проблема с запуском внешних программ

  • killer112

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 16 сентября 2009 г. 8:43

    Привет всем!
    Возникла проблема с запуском внешних программ при включенном safe mode.
    Насколько я понял, при включенном safe mode запускать внешние программы можно только из директории, указанной в safe_mode_exec_dir.

    Прописываю в php.ini: safe_mode_exec_dir = /usr/local/s-bin
    Пишу в скрипте: system ('z:/usr/local/s-bin/test.bat'); - не работает!

    В то же время при safe_mode = off все работает нормально.

    Кто-нибудь знает, что я не так делаю?
    Очень прошу помочь! Заранее спасибо! :)
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 16 сентября 2009 г. 9:22, спустя 39 минут 9 секунд

    Сейчас у Вас спросят, какая именно ошибка вываливается, действительно ли сервер на z: крутится.

    А я посоветую, наобум, прописать путь в настройках с диском и/или слешем в конце.
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 16 сентября 2009 г. 9:30, спустя 7 минут 9 секунд

    killer112, Уважаемый, у Вас Денвер, я так понимаю ) Так вот, пропишите себе путь вот такой C:/WebServers/usr/local/s-bin/test.bat
  • killer112

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 16 сентября 2009 г. 10:20, спустя 50 минут 10 секунд


    killer112, Уважаемый, у Вас Денвер, я так понимаю ) Так вот, пропишите себе путь вот такой C:/WebServers/usr/local/s-bin/test.bat

    Прописал в php.ini:
    safe_mode_exec_dir = c:/web/usr/local/s-bin
    и в скрипте: system ('c:/web/usr/local/s-bin/test.bat'); - всё равно не работает :(

    Дело в том, что такая же ситуация и на самом сервере. Просто я решил потренироваться на денвере чтобы сервер не напрягать.
    В папке d:\prg лежит файл test.bat
    В php.ini прописывал все что только можно:
    safe_mode_exec_dir = d:
    safe_mode_exec_dir = d:\prg и т.п
    Не работает.
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты
  • killer112

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 16 сентября 2009 г. 10:27, спустя 3 минуты 44 секунды

  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 16 сентября 2009 г. 11:26, спустя 58 минут 24 секунды

    safe_mode = On
    safe_mode_include_dir = "c:\WINDOWS\system32\"
    system('c:\WINDOWS\system32\ping.exe 127.0.0.1'); 
    Обмен пакетами с 127.0.0.1 по 32 байт:….. 
  • killer112

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 16 сентября 2009 г. 11:56, спустя 30 минут 38 секунд


    safe_mode = On
    safe_mode_include_dir = "c:\WINDOWS\system32\"
    system('c:\WINDOWS\system32\ping.exe 127.0.0.1'); 
    Обмен пакетами с 127.0.0.1 по 32 байт:….. 


    Огромное спасибо!!!
    Я оставил пустым safe_mode_exec_dir и указал safe_mode_include_dir = "c:\" - всё работает!!!
    Правда, не очень понятно почему именно так надо делать :)
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 16 сентября 2009 г. 11:59, спустя 2 минуты 54 секунды

    Я как то тоже юзал (трой знает…) эту штуку, НО в настройках пыхи НИЧЕГО не менял! скрипт мой был таков:
    <?php

    $last_line = system("C:\Repositories\machinima\hooks\post-commit.bat");

    $fh = fopen('log.txt', "a+");

    fwrite($fh, $last_line);

    fclose($fh);

    echo "logged";
    ?>
    Спустя 49 сек.
    killer112, Наверное exec_dir это туда куда выполнится прога… ну или я в конец ебанулся.
  • killer112

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 16 сентября 2009 г. 12:13, спустя 13 минут 12 секунд

    Хотя проблема еще осталась.
    Внешние файлы запускаются только если находятся в папке windows, хотя safe_mode_include_dir = "c:\"
  • killer112

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 16 сентября 2009 г. 12:46, спустя 33 минуты 49 секунд

    Блин! Короче таким способом получается запускать внешние программы только из системных папок windows и windows\system32. В остальных случаях не работает :(
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 16 сентября 2009 г. 14:29, спустя 1 час 42 минуты 57 секунд

    Пляшем отсюда дальше пляшем с dir /X ( при указании пути к батнику )
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 16 сентября 2009 г. 14:52, спустя 22 минуты 34 секунды

    Алсо ( чот савсем забыл ) незабываем о exec(); (:
    Попробуй
    <?php
    echo exec("z:\\usr\\local\\s-bin\\test.bat");
    ?>
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 16 сентября 2009 г. 15:56, спустя 1 час 3 минуты 41 секунду


    Алсо ( чот савсем забыл ) незабываем о exec(); (:
    Попробуй
    <?php
    echo exec("z:\\usr\\local\\s-bin\\test.bat");
    ?>
    http://ru.php.net/manual/en/function.escapeshellarg.php
    adw/0
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 16 сентября 2009 г. 15:57, спустя 56 секунд

    Это уже безопастное)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!