1 安装python 3.6

ubuntu预装了2.7,不需要卸载预装库,直接安装python3.6(其实现在的阿里云18.04会给你自动装python2.7.15和3.6.8)

你可以分别查看一下python 2.7和python 3.6确认系统是否装了这两个环境

因为程序运行环境需要,一般会修改系统默认的运行环境

python --version 查询python版本 会出现2.7.15而不是3.6.8

如果有python3.6则进行如下操作【如果没有python3.6那你需要自己下载一个喽,因为python版本会更新所以下载流程自己百度,注意系统版本不同操作是不同的,这个是ubuntu的一个大坑】

查看系统Python的可用环境列表

update-alternatives --list python

此处如果显示update-alternatives: error: no alternatives for python

则输入(这里的版本号根据自己安装的设定)

update-alternatives --install /usr/bin/python python /usr/bin/python3.6 8

再次查看 python和python --version则变成了python3.6.8

2 pip的安装

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

一般下载新版本的python库包都会自带下载pip,但是aliyun ubuntu自装python2/3却没有装pip

查看pip和pip版本:pip                                    pip --version

显示如下:

但是ubuntu可以直接下载pip  而不需要原始linxu的下载安装包什么的复杂操作

下载pip:sudo apt-get install python-pip

结果再次查询pip还是上面的显示,我觉得可能是pip的配置出了问题

我输入pip3 提示了操作

apt install python3-pip

再次输入pip还是原来的提示,但是输入pip3 则成功了

可以再尝试一下pip2【支持多环境下的切换,目前没有涉及到所以暂时不提,后边再学吧】

3 mysql的安装

输入:dpkg -l | grep mysql     检查一下是否安装了Msql

(也可以简单的直接输入mysql进行检验)

安装:apt install mysql-server

检验安装是否成功:netstat -tap | grep mysql

LISTEN 表明安装成功

【首先声明,我到现在并没有怎么接触过MYsql,只是自学了sqlserver2014、sql初学者指南,以及课程上面讲的sql原理教程】

登录mysql数据库可以通过如下命令:

mysql -u root -p

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,现在是mysql数据库是没有密码的,Enter password:处直接回车,就能够进入mysql数据库。

查看当前所有数据库:show databases;

查看用户:select user,host from mysql.user;

暂时先不进行下面的安全操作:

检查mysql服务状态:systemctl status mysql

显示如下结果说明mysql服务运行是正常的:

配置nginx

(1) 安装uginx:

sudo apt update

sudo apt install nginx

查看uginx状态:

sudo systemctl status nginx

查看版本:

sudo nginx -v

配置防火墙:

sudo ufw allow 'Nginx Full'

验证:

sudo ufw status

出现inactive——说明应该是配置失败——打开图形界面浏览器验证localhost

成功

5 配置uwsgi 启动uwsgi

先检查 服务器中是否存在uwsgi

输入uwsgi,发现服务器并没有安装

先安装依赖包

apt-get install build-essential python-dev

发现依赖包已经存在且为最新版本

通过pip3 安装

Pip3 install uwsgi

6 好的基础环境都已经搭建完毕了,现在开始先将本地的源代码上传到阿里云服务器

在windows本地下载xshall 并连接ubuntu服务器

改settings数据库配置文件

rz命令传输文件,发现rz不可执行

服务器端安装 lrzsz    sudo apt install lrzsz

上传文件rz

下载文件sz

然后解压文件

安装django   pip3 install django

提示错误,

启动django项目 python manage.py migrate

报错:

更新 pip工具:

Pip3 install --upgrade setuptools

Python -m pip install --upgrade pip

安装mysql相关

Pip3 install mysqlclient

报错

pip install mysqlclient

pip install xlrd

再次启动  python manage.py migrate

报错

应该是mysql的错误,但是找不出怎么改,所以决定重装mysql

卸载mysql

先查看 mysql 的依赖项

dpkg --list|grep mysql

卸载:sudo apt-get remove mysql-common

sudo apt-get autoremove --purge mysql-server-5.7

清除残留数据:dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P

继续删除依赖项:sudo apt-get autoremove --purge mysql-apt-config

继续新建了mysql里面的lajifenshao数据库

重新修改 setting.py文件

替换文件再次运行:

报错

