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 :: Как запустить выполнение программы.exe на сервере? [4]

 PHP.SU

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


 Страниц (4): « 1 2 3 [4]   

> Описание: требуется помощь.
aRCHeR
Отправлено: 13 Апреля, 2010 - 16:31:20
Post Id



Новичок


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


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




А можно ли как-то реализовать ВСЕ это через PHP Shell? Однако


-----
Хотите приударить? Смотрите чтоб не приубило Улыбка
 
 Top
JustUserR
Отправлено: 13 Апреля, 2010 - 17:20:35
Post Id



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


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


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




aRCHeR пишет:
А можно ли как-то реализовать ВСЕ это через PHP Shell?
Вы имеете в виду командные вызовы из PHP?


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
aRCHeR
Отправлено: 14 Апреля, 2010 - 15:52:59
Post Id



Новичок


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


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




Я как бы новичек Улыбка не особо понимаю суть вещей, но наверно я имею ввиду командные вызовы из PHP... ), и еще какие линукс команды нужны для запуска такого приложения, как hlds.exe? Однако
(Добавление)
А то я BOT http://itshaman[dot]ru/articles/7/komandy-linux нашел примерный список команд, но не могу разобратся какая из них подходит Огорчение

(Отредактировано автором: 14 Апреля, 2010 - 15:56:23)



-----
Хотите приударить? Смотрите чтоб не приубило Улыбка
 
 Top
JustUserR
Отправлено: 15 Апреля, 2010 - 13:24:20
Post Id



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


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


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




aRCHeR пишет:
И еще какие линукс команды нужны для запуска такого приложения, как hlds.exe?
Обычное PE-приложения работающее под windows не запустится под linux потому что исполняемыми файлами там являются ELF-файлы - они имеют сильно различающийся с PE-модулем загрузочный сектор и обращения к памяти Если вы хоитет запусктаь такие файлы то используйте wine


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
papick
Отправлено: 11 Июля, 2010 - 19:58:53
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2010  


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




JustUserR пишет:
viktor6 пишет:
А под linux можно такое сделать?
А под linux это делается еще проще .............
Напишите более подробно задачу и постараемся вам помочь

