Мы вызываем скрипт python / selenium, который использует веб-драйвер firefox.
Сценарий отлично работает при запуске из командной строки, но при вызове с помощью вызова system / exec из PHP через Apache мы видим следующие ошибки в логах apache:
selenium.common.exceptions.WebDriverException: Message: 'The browser appears to have
exited before we could connect.
The output was: \n(firefox-bin:16178): libgnomevfs-WARNING **:
Unable to create ~/.gnome2 directory: Permission denied\nSegmentation fault\n'
Точка сбоя - сразу после того, как веб-драйвер пытается запустить виртуальный браузер, используя:
display = Display(visible=0, size=(1000, 800))
display.start()
browser = webdriver.Firefox()
Кто-нибудь сталкивался с этим раньше? После долгих попыток я не смог найти четкого решения. Я предполагаю, что это как-то связано с разницей в разрешениях при запуске через cli по сравнению с запуском через apache.
Основной причиной были разрешения: я обнаружил, что выполнение сценария через командную строку в качестве пользователя apache дало более информативную ошибку:
sudo -u www-data python <script>
Мне нужно было добавить каталог .gnome и .gnome_private в корневой каталог веб-сервера (/ var / www /), а затем добавить его в список www-data.