Ubuntu服务器部署Django项目

版本信息:Ubuntu14.04  Python3.4  Django1.11  Apache2.4  MySql 14.14


首次尝试自己搭建服务器,用的是BAE。一开始安装的CentOS 7,无奈这个系统对于初学者太过复杂,很多不可预知的问题,尝试了一星期后,搭建不起来,选择放弃。然后重装了一个Ubuntu系统,由于有了前面的经验这次搭建比较顺利,两天时间服务器就跑起来了,下面记录下心路历程:


1.Ubuntu自带Python2,Python3两个版本,这对于Python开发人员来说,实在太方便了,而CentOS 7只自带Python2,需要手动安装Python3,对于新手来说,这个过程就会遇到各种各样的问题,博主遇到最崩溃的一个问题是,整个环境都快搭建好了,Python3的文件乱码了,无法访问,也就是这个问题,让我选择重装一个Ubuntu。


2.由于Ubuntu已经存在两个版本的Python,那我们如何使用呢?

输入Python,自动使用的Python2.7

输入Python3,则打开的是Python3


3.pip和django的安装问题

系统自动已经为Python2,安装了pip,如果是用Python2进行开发的小伙伴,直接使用pip install django 安装django框架即可

如果使用的Python3,则需要先为Python3安装pip。sudo apt-get install python3-pip,然后使用pip3 install django,把django框架安装到Python3。

注:可能整个过程还需要用pip安装一些包,同上面的方法选择自己使用的Python版本进行安装即可

Django安装成功后,输入Python3,然后import django,使用django.VERSION可以看到安装的django版本

Ubuntu服务器部署Django项目_第1张图片


4.MySQL的安装

sudo apt-get install mysql-server  安装mysql服务器端

sudo apt-get install libmysqlclient-dev 这条命令应该是安装的client所需要到的库,不是很确定

安装过程可能要设置数据库的账号密码,这个自行设置即可

注:网上搜索的Ubuntu安装mysql的教程,一般会直接使用sudo apt-get install mysql-client来安装客户端,但是默认安装的是适配Python2的版本,所以如果使用的是Python3,用pip3 install mysql-client来安装吧。

安装成功后使用 mysql -u root -p 命令来登录mysql:

lUbuntu服务器部署Django项目_第2张图片

输入status;可以看到mysql的版本信息


5.安装Apache服务器及mod_wsgi

mod_wsgi:Apache服务器的扩展模块,位于服务器和Python应用之间,实现了Python应用和Web服务器之间的通信。

sudo apt-get install apache2

pip3 install mod_wsgi  注:安装mod_wsgi可能需要其他一些包的支持,自行用pip安装


6.修改apache配置文件,路径/etc/apache2下的apache2.conf,使用vim对其进行编辑

新增以下内容:

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so     加载mod_wsgi模块

WSGIScriptAlias / /var/www/html/Daily/Daily/wsgi.py    Django项目中wsgi.py的路径,博主的Django项目路径位于/var/www/html/Daily

WSGIPythonPath /var/www/html/Daily   项目根目录

Alias /static/ /var/www/html/Daily/static/   项目静态文件的路径,最后一个斜杠千万不能掉,不然找不到静态文件

Require all granted


注:Apache2.2版本需要将Require all granted修改成别的,忘记是什么了,自行百度下

网上很多教程写着需要修改django项目中的wsgi.py,我并没有修改,具体原因暂时不知道,日后研究


7.修改settings.py

ALLOWED_HOST=['127.0.0.1',]  其中增加你云服务器的IP地址,127.0.0.1是本机IP

在底部增加:STATIC_ROOT = '/var/www/html/Daily/static/'   设置好后,使用python3 manage.py collectstatic  可以将应用中的静态文件收集到该路径下

STATIC_URL = '/static/'  具体app下的static目录

至此,大功告成,访问云服务器的IP即可看到你的网页。Django项目一般丢到/var/www/html中,你放到别的位置也可以,那么需要修改配置信息







你可能感兴趣的:(Python,Linux,django,ubuntu,apache,mysql)