我为大学做了一个简单的Django项目。
现在我想在我自己的托管虚拟服务器上显示它,例如www.myserver.com:8001
我正在使用带有apache2的Ubuntu 14.04。
在/etc/apache/site-available
我有一个名为uniproject.conf
<VirtualHost *:8001>
DocumentRoot "/var/www/uniproject/"
Servername www.myserver.com:8001
Alias /static /var/www/uniproject/static/
WSGIScriptAlias / /var/www/uniproject/uniproject.wsgi
<Directory /var/www/uniproject/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
在/etc/apache2/ports.conf
我写了Listen 8001
在/var/www/uniproject/uniproject.wsgi
import os
import sys
sys.path = ['/var/www/uniproject'] + sys.path
os.environ['DJANGO_SETTINGS_MODULE'] = 'uniproject.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
a2ensite uniproject.conf
和service apache2 restart
之后我正在呼叫www.myserver.com:8001
来了
Not Found
The requested URL / was not found on this server.
我的目标是,稍后在我的网站上运行三到五个django应用/服务器就像
www.myserver.com:8001
,www.myserver.com:8002
,www.myserver.com:8003
等...
但我做错了什么?
我正在使用没有virtualenv的Django 1.7.1
Apache Log说:
目标WSGI脚本未找到或无法统计:/ var / www / uniproject,referer:http://www.myserver.com:8001/
/var/www/uniproject
中的文件结构是:
创建新项目时,/var/www/uniproject/uniproject
是默认的django文件(setting.py
,urls.py
,wsgi.py
,__init__.py
)
drwxr-xr-x 7 root root 4096 Dec 21 21:50 uniproject
答案 0 :(得分:0)
好的,我是如何解决我的问题的。 我现在正在禁用端口内容并改为使用子域。
HOWTO:“在Ubuntu 14.04上运行的Apache2上部署各种数量的Django应用程序” 第一:
cd /etc/apache2/site-available
sudo nano someproject.conf
someproject.conf中的:
<VirtualHost *:80>
ServerName someproject.mysite.com
ServerAlias www.someproject.myssite.com
DocumentRoot "/var/www/someproject/"
Alias /static /var/www/someproject/static/
WSGIScriptAlias / /var/www/someproject/wsgi.py
<Directory /var/www/someproject/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
之后的运行:
sudo a2ensite someproject.conf
sudo service apache2 restart
第二
cd /var/www/
django-admin.py startproject someproject
cd someproject
sudo nano wsgi.py
在wsgi.py中
import os
import sys
path = '/var/www/someproject'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'someproject.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
现在访问:someproject.mysite.com
这是用django 1.7.1完成的 确保还安装了所有python模块(例如lxml,feed解析器等)
有时在settings.py
中会有一个错误(发生在我身上)在settings.py中删除或评论:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
#'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
在django项目中每次编辑后运行
sudo service apache2 reload
希望这有助于任何人。
通过这种方法,我在我的VM上运行了三个django服务器/应用程序。