百度告诉我:

Sudo pip uninstall MySQL-python

结果计算机告诉我,没有装这个东西

所以下载一个

Apt-get install libmysqlclient-dev

再:

Pip install MySQL-python

时报错

所以试着更新一下pip和setuptools

Pip install --upgrade setuptools

Python -m pip install --upgrade pip

结果又是失败

所以更换另外一种方式

Sudo apt install python3-pip

Sudo pip3 install pymysql

Import pymysql

再次启动

报错

Pip install jieba

再次运行项目 python manage.py migrate

然后发现还有其他包没装

你就一个一个装吧,,最后

好的成功了

python manage. py runserver运行一下

ok并在浏览器(服务器端)输入指定网址能够看到django项目运行成功

7来吧配置uwsginginx

新建一个test测试文件夹,创建测试文件

运行测试文件

Uwsgi --http-socket:8088 wsgi-file exam.py

报错:

百度

Uwsgi --http-socket:8001 --plugin python --wsgi-file exam.py

仍然报错

去查看uwsgi位置

Whereis uwsgi

初步判断可能是 uwsgi-plugin-common未安装

安装

因为没有装yum,先装

Apt install yum

Yum install uwsgi-plugin-common

报错:

yum默认python2,我们python3所以修改配置

修改 yum第一行为python2

Vim usr/bin/yum

因为权限所以 sudo chmod a+w yum

然后在图形界面进行修改

再次执行

报错

apt-get install uwsgi-plugin-common

仍然报错

然后一堆报错

Sudo apt-get update

Apt-get install uwsgi-plugin-python

再次执行

Uwsgi --http: 8001 --wsgi-file exam.py

报错

Uwsgi --http-socket:8001 --wsgi-file exam.py

报错

Uwsgi --http-socket :8001 --plugin python --wsgi-file exam.py

报错return

检查发现第二行少一个括号,补上

再次敲:uwsgi --http :8001 --wsgi-file exam.py

然后蹦出了超级多东西,但是没有提示错误,只是有一些小警告,

在图形界面浏览器,输入配置的127.0.0.1:8001/

成功显示return 内容

所以uwsgi配置成功了!!!

Ctrl+C退出该服务

然后进行下一步,在lajifenshao目录里面新建配置的web.ini文件

Uwsgi web.ini

然后web.ini的文件是有坑的,所以你要注意怎么配置

这个坑主要是在这里

好多次尝试失败,是因为chdir:路径不对,为什么不对呢?因为网上都是/home我也很蒙蔽为甚么是home,之后想明白了,因为lajifenshao在root下,所以我的是root

再操作

下一步对nginx进行操作

在安装好nginx的前提下,即能在浏览器打开那个welcome to nginx

修改 /etc/nginx中的nginx.conf文件中的server具体内容去看百度

补充一个vi操作

Vi 文件名

A

修改

改完

Esc

:wq!

Enter

这里需要进行一步检验

Nginx -t 检验通过就OK

然后 service nginx restart

没有报错就是成功!

之前多次不通过,居然是因为80; 后面多了一个空格

然后python manage.py runserver 0.0.0.0:8001

结果还是只能载本地浏览,不能再其他电脑浏览

而且存在port被占用的报错

首先杀掉进程

找进程号

ps aux|grep -i manage

kill -9 进程号

然后发现自己安全组没有配置好

所以又去配置了一下安全组

最后成功了!

我把这个进程挂在第五个页面里面了,并进行监控

然后进行域名解析

然后回到控制台——域名——选择指定域名——解析——新手引导——网站解析——输入外网IP——自动解析有www和无www——成功!

