我正致力于为我的办公室生产Django应用程序。到目前为止,该应用程序已经开发并运行,所有需要完成的工作是部署所述应用程序。遗憾的是,这项任务比开发应用程序本身更麻烦。我正在使用Apache 2.2,mod_wsgi 3.3以及virtualenv中的Python 2.7和Django 1.9开发Centos 5.11服务器。
我遇到的问题是将Django应用程序挂钩到我的域的子目录(www.abc.example.com/FR/)但是我在配置apache的httpd.conf时遇到了问题,我添加的设置似乎没有得救我根据httpd.conf的注释运行了以下命令,确保在重新启动时保存更改:
/usr/local/cpanel/bin/apache_conf_distiller --update
/usr/local/cpanel/bin/build_apache_conf
我使用的指南引导我使用以下代码: *请注意'〜'代表/ home / [用户名]
的httpd.conf
LoadModule wsgi_module extramodules/mod_wsgi.so
...
WSGIScriptAlias /FR ~/public_html/FR/django.wsgi
WSGIPythonPath ~/public_html/FR
<Directory ~/mydjango/IFTP>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
〜/ public_html / FR / django.wsgi django.wsgi
import os
import sys
sys.path.append('~/mydjango')
sys.path.append('~/mydjango/IFTP')
os.environ['DJANGO_SETTINGS_MODULE'] = 'IFTP.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
〜/ mydjango / IFTP / wsgi.py wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "IFTP.settings")
application = get_wsgi_application()
道歉,我应该进一步指出问题是这些设置没有生效。当我访问www.abc.example.com/FR/时遇到404未找到,因此wsgi脚本配置错误或设置不正确,这是我需要帮助的地方。
答案 0 :(得分:0)
搜索后我发现问题出在django.wsgi文件中,提供了一个不必要的额外层。我将我的httpd.conf文件更改为下面的代码,进一步指定了virtualenv的路径并链接到wsgi.py文件。
# -*- coding: utf-8 -*-
from kivy.app import App
#kivy.require("1.8.0")
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.lang import Builder
import kivy.resources
#kivy.resources.resource_add_path(r'/home/kivy/android/android-sdk-linux/platforms/android-18/data/fonts')
kivy.resources.resource_add_path('C:\Windows\Fonts')
import os.path
Builder.load_string('''
<Label>:
font_name: 'AdobeGothicStd-Bold.otf'
<Widgets>:
Label:
text: "ABC ÄäÜüß にほんご 中文 ру́сский язы́к ÉéÈèÊêËë Españolالعَرَبِيَّة français"
size: root.width, 75
pos: root.x, root.top - 150
font_size: 50
height: 75
''')
class Widgets(Widget):
def build(self):
return Widgets()
class MyApp(App):
def build(self):
return Widgets()
if __name__ == "__main__":
MyApp().run()