在 mod_wsgi 中使用 Flask 时无法写入 Python 中的文件
Unable to write to file in Python when using Flask in mod_wsgi
我是 运行 Flask 应用程序,在 mod_wsgi 3.4 上使用 Python 2.7.6。 OS 是 Ubuntu 14.04。我无法写入文件。下面是我正在使用的代码:
if __name__ == "__main__":
f = open('/var/www/jcapp/foobar', 'r+')
f.write('hello world')
f.close()
jcapp.run()
Apache 站点配置文件:
<VirtualHost *:80>
ServerName mysite.co
WSGIDaemonProcess jcapp
WSGIScriptAlias / /var/www/jcapp/jcapp.wsgi
<Directory /var/www/jcapp/>
WSGIProcessGroup jcapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias /notify /var/www/jcapp/jcapp.wsgi
<Directory /var/www/jcapp/>
WSGIProcessGroup jcapp
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
谁能告诉我哪里可能出错了?
您仅在 __name__ == '__main__'
时写入文件,而当您 运行 使用 mod_wsgi 而不是 python app.py
时则不会写入文件。
将代码移到 __name__
守卫之外。
或者,如果您需要在 运行 应用程序之前进行一些设置,请使用单独的入口点。将 mod_wsgi 指向此入口点。
wsgi_app.py
:
from myapp import jcapp as application
with open('/var/www/jcapp/foobar', 'w') as f:
f.write('hello world')
我是 运行 Flask 应用程序,在 mod_wsgi 3.4 上使用 Python 2.7.6。 OS 是 Ubuntu 14.04。我无法写入文件。下面是我正在使用的代码:
if __name__ == "__main__":
f = open('/var/www/jcapp/foobar', 'r+')
f.write('hello world')
f.close()
jcapp.run()
Apache 站点配置文件:
<VirtualHost *:80>
ServerName mysite.co
WSGIDaemonProcess jcapp
WSGIScriptAlias / /var/www/jcapp/jcapp.wsgi
<Directory /var/www/jcapp/>
WSGIProcessGroup jcapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias /notify /var/www/jcapp/jcapp.wsgi
<Directory /var/www/jcapp/>
WSGIProcessGroup jcapp
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
谁能告诉我哪里可能出错了?
您仅在 __name__ == '__main__'
时写入文件,而当您 运行 使用 mod_wsgi 而不是 python app.py
时则不会写入文件。
将代码移到 __name__
守卫之外。
或者,如果您需要在 运行 应用程序之前进行一些设置,请使用单独的入口点。将 mod_wsgi 指向此入口点。
wsgi_app.py
:
from myapp import jcapp as application
with open('/var/www/jcapp/foobar', 'w') as f:
f.write('hello world')