Ubuntu Nginx Uwsgi Python布置服务器Django项目的更多相关文章

  1. Nginx+uWSGI或fastcgi部署Django项目

    nginx+uWSGI ubuntu下先安装下C编译器和Python环境: sudo apt-get install build-essential python-dev 使用pip安装uWSGI: ...

  2. ubuntu+nginx+uwsgi部署django web项目

    前言 将本地开发的django项目部署至linux上的uwsgi服务器,并配置nginx,完成基于ubuntu+nginx+uwsgi的上线运行.下面整理相关步骤. 服务器配置virtualenv 如 ...

  3. [技术博客]ubuntu+nginx+uwsgi+Django+https的部署

    ubuntu+nginx+uwsgi+Django+https部署文档 配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版 ...

  4. Ubuntu Nginx uwsgi django 初试

    /************************************************************************************** * Ubuntu Ngi ...

  5. Centos+nginx+uwsgi+Python多站点环境搭建

    前言 新公司的第一个项目,服务器端打算用python作为restful api.所以需要在Centos上搭建nginx+fastcgi+python的开发环境,但后面网上很多言论都说uwsgi比fas ...

  6. Centos下搭建 nginx+uwsgi+python

    python做web应用最麻烦的还是配置服务器了,此话不假,光中间件就有好几种选择,fastcgi.wsgi.uwsgi,难 免让人眼花缭乱. 而听说uwsgi的效率是fastcgi和wsgi的10倍 ...

  7. Ubuntu django+nginx 搭建python web服务器文件日志

    uwsgi 配置文件 [uwsgi] http-socket = 127.0.0.1:8080 # 项目目录 chdir=/home/ubuntu/mkweb # 指定项目的application m ...

  8. ubuntu NGINX uwsgi https 部署Django 遇到的问题

    搞了3天终于把Django成功部署到Ubuntu,记录一下: 引用来自泡泡茶壶: Ubuntu下的Nginx + Uwsgi + Django项目部署详细流程 前提说明: Django作为小程序的后端 ...

  9. Python基础 - Ubuntu+Nginx+uwsgi+supervisor部署Flask应用

    网上找了许多讲关于Flask应用部署的文章几乎都是一个helloworld的Demo,按照helloworld来部署都没问题,但实际项目部署时还是遇到了不少问题.在这里简单写下自己成功部署的过程,防止 ...

随机推荐

  1. delphi 中如何从数据库中读取数据自生成TreeView,只有两个字段,数据库结构如下。急急!!

    我的数据库结构如下:UnitId      UnitName01          中国 (根节点)0101        河北省(二级树)010101      河北省沧州市(三级树)0101010 ...

  2. iOS 11适配

    1.http://www.cocoachina.com/ios/20170915/20580.html   简书App适配iOS 11   2.http://www.jianshu.com/p/efb ...

  3. mysql一条语句实现插入或更新的操作

    ,),(,) ON DUPLICATE KEY UPDATE c=VALUES(c); 或者 INSERT INTO table (id,a,b,c) select id,a,b,c from xxx ...

  4. 使用STM32F103ZET霸道主板实现SD卡的读写(非文件系统)

    了解STM32F103ZET是高容量多管脚的芯片 了解SD读写线路图 了解SD的基地址 阅读STM32F10xx英文参考 SDIO那章,我们编写代码边看文档解析 建工程,打开包含所有包括外设库函数的样 ...

  5. DDE 的知识和使用

    在github上下载.net 版本的NDde 开发包 或者在此处下载开发包 MSDN 地址 创建服务器 class BasicDDE:DdeServer { public BasicDDE(strin ...

  6. 【记录】编译安装 YAML 扩展

    转自:https://learnku.com/articles/30985 Yaml,专门用来写配置文件的语言   依赖安装 $ sudo apt-get install libyaml-dev   ...

  7. navicat破解版的下载与激活

    原文链接:http://www.cnblogs.com/djwhome/p/9289295.html 以前一直使用的老版的破解版的navicat,但是最近老是报错 而且连接还特别慢,今天终于不忙了额, ...

  8. [转帖]POWER ISA开源 浪潮商用机器加速POWER技术生态建设步伐

    POWER ISA开源 浪潮商用机器加速POWER技术生态建设步伐 [原创]   2019-08-26 18:51:04 关键字: 开源 Power 浪潮商用机器 http://server.zhid ...

  9. SQLite进阶-13.Autoincrement关键字

    目录 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增.我们可以在创建表时在特定的列名称上使用 AUTOINCREMENT 关键字实现该字段值的自动增加. 关键字 AUTOINCRE ...

  10. Pebbles HDU 2167

    Pebbles HDU 2167 大意:给定一个N*N的方格,让你在里面取出一些数使其和最大,要求每一个数不能与其相邻的8个数同时取出. 思路:和炮兵阵地那一题有点像,但我们只需要考虑上一行的情况,这 ...