腾讯云+Apache+Ubuntu Server16.04 部署Django
2018-03-25 11:23
127 查看
最近在学习Python Web中的Django框架,自己跟着官方文档写了小的demo。在编写完代码后,想把它部署在腾讯云上,一开始没有什么想法,后来也看了别人的部署的过程,但还是遇到了很多坑,这里把我自己部署的过程记录下来,已做以后查看,同时也分享给大家。
首先声明下我的部署环境:腾讯云+Apache 2.4.18+python3.5+Django2.0+Ubuntu Server 16.04 LTSStep 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_wsgiapt-get install 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
Tip:我这里用的是sqlite3数据库,还需要给它写的权限,如果没有给它写权限,在启动服务器后,会看到服务器返回500的状态码。
Step 7: 加载新网站,测试
Tip:在项目里如果在settings.py文件中将Debug设置为False,那么你需要将自己的IP地址或者域名添加自己的ALLOWED_HOSTS中,如果你的项目遇到错误,可以将Debug设置为True,通过查看TraceStack来检查错误。
首先声明下我的部署环境:腾讯云+Apache 2.4.18+python3.5+Django2.0+Ubuntu Server 16.04 LTSStep 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_wsgiapt-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来检查错误。
相关文章推荐
- 在linux(Ubuntu16.04)上部署使用django的debug模式,部署服务器,供局域网其他电脑访问
- Ubuntu16.04 部署Django1.10 apache2.4 mod_wsgi
- Ubuntu16.04 wsgi Django1.10部署问题
- Ubuntu16.04 apache2 wsgi 部署django
- Ubuntu16.04下将Django框架部署到服务器80和443端口
- 阿里云Ubuntu 16.04部署Python Django REST framework
- ubuntu16.04使用nginx、uwsgi部署django应用
- centos下django1.9部署
- web 框架 Django 学习记录(一)安装部署
- 1 外网部署django
- 部署Django -- apache + Django
- 在阿里云ECS上部署 Django+MySQL+uWSGI+Nginx 项目的基本流程
- 在linux apache 上部署 django 网站
- nginx+uwsgi 部署django
- 从零开始在 Ubuntu 下部署 Nginx uWSGI Django 服务器
- docker django部署
- Ubuntu16.04手动部署Kubernetes(1)——Master和Node部署
- Django 部署一个简单的用户后台
- 记录django + nginx + uwsgi部署的两种方法
- 在部署django时踩的坑 uwsgi + nginx 部署django应用