当前位置: 首页 > 知识库问答 >
问题:

在apache和mod_wsgi上的python烧瓶中创建文件时拒绝权限错误

巫晋鹏
2023-03-14

我试图通过python flask创建一个csv文件。该代码在localhost中运行良好,但在aws ec2实例上的apache mod\u wsgi上部署时会出现权限拒绝错误。

@app.route('/downloadChats/<db_token>/<requestrange>/', methods = ['GET'])
def downloadChats(db_token, requestrange):

   <fetch data from table>

    try:
            filename = str(time.time()).strip().split('.')[0] + '.csv'
            df = pd.DataFrame(columns = ['sessionid', 'city', 'ipAddress', 'startTime', 'timestamp', 'name', 'mob_no'])
            for sessid in sessionids:
                    df = df.append({'sessionid' : disp_json[sessid]['sessionid'], 'city' : disp_json[sessid]['city'], 'ipAddress' : disp_j$
            df.to_csv(filename, index = False)
    except Exception as msg:
            print("Exception while writing csv file in downloadChats : " + str(msg))
            return "<h1> THis service is unavailable currently, Please try later. </h1> "
    return send_from_directory('/var/www/FlaskApps/chatbotApp/', filename, as_attachment=True)

应用程序配置文件为:

   <VirtualHost *:80>
       ServerName example1.example.com
       ServerAdmin admin@mywebsite.com
       WSGIScriptAlias / /var/www/FlaskApps/FlaskApps.wsgi
       WSGIPassAuthorization On
       <Directory /var/www/FlaskApps/chatbotApp/>
         Order allow,deny
         Allow from all
         </Directory>
       <Directory /var/www/FlaskApps/chatbotApp/static/>
         Order allow,deny
         Allow from all
       </Directory>

       ErrorLog ${APACHE_LOG_DIR}/error.log
       LogLevel warn
       CustomLog ${APACHE_LOG_DIR}/access.log combined
       RewriteEngine on
       RewriteCond %{SERVER_NAME} = example1.example.com
       RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} 
       [END,NE,R=permanent]
    </VirtualHost>

wsgi配置文件为:import sys导入日志

logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/FlaskApps/chatbotApp/")

# home points to the home.py file
from home import app as application
application.secret_key = "somesecretsessionkey"

错误:

[Errno 13] Permission denied: '1518497209.csv'

共有1个答案

艾飞宇
2023-03-14

您不能使用相对路径名,因为进程的工作目录将不在代码所在的位置。mod_wsgi文档中解释了这一点以及需要执行的操作,网址为:

  • http://modwsgi.readthedocs.io/en/develop/user-guides/application-issues.html#application-工作目录
 类似资料:
  • 我正在尝试使用mod_wsgi在Ubuntu 16.04上通过apache安装flask应用程序。问题是wsgi脚本无法导入任何python模块。 我已经验证了wsgi脚本是可执行的,并用python独立运行了它。我还验证了我的flask应用程序可以自己运行,没有错误。我能够在我运行的任何其他python程序中导入所有模块。我还安装了带有pip和源代码的烧瓶。似乎什么都没用。 这是我的错误日志:

  • 我正在尝试创建一个图像文件到外部存储器以共享它。但在尝试下面的代码时,我遇到了一些错误 到目前为止,我找到的解决方案只有使用 和 设置权限 我已经用过了。但仍然在错误选项卡中获得如下错误 E/path 和在信息选项卡中 W/系统。错误:java。木卫一。IOException:权限被拒绝 W/系统。错误:在java。木卫一。UnixFileSystem。CreateFileExclusivey0(

  • 我有一个基本的“hello world”烧瓶应用程序正在运行。 我在Ubuntu 14.04上,使用Apache 2.4。我安装了mod_wsgi。 我创建了一个~/web/piFlask/venv/来保存一个安装了flask的virtualenv创建的Python2。 但是,我希望我的flaskapp导入我编写的Python3. x模块。 我需要做什么才能做到这一点? 我试着创建一个

  • 我试图在python中构建一个可以从XAMPP的Apache运行的应用程序,因此我安装了flask(),并按照以下说明进行mod_wsgi安装http://modwsgi.readthedocs.io/en/develop/user-guides/quick-installation-guide.html.我使用XAMPP的Apache,版本2.4.29和anaconda的python 3.6.4

  • 问题内容: 我正在使用Amazon EC2托管通过git部署到服务器的网站。之前,我在同一类型的EC2 Ubuntu Linux Server实例上使用了本教程,并且运行良好。但是,当我尝试推送到服务器时,收到以下错误跟踪: 教程:http://toroid.org/ams/git- website-howto 跟踪: 目前,我的存储库中只有一个文件,即。 错误跟踪显示拒绝创建文件的权限。请您告诉

  • 首先,我想说我可能缺少了一些基本的东西,但实际上我是Symfony的新手。 当我从terminal创建包时(我使用的是mac),它给了我这个错误;