Я пытаюсь создать службу тестирования, которая будет запускать мои тесты iOS JS с веб-сайта. Например, я захожу на свой сайт, использую PHP для создания ссылок для каждого из файлов .js в определенной папке, а затем нажимаю ссылку, чтобы начать тестирование. Когда я нажимаю на ссылку, я использую PHP-файл bash .sh на компьютере. Затем файл .sh запускает тест.
Если я запускаю .sh файл локально, он прекрасно работает. Если я запускаю его с моего сайта, симулятор открывается, но приложение никогда не открывается. Я получаю сообщение об ошибке, указывающее, что истекло время ожидания поиска устройства симулятора.
Есть идеи, почему я не могу заставить это работать?
Мой php-файл содержит следующую строку для запуска скрипта bash:
$output = "<pre>" . shell_exec('sudo ./hello.sh 2>&1') . "</pre>";
Я отредактировал свой файл visudo, чтобы этот файл hello.sh мог запускаться также как sudo, но до этого я не мог вообще открыть симулятор.
Сначала вам нужно разрешить это в вашем файле sudoers.
www-data ALL = NOPASSWD: /path/to/script/hello.sh
где www-data — это пользователь, который работает как apache.
Во-вторых. вам нужно иметь полный путь в shell_exec.
$output = "<pre>" . shell_exec('sudo /path/to/script/hello.sh 2>&1') . "</pre>";
Не уверен, как здесь используется переменная $ PATH в вашей оболочке, поэтому может оказаться, что вы должны добавить следующее в ваш сценарий приветствия:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Других решений пока нет …