2016-11-20 122 views
1

我创建了一个运行selenium脚本的瓶子应用程序。在烧瓶中它工作得很好,但是当我使用wsgi将它传输到apache时,我从apache.log中得到这个错误。加载模板但硒脚本不运行。我将附上相关的error.log行以及配置文件。任何帮助将不胜感激!权限尝试在apache上运行wsgi selenium脚本时“geckodriver.log”的拒绝错误

[Sun Nov 20 00:37:28.995529 2016] [wsgi:error] [pid 7492:tid 1954542640] File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/service.py", line 45, in __init__ 
[Sun Nov 20 00:37:28.995545 2016] [wsgi:error] [pid 7492:tid 1954542640]  log_file = open(log_path, "a+") 
[Sun Nov 20 00:37:28.995560 2016] [wsgi:error] [pid 7492:tid 1954542640] IOError: [Errno 13] Permission denied: 'geckodriver.log' 

webroombooker.config

<VirtualHost *:80> 
      ServerName localhost 

      WSGIScriptAlias//home/pi/Website/webroombooker.wsgi 

      <Directory /home/pi/Website/> 
        Require all granted 
      </Directory> 

      ErrorLog ${APACHE_LOG_DIR}/error.log 
      LogLevel warn 
      CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

000-default.config

<Directory /home/pi/Website/> 
      Require all granted 
</Directory> 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 

webroombooker.wsgi

#!/usr/bin/python 

import sys 
import logging 

logging.basicConfig(stream=sys.stderr) 

sys.path.insert(0,"/home/pi/Website") 

from webroombooker import app as application 

谢谢先进!我很新!

+1

Apache作为不同的用户运行,在不同的环境中以不同的权限运行。大多数情况下,它以用户“www-data”运行,因此该用户需要访问您的文件。 – furas

+0

我在文件和问题上使用了chmod 777,仍然得到了相同的结果 –

+0

以及您在文件夹(及其父文件夹)上使用了哪种模式? – furas

回答

0

Apache/mod_wsgi下的WSGI应用程序进程的当前工作目录通常是根目录。该目录由root用户拥有。由于您试图将相对路径名称用于日志文件而不是绝对路径,因此它会尝试将目录写入根目录,因为它由root用户拥有,所以您不能这样做。请参阅:

对于记录下的Apache/mod_wsgi的运行时,你最好配置登录到stderr应用。这样它就会在Apache错误日志中被捕获,并且您不必担心可以在哪里写入日志文件。

+0

谢谢!问题是硒缺省情况下会记录到此文件。我认为没有办法阻止这一点。 –

+0

您是否在代码中创建Firefox驱动程序?如果是这样,请尝试传递''browser = webdriver.Firefox(log_path = None)'',或者传递一个绝对日志文件路径作为可以写入的用户Apache运行的位置。对于http://blog.michaelyin.info/2015/05/18/how-to-disable-ghostdriver-log-when-using-selenium/中提到的其他驱动程序,请参见类似的东西。如果您查看Selenium的代码,Firefox驱动程序对博客文章中提到的驱动器使用不同的参数名称。 –

+0

我没有创建它。它只是自动创建它。 log_path =没有工作太好。虽然谢谢! –

相关问题