Ubuntu中Apache,Django,wsgi环境搭建

1 环境安装


1.1 Django安装

sudo apt-get install python-pip
sudo apt-get install –upgrade pip
sudo pip install Django

检查Django是否安装成功以及版本号

python
Python 2.7.12 (default, Jul  1 2016, 15:12:24)
[GCC 5.4.0 20160609] on linux2
Type "help","copyright", "credits" or "license" for moreinformation.
>>> import django
>>> django.VERSION
(1, 7, 6, 'final', 0)
>>>
>>> django.get_version()
'1.7.6'

1.2   Apache和wsgi安装

sudo apt-get install apache2
# Python 2
sudo apt-get install libapache2-mod-wsgi
# Python 3
sudo apt-get installlibapache2-mod-wsgi-py3

安装完后确认apache的版本号

apachectl –v

2 环境部署


2.1   Apache部分


Ubuntu中Apache的配置文件在/etc/apache2/下,需要新建一个网站配置文件,路径和文件名如下:

sudo touch /etc/apache2/sites-available/sitename.conf

打开sitename.conf,输入如下配置内容,相关的注释写在里面,实际运行时需要删掉注释。本例中,django的工程文件放到了/home//home/bagainu/pyproject/untitled/下,/home/bagainu/pyproject/untitled/blog是django的一个application,/home/bagainu/pyproject/untitled/untitled中保存的是该django工程的相关配置,包括setting.py和wsgi.py等。

#端口号,如果更改端口号后面也要更新/etc/apache2/ports.conf中的监听端口号
<VirtualHost *:8000>
   ServerName localhost
   ServerAlias bagainu.com
   ServerAdmin bagainu@localhost
   # 以上部分随便填写,当前没什么关系,具体作用参考注(3)
 
   #配置media和static文件的访问路径,其中media是用户上传的资源,static是网站的静态文件包括js,css和图片等,注意路径不要写错
   Alias /media/ /home/bagainu/pyproject/untitled/blog/media/
   Alias /static/ /home/bagainu/pyproject/untitled/blog/static/
 
   <Directory /home/bagainu/pyproject/untitled/blog/media/>
       Require all granted
   </Directory>
 
   <Directory /home/bagainu/pyproject/untitled/blog/static/>
       Require all granted
   </Directory>
 
   #配置Django中的wsgi.py文件路径,使apache和django连接,注意路径不要写错
   WSGIScriptAlias / /home/bagainu/pyproject/untitled/untitled/wsgi.py
 
   <Directory /home/bagainu/pyproject/untitled/untitled/>
   <Files wsgi.py>
       Requireall granted
   </Files>
</Directory>
 
   #日志的位置,如果不配置在/var/log/apache2/error.log也能找到
   ErrorLog ${APACHE_LOG_DIR}/error.log   
</VirtualHost>

注:

1)如果你的apache版本号是 2.2.x,用下面的代替 Requireall granted

Order deny,allow

Allow from all

如果实在不知道用哪种,可以打开/etc/apache2/apache2.conf,与里面的写法保持一致就行。如果写错,访问时会出现403 Forbidden。

2)如果上面的配置文件中更改了端口号,需要在etc/apache2/ports.conf中增加监听端口,在Listen80后面增加Listen 8000。

3)Apache配置文件中的相关内容可以查阅 点击打开链接

 

2.2   Django部分


在本例中,Django中需要配置的文件有两个,位置在

/home/bagainu/pyproject/untitled/untitled/wsgi.py

/home/bagainu/pyproject/untitled/untitled/settings.py

 

wsgi.py的作用是把Apache和Django连接起来,打开wsgi.py,输入以下内容

import os
from os.path import join, dirname, abspath
 
PROJECT_DIR = dirname(dirname(abspath(__file__)))            #3
import sys                                                   #4
sys.path.insert(0, PROJECT_DIR)                              #5
 
os.environ["DJANGO_SETTINGS_MODULE"]= "untitled.settings"    #7
 
from django.core.wsgi importget_wsgi_application
application = get_wsgi_application()

第3,4,5行为新加的内容,作用是让脚本找到django项目的位置,也可以在sitename.conf中做,用WSGIPythonPath,想了解的自行搜索, 第7行如果一台服务器有多个django project时一定要修改成上面那样,否则访问的时候会发生网站互相串的情况,即访问A网站到了B网站,一会儿正常,一会儿又不正常(当然也可以使用 mod_wsgi daemon 模式)

 

对/media和/static目录的配置在setting.py文件中,打开setting.py,加入以下内容:

# Static files (CSS, JavaScript, Images)
STATIC_URL = '/static/'
STATIC_ROOT =os.path.join(BASE_DIR,'static')
 
# upload folder
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')

然后输入以下指令配置Django静态文件

cd /home/bagainu/pyproject/untitled
python manage.py collectstatic

最后需要配置Django工程的文件权限,如果图个简单,可以直接

sudo chmod 777 –R /home/baginu/pyproject/untitled

这样配置非常不安全(还用说么···),具体的权限配置可以参考其他的资料,这里就图快了。

 

3       启动服务

sudo service apache2 restart 或 sudoapachectl restart
sudo a2ensite sitename 或 sudoa2ensite sitename.conf

此时访问127.0.0.1:8000或者127.0.0.1:8000/admin应该会有相应。如果用的是虚拟机,可以直接访问虚拟机的ip:8000



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值