Ubuntu中Apache,Django,wsgi环境搭建

来源:互联网 发布:重庆软件行业协会地址 编辑:程序博客网 时间:2024/05/21 20:24

1 环境安装


1.1 Django安装

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

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

pythonPython 2.7.12 (default, Jul  1 2016, 15:12:24)[GCC 5.4.0 20160609] on linux2Type "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 2sudo apt-get install libapache2-mod-wsgi# Python 3sudo 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 osfrom os.path import join, dirname, abspath PROJECT_DIR = dirname(dirname(abspath(__file__)))            #3import sys                                                   #4sys.path.insert(0, PROJECT_DIR)                              #5 os.environ["DJANGO_SETTINGS_MODULE"]= "untitled.settings"    #7 from django.core.wsgi importget_wsgi_applicationapplication = 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 folderMEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR,'media')

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

cd /home/bagainu/pyproject/untitledpython manage.py collectstatic

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

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

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

 

3       启动服务

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

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



1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝东西下架了怎么办 淘宝衣服下架了怎么办 淘宝物品下架了怎么办 淘宝货品下架了怎么办 淘宝cmcc下架了怎么办 修手机主板被换怎么办 换手机屏幕被调换零件怎么办 买了东西想退换怎么办 淘宝退货卖家不同意怎么办 淘宝退货退错了怎么办 商品质量问题换货后仍有问题怎么办 货没收到想退款怎么办 淘宝退货店家不退款怎么办 京东退货快递显示签收怎么办 买家已付款卖家不发货怎么办 两个地址发给买家退货怎么办 超市盘点少了货怎么办 月盘点出错领导要理由怎么办 做外汇被坑怎么办?亏损二十多万 iphone储存空间已满怎么办 icloud储存空间将满怎么办 手机店没人进店怎么办 淘宝退货运单填错了怎么办 淘宝快递单号填错了怎么办 拼多多48小时不发货怎么办 想开化妆品店没有经验怎么办 淘宝卖家收钱不发货怎么办 nike拖鞋买小了怎么办 京东换货没货了怎么办 淘宝申请退货退款卖家不处理怎么办 家具连接扣坏了怎么办 锅炉炉水碱度低怎么办 快递里面的东西少了怎么办 很多闲置在家里的东西怎么办 闲鱼买的东西与原物不对怎么办 退款后又发货了怎么办 淘宝卖家不发货也不退款怎么办 已经申请退款卖家仍发货怎么办 淘宝卖家已发货买家申请退款怎么办 爱上街App不发货怎么办 阿里卖家虚假发货怎么办