環境
さくらクラウド(CPU2コア、メモリ3GB)
CentOS Linux release 8.2.2004
Apache/2.4.37 (centos)
Python 3.6.8
Mozilla Firefox 78.2.0esr
geckodriver-v0.28.0
selenium Version: 3.141.0
ディレクトリ
/var/www/cgi-bin/test.py 755
参考にしたもの
https://teratail.com/questions/278712
https://teratail.com/questions/281874
実現したいこと
Webブラウザからサーバにアクセスし、サーバからSeleniumでwebページにアクセスした結果をブラウザに表示したい。
発生している問題・エラーメッセージ
webブラウザ越しでアクセスするとタイムアウトエラーが発生する。
タイトル: 504 Gateway Timeout Gateway Timeout The gateway did not receive a timely response from the upstream server or application.
該当のソースコード
Python3
1#!/bin/python3 2# -*- coding: utf-8 -*- 3from selenium import webdriver 4from selenium.webdriver.firefox.options import Options as Options 5import cgi # CGIモジュールのインポート 6import cgitb 7cgitb.enable() 8options = Options() 9options.add_argument('--headless') 10options.add_argument('--no-sandbox') 11driver = webdriver.Firefox(executable_path=r'/usr/local/bin/geckodriver', options=options) 12driver.implicitly_wait(120) 13print("Content-Type: text/plain;charset=utf-8") #HTMLを出力するために必要 14print("") #HTMLを出力するために必要 15driver.get('https://yahoo.co.jp') 16print(driver.title) 17
試したこと
ローカルで動くことは確認済み
python3
1# python3 /var/www/cgi-bin/test.py 2Content-Type: text/plain;charset=utf-8 3 4Yahoo! JAPAN
パス等の確認
# which python3 /bin/python3 # locate geckodriver /usr/local/bin/geckodriver /var/www/cgi-bin/geckodriver /var/www/cgi-bin/geckodriver.log # pip3 show selenium Name: selenium Version: 3.141.0 Summary: Python bindings for Selenium Home-page: https://github.com/SeleniumHQ/selenium/ Author: UNKNOWN Author-email: UNKNOWN License: Apache 2.0 Location: /usr/local/lib/python3.6/site-packages Requires: urllib3 # pip3 show webdriver <--何も表示されず完了 # # pwd /var/www # ls -al 合計 16 drwxr-xr-x 4 root root 4096 3月 4 22:29 . drwxr-xr-x. 22 root root 4096 3月 4 22:29 .. drwxr-sr-x 4 apache apache 4096 3月 9 16:29 cgi-bin drwxrws--- 2 apache apache 4096 3月 9 15:29 html
エラーメッセージ
# vim /var/log/httpd/error_log [Tue Mar 09 16:20:27.322982 2021] [cgid:warn] [pid 556195:tid 139623355320064] [client 133.106.33.134:56847] AH01220: Timeout waiting for output from CGI script /var/www/cgi-bin/test.py [Tue Mar 09 16:20:27.323102 2021] [cgid:error] [pid 556195:tid 139623355320064] [client 133.106.33.134:56847] Script timed out before returning headers: test.py
CGIを扱った経験が少ないため見当違いな事をしているかもしれません。
参考のページや他のサイトも見ながら進め、implicit_waitも長くしたり、python3のパスの確認等もしましたが原因がわからず難航しております。
何か間違いがあるのでしょうか。
お力添えいただけると幸いです。
他に必要な情報があればお知らせください。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/22 23:22
2021/03/30 16:14
2021/04/01 16:23
2021/04/03 10:06
2021/05/09 23:47