腾讯云+Apache+Ubuntu Server16.04 部署Django

最近在学习Python Web中的Django框架,自己跟着官方文档写了小的demo。在编写完代码后,想把它部署在腾讯云上,一开始没有什么想法,后来也看了别人的部署的过程,但还是遇到了很多坑,这里把我自己部署的过程记录下来,已做以后查看,同时也分享给大家。

首先声明下我的部署环境:腾讯云+Apache 2.4.18+python3.5+Django2.0+Ubuntu Server 16.04 LTS
Step 1:检查自己服务器自带的Python版本

腾讯云的Ubuntu系统默认好像是装有2个Python版本的,一个是Python 2.X,另外一个是Python 3.X,可以通过查看/user/bin目录来看到,下面是我的目录下的结构,可以看到系统中同时有Python 2.7和Python 3.5。

ls /user/bin | grep python


这是推荐大家使用Python 3(原因你懂的.......),系统默认是Python 2.X,这里大家可以通过创建软链接的方法来将默认的版本改为Python 3(具体的命令可以自行百度或者Google,很简单的)。

更改完后,在终端下输入 "python -V"查看更改后系统默认的Python版本

python -V


可以看到系统中的Python已经变成了Python 3.5.2。接下来大家需要继续安装pip,setuptools等安装工具,可以通过Ubuntu的"apt-get install XXX"命令来进行安装,由于本文的侧重点在于具体的部署部分,所以这里安装工具的命令就不多讲,大家可以试着安装.

Step 2: 安装Django

这里安装Django,我们完全可以通过Python的pip工具来进行安装

pip install Django==2.0.0

安装完成后即可使用Django了

Step 3: 安装Apache 2和mod_wsgi

在Ubuntu的命令行中,我们使用apt-get install 命令来安装Apache 2 和mod_wsgi

apt-get install apache2
apt-get install libapache2-mod-wsgi-py3

安装完成后,我们可以在系统的 /etc/init.d/下可以看到有一个apache2的文件

ls /etc/init.d/ | apache2

启动apache2,查看是否安装成功

/etc/init.d/apache2 start

输入上面的命令后,在浏览器地址栏中输入 "XXX.XXX.XXX.XXX:80"(其中将"XXX.XXX.XXX.XXX"替换为你服务器的IP地址),如果显示是ubuntu的默认欢迎界面,说明apache2已安装成功。

Tip:如果没有打开成功,则很有可能是你的服务器安全组中缺少一个配置来源为all,端口协议为TCP:80的入站规则,必须自己手动添加一个,具体方式请参见:添加腾讯云服务器安全组

Step 4:确认安装的Apache版本号

输入 “apachectl -v”来查看版本好

apachectl -v

这里看到我安装的是Apache 2.4.18

Step 5: 创建一个网站配置文件,建立新网站

在 /etc/apache2/sites-available/下新建一个文件 这里我把它命名为mysite.conf,文件名可任意取。

sudo vim /etc/apache2/sites-available/mysite.conf

在mysite.conf文件下输入:

<VirtualHost *:80>
    ServerName www.XXX.com(这里替换成你自己域名)
    ServerAlias anothername.com
    ServerAdmin XXX.@XX.com(这里替换成你自己的邮箱)
     DocumentRoot /var/www/Calculator/ (这里的参数替换成你自己的项目的目录)
    Alias /media/ /var/www/Calculator/media/
    Alias /static/ /var/www/Calculator/static/

    <Directory /var/www/Calculator/media>
        Require all granted
    </Directory>

    <Directory /var/www/Calculator/static>
        Require all granted
    </Directory>

    WSGIScriptAlias / /var/www/Calculator/new_calc/wsgi.py
    <Directory /var/www/Calculator/new_calc>
    <Files wsgi.py>
        Require all granted
    </Files>
    </Directory>
</VirtualHost>

这里我的项目地址位置 /var/www/Calculator/目录下

Step 6:修改项目中的wsgi.py文件

修改你项目中的wsgi.py文件,改为以下内容

sudo vim /var/www/Calculator/new_calc/wsgi.py

"""
WSGI config for new_calc 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/2.0/howto/deployment/wsgi/
"""

import os
from os.path import join,dirname,abspath
import sys
PROJECT_DIR = dirname(dirname(abspath(__file__)))
from django.core.wsgi import get_wsgi_application
sys.path.insert(0,PROJECT_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "new_calc.settings")
#这里将settings文件换成你自己的settings即可
application = get_wsgi_application()

设置完成后,你还需要修改自己的项目的目录文件的权限,将自己项目目录的权限设置为0755,普通文件的权限设置为0644。

Tip:我这里用的是sqlite3数据库,还需要给它写的权限,如果没有给它写权限,在启动服务器后,会看到服务器返回500的状态码。

Step 7: 加载新网站,测试
a2ensite /etc/apache2/sites-available/mysite.conf //加载自己新的网站
a2dissite /etc/apache2/sites-available/000-default.conf //让默认的失效
/etc/init.d/apache2 reload  //重新加载
/etc/init.d/apache2 restart //重启apache服务

执行完上面的命令后,我们的部署工作就完成了,这时候在浏览器输入你的域名就可以正常访问网站了。

Tip:在项目里如果在settings.py文件中将Debug设置为False,那么你需要将自己的IP地址或者域名添加自己的ALLOWED_HOSTS中,如果你的项目遇到错误,可以将Debug设置为True,通过查看TraceStack来检查错误。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值