задача:
проиграть звуковой файл на сервере (через колонки, подключенные к серверу) когда юзер нажмет на кнопку - ссылку на ХТМЛ странице
Вроде все простенько но никак не могу решить, почитал форум, пробовал
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. {$launch_str="playsound /home/******/****/www/www1/dtmf/1.ogg";
  3. popen($launch_str,"r");
  4. ?>

Так же пробовал создать bash и запускать его этим скриптом

на работает Недовольство, огорчение
сама комманда рlaysound /home/******/****/www/www1/dtmf/1.ogg
в терминале или при подключении удаленно по ССШ работает.

Ну, естественно речь идет о линукс-сервере с name-based virtual host под апачем, сам пых-пых установлен и работает.

подскажите пожалуйста что я делаю не так Улыбка
 
 Top
JustUserR
Отправлено: 12 Июля, 2010 - 15:16:33
Post Id



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


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


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




papick пишет:
Вроде все простенько но никак не могу решить, почитал форум, пробовал
Скорее всего причиной проблемы с запуском консольной команды является указание неправильных базовых путей - или отсутствие прав доступа к соответсвущим объекам при вызове процессов от имени пользователя www-data Можете попробовать запустить команду system($launch_str) и посмотреть результат - также желательно отделить запускаемый дочерний процесс в отдельную ветку путем запуска его в фоновом режиме


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
papick
Отправлено: 13 Июля, 2010 - 01:21:59
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2010  


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




JustUserR пишет:
papick пишет:
Вроде все простенько но никак не могу решить, почитал форум, пробовал
Скорее всего причиной проблемы с запуском консольной команды является указание неправильных базовых путей - или отсутствие прав доступа к соответсвущим объекам при вызове процессов от имени пользователя www-data Можете попробовать запустить команду system($launch_str) и посмотреть результат - также желательно отделить запускаемый дочерний процесс в отдельную ветку путем запуска его в фоновом режиме

Спасибо, помогло, оказывается www-data не имел права пользовать звук.
Смущение
Теперь первый вариант заработал. Ура!
JustUserR пишет:
также желательно отделить запускаемый дочерний процесс в отдельную ветку путем запуска его в фоновом режиме

Как это правильно сделать(написать)?

Усложняем задачу: можно ли проигрывать звук(по кругу) до тех пор, пока нажата кнопка(ссылка)?

(Отредактировано автором: 13 Июля, 2010 - 01:29:11)

 
 Top
JustUserR
Отправлено: 13 Июля, 2010 - 01:44:35
Post Id



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


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


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




papick пишет:
Спасибо, помогло, оказывается www-data не имел права пользовать звук.
Теперь первый вариант заработал
Пожалуйста! При работе в unix-системах и особенно при администрировании deamon-сервисов в них - нужно проверять наличие прав доступа по эффективному пользователю от имени которого работает процесс
papick пишет:
Как это правильно сделать(написать)?
Для запуска в фоновом режиме используется синтаксис command 2>&1 >/dev/null & - а для переключения эффективного владельца процесса используется модуль web-сервера suexec или утилита sudo с соответствующими настройками
papick пишет:
Усложняем задачу: можно ли проигрывать звук(по кругу) до тех пор, пока нажата кнопка(ссылка)?
Для реализации такой задачи можно использовать два процесса - один из них будет работать в режиме daemon-сервиса от имени пользователя с достаточно высокими привелегиями и быть готовым к запуску звука Второй из них является CGI-скриптом и взаимодействует с клиентом динамически по следующему принципу - когда кнопка нажимается по запускается CGI-скрипт с комадой запуска звука а когда отпускается то команда остановки звука В зависимости от способа взаимодействия этот CGI-скрипт или посылает команды deamon-сервису через сигналы или разделенный файл/память - или же запускает процессы проигрывания звука в фоновом режиме а по приеме команды остановки завершает их


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
In1ernal Error
Отправлено: 07 Октября, 2010 - 19:05:34
Post Id


Новичок


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


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




В php я новичок, поэтому никак не получается запустить сервер CS.
Просмотрел всю тему, ни один из способов у меня не работает Огорчение

1.
PHP:
скопировать код в буфер обмена
  1. system("D:\Games\ServerPublic\ServerPublic\start.cmd");
- вообще ничего не происходит
2.
PHP:
скопировать код в буфер обмена
  1. $ft = popen ("D:/games/serverpublic/serverpublic/hlds.exe", "r");
-появляется процесс, занимает всего 4мб RAM, ничего больше не появляется
3.
PHP:
скопировать код в буфер обмена
  1. exec ("D:/games/serverpublic/serverpublic/hlds.exe");
- происходит то же что и в пункте 2

Через start.cmd вручную сервер отлично запускается:
CODE (htmlphp):
скопировать код в буфер обмена
  1. start /MIN/HIGH hlds.exe -console -game cstrike +port 27019 +ip 0.0.0.0 +map de_dust2 +maxplayers 30 -noipx +sv_lan 1 -insecure -master


Подскажите, что может быть не так?
 
 Top
JustUserR
Отправлено: 08 Октября, 2010 - 14:40:07
Post Id



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


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


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




In1ernal Error пишет:
Подскажите, что может быть не так?
Причиной неправильной работы целевого процесса через комнду консолького запуска может являться отсутствие требуемого окружения для его функционирования - в то время как команды пакетного файла могут сформировать его должны образом а также провести отделение процесса в отдельную область
Кроме того в приведенном вами первом способе используются обратные слеши - которые интерпретируются в строке с двойными кавычками как управляющие последовательности
Одним из вариантом для запуска внешнего процесса с сохранением его окружения из пакетного файла - может быть такая команда
system("cmd /C \"start D:\\Games\\ServerPublic\\ServerPublic\\start.cmd\"") - которая также может подлежть дополнительному пакетному экранированию по адресу в случае содержания в нем пробела


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (4): « 1 2 3 [4]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB