Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
2017-12-08 08:33
1161 查看
前不久为了部署Django项目,在百度上到处找教程,找到的教程因为这样那样的原因,总是失败,可能是因为作者水平比较高吧,有些细节的东西估计没写出来,造成我这种初学者想照着做都做不成。百度不行就用Google吧,中文不行就找英文的,最后,给我误打误撞的部署成功了。为了加深印象,我用虚拟机再重新部署一次。
我使用的系统是Ubuntu14.04.5 LTS(Trusty Tahr) server i386版,官网下载地址:http://releases.ubuntu.com/14.04.4/ubuntu-14.04.5-server-i386.iso
安装的时候全部选择英文,记得以前选择中文的时候安装时出了问题,服务器组件一个不选,Ubuntu安装做的很贴心,基本上是一路回车,就不详细说明了。
装好以后,首先要更新apt-get,貌似我的ubuntu镜像是在国内站下载的,所以源是国内的地址,所以就不用更换源了。
1. 更新apt-get
2. 安装SSH
装好以后,用ifconfig查看一下IP地址
可以看到IP地址是192.168.0.154,下面我们就使用XSHELL连接192.168.0.154进行操作了。
3. 安装Git
这一步不是必须的,因为我的测试项目是放在git.oschina.com上的,安装git获取项目代码就很方便了
安装过程中会提示让你设置root密码
2. 配置
2.1 数据库初始化:
2.2 运行数据库Mysql安全配置向导
输入root密码
是否修改root密码,因为前面已经设置过了,选n
是否移除匿名用户,肯定是要选y的
是否允许远程登陆,如果选n的话,只能在本机访问数据库,建议选y
是否移除test数据库,建议选是
重新加载权限表,选y
All done!
1.安装python-dev包
2.安装pip
3.更换pip源
因为国内使用默认的pip源速度很慢,所以需要更换,在用户根目录下新建.pip目录,在该目录下新建pip.conf文件
然后在文件里写上:
4.安装配置VirtualEnv和VirtualEnvWrapper
VirtualEnv可以管理多个开发环境,VirtualEnvWrapper使得VirtualEnv变得更好用
安装完成以后,需要在环境变量中加入一些配置:
下面这句话是使用python3才需要执行的,python2不需要
不管python是什么版本,都要执行下面两句:
可以重启系统激活,也可以运行:
然后就可以开始建立一个虚拟环境:
你会发现,提示符变成(first)user@hostname:~$,表示现在已经进入first的虚拟环境,在此环境下进行的pip等操作,只会在当前环境下生效,当前虚拟环境在/home/siva/Env/first目录下
2.下载或拷贝项目
安装完成以后,使用git把项目clone下来,此处填写你自己的地址:
此例子的项目名称是Siva_First,路径是在/home/siva/下3.配置django用Mysql建好项目的数据库,然后进入Siva_First目录,用django应用数据模型:
建立后台超级用户:
静态文件安置:
4.测试项目
运行开发服务器测试一下是否可以正常运行:
这时,用浏览器打开http://192.168.0.154:8000/可以看到网站 厦门叉车租赁公司5.退出虚拟环境因为当前是在first虚拟环境下,为了下一步的安装,必须退出当前的虚拟环境:
1.安装uWSGI
pip下安装很简单:
我们可以测试一下uwsgi是否安装成功
上面的命令是使用8000端口,虚拟环境在/home/siva/Env/first,项目在/home/siva/Siva_First下
2.配置uWSGI
使用上面的命令行来部署网站肯定是不行的,我们需要使用“Emperor mode”,建立一个目录来放配置文件:
以项目名称来命名这个配置文件:
内容如下:
project是项目名称,base是项目所在位置现在,配置文件建好了,但是uwsgi还不能自动运行我们需要在/etc/init目录中建一个启动脚本:
内容如下:
这一步完成以后,uwsgi还是不能正常启动,是因为www-data用户组还没有创建,等我们装完nginx以后就可以了。
2.创建配置文件
内容如下:
然后把这个配置文件链接到sites-enabled目录下
检查一下配置文件的语法是否有问题
如果没问题,那么重启一下nginx和uwsgi的服务就可以访问了
准备工作
我使用的系统是Ubuntu14.04.5 LTS(Trusty Tahr) server i386版,官网下载地址:http://releases.ubuntu.com/14.04.4/ubuntu-14.04.5-server-i386.iso安装的时候全部选择英文,记得以前选择中文的时候安装时出了问题,服务器组件一个不选,Ubuntu安装做的很贴心,基本上是一路回车,就不详细说明了。
装好以后,首先要更新apt-get,貌似我的ubuntu镜像是在国内站下载的,所以源是国内的地址,所以就不用更换源了。
1. 更新apt-get
12 | sudo apt-get updatesudo apt-get upgrade |
1 | sudo apt-get install ssh |
可以看到IP地址是192.168.0.154,下面我们就使用XSHELL连接192.168.0.154进行操作了。
3. 安装Git
这一步不是必须的,因为我的测试项目是放在git.oschina.com上的,安装git获取项目代码就很方便了
1 | sudo apt-get install git |
安装配置MySQL
1. 安装1 | sudo apt-get install mysql-server |
2. 配置
2.1 数据库初始化:
1 | sudo mysql_install_db |
1 2 | sudo mysql_secure_installation |
是否修改root密码,因为前面已经设置过了,选n
是否移除匿名用户,肯定是要选y的
是否允许远程登陆,如果选n的话,只能在本机访问数据库,建议选y
是否移除test数据库,建议选是
重新加载权限表,选y
All done!
安装配置Python环境
1.安装python-dev包1 | sudo apt-get install python-dev |
1 | sudo apt-get install python-pip |
因为国内使用默认的pip源速度很慢,所以需要更换,在用户根目录下新建.pip目录,在该目录下新建pip.conf文件
12 | sudo mkdir ~/.pipsudo vi ~/.pip/pip.conf |
1 2 3 4 5 6 | [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com |
VirtualEnv可以管理多个开发环境,VirtualEnvWrapper使得VirtualEnv变得更好用
12 | sudo pip install virtualenv virtualenvwrapper |
下面这句话是使用python3才需要执行的,python2不需要
1 2 | echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc |
123 | echo "export WORKON_HOME=~/Env" >> ~/.bashrcecho "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc |
1 2 | source ~/.bashrc |
12 | mkvirtualenv first |
Django项目配置
1.安装django我使用选择版本来安装:1 2 | pip install django==1.10.1 |
安装完成以后,使用git把项目clone下来,此处填写你自己的地址:
1 | git clone https://git.oschina.net/xxx/Siva_First.git |
1 2 3 | python manage.py makemigrations python manage.py migrate |
123 | python manage.py createsuperuser |
1 2 | python manage.py collectstatic |
运行开发服务器测试一下是否可以正常运行:
12 | python manage.py runserver 0.0.0.0:8000 |
1 2 | deactivate |
uWSGI安装和配置
1.安装uWSGIpip下安装很简单:
1 | sudo pip install uwsgi |
1 | uwsgi --http :8000 --home /home/siva/Env/first --chdir /home/siva/Siva_First -w Siva_First.wsgi |
2.配置uWSGI
使用上面的命令行来部署网站肯定是不行的,我们需要使用“Emperor mode”,建立一个目录来放配置文件:
123 | sudo mkdir -p /etc/uwsgi/sitescd /etc/uwsgi/sites |
1 2 | sudo vi Siva_First.ini |
123456789101112131415 | [uwsgi]project = Siva_Firstbase = /home/siva chdir = %(base)/%(project)home = %(base)/Env/%(project)module = %(project).wsgi:application master = trueprocesses = 5 socket = %(base)/%(project)/%(project).sockchmod-socket = 664vacuum = true |
1 2 3 | sudo vi /etc/init/uwsgi.conf |
12345678910 | description "uWSGI application server in Emperor mode" start on runlevel [2345]stop on runlevel [!2345] setuid sivasetgid www-data exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites |
反向代理:Nginx的安装和配置
1.安装1 2 | sudo apt-get install nginx |
12 | sudo vi /etc/nginx/sites-available/Siva_First |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | server { listen 80; server_name 192.168.0.154; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/siva/Siva_First; } location / { include uwsgi_params; uwsgi_pass unix:/home/siva/Siva_First/Siva_First.sock; } } |
12 | sudo ln -s /etc/nginx/sites-available/Siva_First /etc/nginx/sites-enabled/ |
1 2 | sudo service nginx configtest |
1 2 3 | sudo service nginx restart sudo service uwsgi restart |
相关文章推荐
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
- Nginx+uWSGI+Django+Python+ MySQL 搭建可靠的Python Web服务器
- CentOS + Python3.6+ Django2.0 + uwsgi + nginx + mysql web发布环境搭建
- Nginx+uWSGI+DJango+Python+ Mysql 搭建可靠的python web服务
- CentOS + Python3.3 + Django1.7 + uwsgi + nginx + mysql web发布环境搭建
- 搭建python的web环境 Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器环境
- Nginx+uWsgi+Django+Python+MongoDB+mySQL服务器搭建
- 阿里云服务器(Ubuntu 12.04 64位)搭建 Nginx、MySQL、PHP Web服务器 (一)
- 阿里云服务器(Ubuntu 12.04 64位)搭建 Nginx、MySQL、PHP Web服务器 (一)
- 阿里云服务器(Ubuntu 12.04 64位)搭建 Nginx、MySQL、PHP Web服务器 (二)
- Ubuntu的web服务器搭建系列之Redis(JDK+Tomcat+MySQL+Nginx+Red
- Ubuntu的web服务器搭建系列之MySQL(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Ubuntu搭建web服务器系列之JDK(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- python3环境搭建(uWSGI+django+nginx+python+MySQL)
- Ubuntu搭建web服务器系列之Tomcat(JDK+Tomcat+MySQL+Nginx+Red
- 阿里云服务器(Ubuntu 12.04 64位)搭建 Nginx、MySQL、PHP Web服务器 (二)
- Ubuntu的web服务器搭建系列之MySQL(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Ubuntu搭建web服务器系列之Tomcat(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Ubuntu的web服务器搭建系列之Redis(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Ubuntu的web服务器搭建系列之MySQL(JDK+Tomcat+MySQL+Nginx+Red