Как использовать Вино от Apache/Php? - '/var/www' не принадлежит Вам

Request.Url.AbsoluteUri

Это свойство делает все, в чем Вы нуждаетесь, все в одном сжатом вызове.

5
задан Cambiata 4 September 2009 в 05:34
поделиться

5 ответов

Вы должны создать отдельный домашний каталог для запуска Wine. Создайте каталог, который принадлежит www-data, установите переменную HOME, su www-data и один раз запустите winecfg; затем запустите tool.exe (от имени этого пользователя). В вызове exec убедитесь, что установлен HOME (попробуйте exec ("HOME = / tmp / wine wine tool.exe") )

7
ответ дан 13 December 2019 в 22:12
поделиться

Вы захотите использовать chown , чтобы изменить владельца Wine и tool.exe.

Имейте в виду, что это потенциально может вызвать некоторые проблемы с безопасностью.

1
ответ дан 13 December 2019 в 22:12
поделиться

Кажется безобидным, пока Wine может работать без каталога конфигурации.

Попробуйте выяснить, может ли Wine работать с указанным каталогом конфигурации в командной строке. В противном случае вы можете сделать две вещи: либо скопировать существующий (например, от вашего пользователя) каталог конфигурации wine в / var / www, либо просто проигнорировать это предупреждение и перенаправить вывод STDERR в другое место:

exec ("wine tool.exe 2>/dev/null");
0
ответ дан 13 December 2019 в 22:12
поделиться

Или ... вы можете полностью пропустить sudo. Запустите Wine, чтобы сгенерировать файл конфигурации в вашем домашнем каталоге, затем попросите администратора выполнить команду chown www: users .wine для ваших файлов конфигурации Wine.

Apache теперь должен иметь необходимые права для запуска Wine с использованием вашего файла конфигурации.

У пользователя www в linux другое имя ...

exec ("HOME = / usr / home / myuser / usr / home / myuser / bin / wine /usr/home/myuser/test.exe "

0
ответ дан 13 December 2019 в 22:12
поделиться

Поскольку я работаю под FreeBSD, я получаю ошибку wine: '/root' не принадлежит вам. Создание папки '/var/www' не сильно поможет :(

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

Я добавил следующую строку в свой файл sudoers, и она позволяет Apache (пользователю www) использовать sudo для запуска wine от имени моего пользователя (myuser), а не от имени www или root.

www localhost = (myuser) NOPASSWD: /usr/home/myuser/bin/wine

В моем PHP скрипте есть что-то вроде этого:

exec("HOME=/usr/home/myuser sudo -u myuser /usr/home/myuser/bin/wine /usr/home/myuser/test.exe"

Кажется, пока работает.

1
ответ дан 13 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: