Deploying Django on OS 10.9 Server

拜拜、爱过 提交于 2019-12-20 03:58:06

问题


I have a project that uses Django that I'm attempting to deploy on a local network on a machine running OS X Server (10.9). I can run it locally with the project's manage.py script and have all of the dependencies and everything, but am struggling to get it running as a regular website through Server.app. Below are the configuration files for the project required by web applications on the server, all pointing to the actual code in :

/Library/Server/Web/Data/WebApps/project/.../

(it's not actually named project, I promise):

/Library/Server/Web/Config/apache2/httpd_project.conf

WSGIScriptAlias /unity /Library/Server/Web/Data/WebApps/unity/unity/site.wsgi

/Library/Server/Web/Config/apache2/webapps/com.apple.webapp.project.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>com.apple.webapp.project</string>
<key>displayName</key>
<string>Daily Download</string>
<key>launchKeys</key>
<array/>
<key>proxies</key>
<dict/>
<key>installationIndicatorFilePath</key>
<string>/Library/Server/Web/Data/WebApps/project/project/site.wsgi</string>
<key>includeFiles</key>
<array>
    <string>/Library/Server/Web/Config/apache2/httpd_project.conf</string>
</array>
<key>requiredModuleNames</key>
<array>
    <string>wsgi_module</string>
</array>

I've already added it as a website in Server.app. The issue is that I'm getting 500 errors with the following entry in /private/var/log/apache2/error_log:

[Mon Jan 06 14:55:21 2014] [error] [client 17.19.244.170] ImportError: Could not import  settings 'project.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named unity.settings

This is weird to me because I've added that directory to my PYTHONPATH and can import project.settings from the Python prompt. At least it's calling my code, but I can't figure out this system path issue. Any ideas?


回答1:


I just setup django 1.6.1 with OS 10.9 Server yesterday.

File /Library/Server/Web/Config/apache2/httpd_wsgi2.conf [..]

WSGIScriptAlias / /Users/jens/Source/macmini/macmini/macmini.wsgi

<Directory /Users/jens/Source/macmini>
Order allow,deny
Allow from all
</Directory>

[..]

File /Library/Server/Web/Config/apache2/webapps/com.apple.webapp.wsgi2.plist

[...]

<?xml version="1.0" encoding="UTF-7"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>name</key>
        <string>com.apple.webapp.wsgi2</string>
        <key>displayName</key>
        <string>Django 1.6.1 Setup at / </string>
        <key>launchKeys</key>
        <array/>
        <key>proxies</key>
        <dict/>
        <key>installationIndicatorFilePath</key>
        <string>/Users/jens/Source/macmini/macmini/macmini.wsgi</string>
        <key>includeFiles</key>
        <array>
                <string>/Library/Server/Web/Config/apache2/httpd_wsgi2.conf</string>
        </array>
        <key>requiredModuleNames</key>
        <array>
                <string>wsgi_module</string>
        </array>
</dict>
</plist>

[...]

Propably noteworthy I installed django within the Home directoty of Jens

[...]

macmini:macmini jens$ ls -l
total 72
-rw-r--r--  1 jens  staff     0 14 Jan 20:43 __init__.py
-rw-r--r--  1 jens  staff   133 14 Jan 21:10 __init__.pyc
-rwxr-xr-x  1 jens  staff   482 15 Jan 09:43 macmini.wsgi
-rw-r--r--  1 jens  staff  4384 15 Jan 17:15 settings.py
-rw-r--r--  1 jens  staff  3902 15 Jan 17:16 settings.pyc
-rw-r--r--  1 jens  staff   298 14 Jan 20:43 urls.py
-rw-r--r--  1 jens  staff   413 14 Jan 21:53 urls.pyc
-rwxr-xr-x  1 jens  staff   466 14 Jan 23:46 wsgi.py
-rw-r--r--  1 jens  staff   590 14 Jan 21:52 wsgi.pyc

[...]

And finaly the wsgi.py file

[...]

"""
WSGI config for macmini project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/
"""

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "macmini.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

[...]

Make sure that you now create a virtual site within the Server.app.

Cheers, Jens



来源:https://stackoverflow.com/questions/20958227/deploying-django-on-os-10-9-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!