Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Php и консоль

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
RickMan
Отправлено: 04 Апреля, 2013 - 09:01:18
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Здравствуйте,
Можно ли из php скрипта отправить запрос в консоль/терминал линукса? А под рутом? И можно ли получить то, что консоль выдал в ответ на команду?

Задача заключается в том, чтобы человек отправлял файл, а скрипт компилировал его в фри паскале.
Заранее спасибо за ответ)
 
 Top
EuGen Администратор
Отправлено: 04 Апреля, 2013 - 09:02:36
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Можно. exec, shell_exec, system и другие - решение Вашей задачи.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
RickMan
Отправлено: 04 Апреля, 2013 - 09:05:52
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




EuGen пишет:
Можно. exec, shell_exec, system и другие - решение Вашей задачи.

2 и 3 подходят, тем что вывод дают результата, но там не сказано по рут... без рута мне выдаст что прав нету)
 
 Top
EuGen Администратор
Отправлено: 04 Апреля, 2013 - 09:07:55
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Если нужен root - то следует воспользоваться командой sudo. Для этого, правда, нужно разрешить пользователю веб-сервера исполнять sudo без ввода пароля (то есть о безопасности забываем сразу же). Для этого, в свою очередь, этого пользователя нужно добавить в sudoers (например, командой visudo).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
RickMan
Отправлено: 06 Апреля, 2013 - 14:20:40
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




выполняю в скрипте:

PHP:
скопировать код в буфер обмена
  1. $ex='/usr/lib/fpc/2.6.0/ppc386 /usr/lib/fpc/2.6.0/1.pas';
  2. $as=shell_exec($ex);


Он выдает ошибку, мол компиляция прошла но новые файлы создать не можем... логично, это же не под root...выполняю

PHP:
скопировать код в буфер обмена
  1. $ex='sudo /usr/lib/fpc/2.6.0/ppc386 /usr/lib/fpc/2.6.0/1.pas';
  2. $as=shell_exec($ex);


команда не выполняется, ничего не выводит... права пользователю на sudo без пароля выдал и проверил, в тарминале выполнил эту команду и она выполнилась нормально... в чем может быть подвох? что может быть не так?

Вот что в логах апача:
Цитата:
sudo: no tty present and no askpass program specified



Проблему решил, прописав в visudo запрет запроса пароля на www-data

(Отредактировано автором: 06 Апреля, 2013 - 14:28:10)

 
 Top
Мелкий Супермодератор
Отправлено: 06 Апреля, 2013 - 14:27:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




RickMan пишет:
Вот что в логах апача:

Значит это неверно:
RickMan пишет:
права пользователю на sudo без пароля выдал

Точно того же пользователя проверяли?


-----
PostgreSQL DBA
 
 Top
RickMan
Отправлено: 06 Апреля, 2013 - 22:40:20
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Чтобы не создавать новую тему, да и в принципе вопрос связан с эти, задам его тут.

У меня есть программа, которую я откомпелировал в паскале... Кто участвовал на олимпиадах, в курсе, что там есть лимиты времени и памяти... Вот как мне запустить эту программу, чтобы она не выполнялась дольше 1 секунды и не занимала больше 16 мб (оперативки) ? в консоле пишет какие-то параметры при вызове программы, или как?
 
 Top
LIME
Отправлено: 06 Апреля, 2013 - 22:48:42
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




почему здесь всеже непонятно)) совсем))
а гугл что ответил?
 
 Top
RickMan
Отправлено: 06 Апреля, 2013 - 23:30:08
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




LIME пишет:
почему здесь всеже непонятно)) совсем))
а гугл что ответил?


да гугл мало что говорит, поэтому и обратился) сюда обратился - потому, что не верб что тут нет линуксоидов)
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Апреля, 2013 - 23:37:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




RickMan пишет:
как мне запустить эту программу, чтобы она не выполнялась дольше 1 секунды и не занимала больше 16 мб (оперативки) ?
Программа просто запускается. А для данного случая надо искать PID процесса, и мониторить время его выполнения и занимаемую память. Если лимит превышен - прибить по пиду.
Но вы ше понимаете, что за секунду после старта не успеет подтянуться нужные нам ps и top.
Если пыхом, то, я не пробовал, но мысль ограничит сеттаймлимит до одной секунды и дернуть внешнюю прогу с ожиданием ответа, но тут я снова не смогу уверенно сказать, что при останове пхп-сценария, оставновится и запущенный им внешний процесс.
Вобщем - вы не должны этого хотеть.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB