Django手把手学习——Apache+mod_wsgi

 
 
环境:
ubuntu12.04
 
 
安装apache(默认2.2.22)
sudo apt-get install apache2
sudo apt-get install apache2-prefork-dev    (避免configure的时候出现miss apxs)

 
安装python(默认已安装python2.7.3)
sudo apt-get install python
sudo apt-get install python-dev    (避免出现Python.h: No such file or directory错误)

 
wget -c http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
tar zxvf wsgi-3.3.tar.gz
cd mod_wsgi-3.3/
./configure

 
如果上面的apache和python为自定义或者编译安装,使用下面方式
./configure --with-apxs=/apxs所在 --with-python=/python所在    #可通过whereis apxs,whereis python查找
make
sudo make install    #此处添加sudo是安装过程可能需要root权限

 
修改default文件(或者在设置虚拟主机,下面将介绍),添加
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

 
重启apache
/etc/init.d/apache2 restart    #此处可能需要root权限

 
可查看apache日志,看wsgi是否启动成功
Apache/2.2.22 (ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

 
 
 
安装django
wget -c https://www.djangoproject.com/download/1.4.1/tarball
tar zxvf Django-1.4.1.tar.gz
cd Django-1.4.1
sudo python setup.py install    #需要root权限创建文件
默认路径在: /usr/local/lib/python2.7/dist-pachages/Django-1.4.1

 
创建项目目录
cd /home/
mkdir wwwdjango
cd wwwdjango
django-admin.py startproject mysite

 
 
设置虚拟主机及django工作环境的配置
 
在/etc/apache2/sites-available下添加配置文件
cd /etc/apache2/sites-available
sudo vi mysite.com.conf

 
加入下面内容:
Alias /robots.txt /home/wwwdjango/mysite/mysite/static/robots.txt
Alias /favicon.ico /home/wwwdjango/mysite/mysite/static/favicon.ico

AliasMatch ^/([^/]*.css) /home/wwwdjango/mysite/mysite/static/style/$1

Alias /media/ /home/wwwdjango/mysite/mysite/media/
Alias /static/ /home/wwwdjango/mysite/mysite/static/

<Directory /home/wwwdjango/mysite/mysite/media>
Order deny,allow
Allow from all
</Directory>

<Directory /home/wwwdjango/mysite/mysite/static>
Order deny,allow
Allow from all
</Directory>

WSGIPythonPath /home/wwwdjango/mysite        #注意在虚拟机中需要添加此行,否则出现无法import mysite.settings错误
WSGIScriptAlias / /home/wwwdjango/mysite/mysite/wsgi.py

<Directory /home/wwwdjango/mysite/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

 
为了处理mysite.com/admin/样式无法加载问题,
官方强烈建议的方式是:
#使用django.contrib.staticfiles控制admin app的静态文件
即:在settings中配置STATIC_ROOT到静态路径static_url
#然后使用collectstatic来自动copy静态文件,
./manage.py collectstatic    #此操作将拷贝必须的静态文件到static_root指定的路径

 
 
方式1:/home/wwwdjango/mysite/mysite/static/下建立一个软连接
cd /home/wwwdjango/mysite/mysite/static/
sudo ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin admin #此处路径为到django下路径:
 
方式2:是手动拷贝必须的静态文件到static路径
 
方式3:是在虚拟机配置文件中使用Alias指定路径到相应路径   i.e.# Alias /admin/ /django/contirb/admin/static/admin/
 
切换目录
cd /etc/apache2/sites-enabled/

创建一个到刚才添加文件的链接

sudo ln -s /etc/apache2/sites-available/mysite.com.conf mysite.com.conf

修改/etc/hosts,指向我们的虚拟机

sudo vi /etc/hosts

添加:

127.0.0.1    mysite.com

重启apache

sudo /etc/init.d/apache2 reload

 
此时,在浏览器中应该可以访问mysite.com
查看到it’s work页面,如果有问题,可以查看apache日志,ubuntu默认安装的apache日志在/var/log/apache2/
 
注意:
需要apache可访问站点目录,apache默认使用www-data,可能需要修改mysite目录给与www-data用户
sudo chown www-data:www-data -R mysite/

标签: ,
本文连接地址: http://www.fresker.com/old2/archives/580 (转载注明出处)

回复

目前暂无评论

Sorry, 评论已关闭.