Я пытаюсь заставить nightmarejs работать на моем сервере centos и смог сделать это, запустив xvfb-run, однако мне нужно вызвать эту команду через функцию php exec ().
когда я делаю, я просто получаю пустой результат, как будто он не работает?
Когда я запускаю его через командную строку (т.е. узел xvfb-run my-script.js), все отлично работает. Есть идеи, почему он не работает или не доступен для моего php-скрипта?
Хорошо, я понял это. По сути, доступ к sudo должен быть предоставлен для xvfb-run, чтобы вызвать его через исполняемый скрипт в php. Для этого войдите в терминал и сделайте следующее:
# sudo visudo
Убедитесь, что группа колес не закомментирована
%wheel ALL=(ALL) ALL
Это означает, что пользователи, добавленные в группу wheel, будут иметь доступ к командам вызова sudo.
В нижней части файла предоставьте пользователю доступ к сценарию.
YOUR_USER ALL = NOPASSWD: /usr/bin/xvfb-run
Сохраните свой файл и добавьте своего пользователя в группу wheel
usermod -aG wheel YOUR_USER
наконец, из вашего php-скрипта теперь вы можете вызвать xvfb-run через sudo
<?php exec('sudo xvfb-run node my-script.js'); ?>
Других решений пока нет …