|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 8
|
|
И снова о php exec() - выполняются не все команды02.05.2016, 13:46. Показов 5896. Ответов 19
Проблема такая - работают обычные команды вроде ls или groups но например exec("/usr/bin/aplay /var/www/html/test.wav", $ret, $err) не работает (сразу скажу > /dev/null 2>&1 тоже ставил). Баш скрипты тоже не запускаются, питон не работает, хотя из консоли все запускается без проблем. Функция вообще ничего не возвращает при этом (ну кроме $err == 1 - Catchall for general errors), но кто бы знал в чем проблема. Добавлял уже пользователя www-data и в admin и домашнюю группу - толку никакого. Дистрибутив Raspbian, apache + php 5.6.19.
Ясное дело, что функций exec и system нет в disable_functions, safe_mode = off. P.S. если путь например к aplay не верный то возникает ошибка 127 - Command not found. P.P.S. Даже так работает в консоли: php -r 'exec("aplay /var/www/html/test.wav", $a, $b); var_dump($a, $b);' P.P.P.S exec("bash /home/pi/start.bash", $ret, $err); - вот даже если туда прописать aplay /var/www/html/test.wav не работает, хотя тот же ls в bash вполне себе выполняется...
0
|
|
| 02.05.2016, 13:46 | |
|
Ответы с готовыми решениями:
19
Не все SQL команды выполняются Не все cmd команды выполняются После вызова процедур не все команды выполняются |
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
| 02.05.2016, 14:18 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 8
|
|
| 02.05.2016, 14:19 [ТС] | |
|
В консоли работает. В браузере нет.
0
|
|
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||||||
| 02.05.2016, 15:12 | |||||||
Браузер обращается к веб-серверу, а не к PHP. Он в свою очередь уже работает с php. Видимо у Вашего веб-сервера нету прав запускать приложения или еще что-то. Тут дело далеко не в PHP. Но Вы не указали ни сервер, ни каким образом он запускается, ни каким образом он обращается к PHP.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 8
|
|
| 02.05.2016, 15:20 [ТС] | |
|
Естественно php из консоли под другим юзером (pi) работает, а не под data-www. Но тот же пользователь data-www (из под которого апач работает) состоит в группах adm, sudo и pi.
Если пишешь в консоли php -r, то все работает. а если запускаешь скрипт с <?php exec(.... - работает выборочно.
0
|
|
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 8
|
|
| 04.05.2016, 12:19 [ТС] | |
|
В общем так и не разобрался в причине, но работает если добавить в группу sudo и запускать так: exec("sudo -u www-data aplay /var/www/html/test.wav", $a, $b);
0
|
|
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||
| 04.05.2016, 18:54 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 8
|
|
| 04.05.2016, 18:58 [ТС] | |
|
100% из под www-data. собственно exec("whoami", $a, $b); работает - array(1) { [0]=> string(8) "www-data" } int(0). так что я без понятия что за ерунда. Ну да ладно.
0
|
|
| 04.05.2016, 19:16 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 8
|
|
| 04.05.2016, 19:18 [ТС] | |
|
как бы ставилось все очень примитивно sudo apt-get install apache2 php5 mysql-server
да и все равно exec то на 100% от www-data работает. Скорее всего какая то особенность дистрибутива
0
|
|
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||
| 04.05.2016, 20:11 | |||
Наверняка там было еще что-нибудь вроде libapache2-mod-php5...Но если как модуль тогда непонятно...
0
|
|||
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 8
|
|
| 04.05.2016, 20:19 [ТС] | |
|
Когда из консоли запускаете как php -r ... это же не www-data - естественно он от текущего пользователя работает, от pi) говорю же whoami ни кто не отменял. просто до сих пор не понятно почему из под www-data такие извращения.
Но в прочем тему можно закрывать.
0
|
|
|
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
|
|
| 23.07.2025, 04:40 | |
|
Если бы была Win, подумал бы на то, что Apache запущен как служба. А запускать надо как приложение. У меня такая беда была. Процесс в диспетчере задач запускается, но GUI не появляется, т.е. софт запущенный работал в фоне. Я голову сломал себе, в чём же беда
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,306
|
||
| 23.07.2025, 06:56 | ||
|
Это просто ты какую-то дичь творишь, которая конфликтует с безопасностью веб-сервера или приложения на PHP.
1
|
||
|
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
|
|
| 23.07.2025, 07:18 | |
|
Usaga, подробнее про дичь. И всё же "ни при каких условиях" или "кроме разработки"?
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,306
|
|
| 23.07.2025, 07:22 | |
|
Vasek2, дичь - приложение на PHP запускает локальные бинарники из $PATH, да ещё и звук какой-то в системе воспроизвести пытается, какие-то баш-скрипты, скрипты на питоне.
Мало того, что это плевок в лицо секьюрности, так ещё и попытка решить какие-то проблемы костыльным образом. Совершенно естественно, что дефолтное поведение веб-сервера и транслятора PHP этому мешали.
0
|
|
|
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
|
|
| 23.07.2025, 07:24 | |
|
Usaga, и? У меня крутятся только мои локальные проекты. Что не так с безопасностью?
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,306
|
|
| 23.07.2025, 07:27 | |
|
Vasek2, это общие замечания по очень кривому решению. Я об этом. Доказывать тебе что не так и почему это плохо не вижу смысла. Очевидно, что слышать ничего ты не хочешь. Если тебе норм такое делать, то ладно.
Только вот зачем ты другим советуешь так делать (видел твою тему, где ты делился "опытом") вопрос отдельный.
0
|
|
|
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
|
|
| 23.07.2025, 07:35 | |
|
Usaga, много вопросов одинаковых видел, когда искал решение. В вопросах нет такого как "а плохо ли запускать апач как приложение". Вопрос о том, как заставить exec работать в полную силу. Я дал ответ на вопрос. Не пиши мне больше ответы. Это не я тебя не слышу, а ты зачем-то мне ответы строчишь не по теме
0
|
|
|
100 / 70 / 26
Регистрация: 19.12.2014
Сообщений: 332
|
|
| 25.09.2025, 12:52 | |
|
Если на сервере скрипты выполняются от имени www-data, то нужно в консоли попробовать выполнить указанную команду от этого пользователя ('su www-data'). Скорее всего работать не будет. Возможно имеет значение из какой папки была запущена команда, если, например, этот apply пытается писать в текущую папку.
0
|
|
| 25.09.2025, 12:52 | |
|
Помогаю со студенческими работами здесь
20
После выполнения определённой команды не выполняются последующие команды
Команды выполняются непоследовательно Не выполняется exec() сложной команды Почему команды не выполняются последовательно? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|