因为最近腾讯云对学生有很大的优惠,基本上学生认证之后每个月会发一张购买服务器的代金券,只需要1元每个月购买一个最基本的服务器,对于一些想玩玩练练手的同学来说,再好不过了(正常的中小项目完全够用)。

1. 准备工作

  1)百度腾讯云官网,注册,认证(不是学生的跳过学生认证)。   2)购买云服务器。基本上最低配置就够用了,根据个人的喜好选择操作系统配置用户名密码以及公钥即可,不会配置的选择默认的就好了或者自行Google。如下图:   3)下载一个xshell或者其他的可以ssh连接的终端工具,或者ubuntu下直接使用ssh即可,在腾讯云上找到自己的服务器的IP地址填入进去建立链接,默认使用22号端口即可,当然腾讯云也提供了web端登录,见图片右端的登录按钮。   

2. 配置文件(ubuntu云主机)

  1) 输入用户名密码登录,更新源sudo apt-get update。输入python查看版本号(我的是2.7),

    sudo apt-get install python-pip
    sudo pip install django
    sudo apt-get install apache2
    sudo apt-get install libapache2-mod-wsgi
    下面是我自己的项目需要安装的一些,可忽略:
    sudo apt-get install git
    sudo pip install pygithub
    sudo apt-get install python-networkx
    获取项目源码:
    git clone http://github.com/ch710798472/GithubRecommended.git 

  2) apachectl -v查看Apache版本号如果是2.2的话稍微有些变动,我用的是2.4.7。新建一个站点的配置文件sudo vi /etc/apache2/sites-avaiavle/yoursitename.conf写入如何格式的内容,具体的比较重要的就是WSGIScriptAlias和static的路径不能写错了。我的项目路径是/home/ubuntu/GithubRecommended,请参照修改某些值。

VirtualHost *:80>
    ServerName your ip or domain.com 
    #ServerAlias otherdomain.com 
    ServerAdmin xxxxxx@qq.com

    #Alias /media/ /home/projects/dlsPro/media/
    Alias /static/ /home/ubuntu/GithubRecommended/static/
    <Directory  /home/ubuntu>
      Require all granted
    </Directory>

    <Directory  /home/ubuntu/GithubRecommended/static>
      Require all granted
    </Directory>
    <Directory  /home/ubuntu/GithubRecommended>
      Require all granted
    </Directory>
    WSGIScriptAlias / /home/ubuntu/GithubRecommended/Web/wsgi.py
    <Directory /home/ubuntu/GithubRecommended/Web>
    <Files wsgi.py>
      Require all granted
    </Files>
    </Directory>
</VirtualHost>

  3) 修改项目下的文件wsgi.py,vi /home/ubuntu/GithubRecommended/Web/wsgi.py,添加一些内容,关联Apache和django项目,最后文件内容如下:

import os

from django.core.wsgi import get_wsgi_application

from os.path import join,dirname,abspath

PROJECT_DIR = dirname(dirname(abspath(__file__)))
import sys
sys.path.insert(0,PROJECT_DIR)

os.environ["DJANGO_SETTINGS_MODULE"] = "Web.settings"#我的设置在Web文件夹下,请自行修改,其他的基本不需要改,如果有多个django项目的设置均添加在此处

application = get_wsgi_application()

  保存文件,开启新网站sudo a2ensite yoursitename.conf重启Apache服务

sudo service apache2 reload
sudo service apache2 restart

  打开ip地址或者网站即可。   4) 对于settings中的debug要不要关闭看个人喜好了,但是关闭之后对于django项目的静态文件等需要Apache来托管包括缓存更新的问题都是需要考虑的,由于我这边一直在开发所以就没有关闭debug,那么静态文件的配置就不要那么复杂,如果遇到403或者找不到静态文件的错误,请仔细检查上面的路径是否正确,是否给予你需要访问文件的权限。 #####当然了,如果你使用我的网站项目,你会遇到一些问题,比如在搜索框输入ch710798472这个用户会提示缺少配置文件config.cfg,或者提示你某些json找不到,不要慌,只需要在RecGithub下创建一个文件config.cfg写入如下内容即可。然后修改chpython.py中每个函数中的json文件的路径成绝对地址(当然你也可以配置静态文件也行,我这里就偷个懒,留给你们自己配置)。 config.cfg文件内容:

[info]
user:你的github账号名
passwd:密码

当然了还有个文件目录的写权限需要修改:

cd /static/bootstraps
sudo chgrp -R www-data data
sudo chmod -R g+w data

重启Apache服务即可。

3. 总结

  如果说仅仅是个演示平台或者自用的平台无需购买域名,因为现在的域名备案很麻烦,还不如直接ip地址使用来的实在省钱,当然你在生产环境中会遇到各种问题,你需要查看/var/log/apache2下的log文件排除错误,或者通过django的debug信息。

万事开头难,只怕有心人