CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)

1 , 首先 , 你得先去买个服务器 . (记得选CentOS系统的)

2 , 然后下载一个叫Putty的连接软件 . (百度"putty"就有得下载)

3 , 打开Putty , 输入你服务器的公网ip , 然后点击"Open"

4 , 打开之后 , 输入用户名和密码登录连接 . [如图1]


1.jpg

5 , 安装基础开发包 . 依次输入以下命令,遇到选择(y/d/n)时,按y回车继续

yum groupinstall "Development tools"  
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

6 , 安装最新版本Python3(此时最新是Python3.6.4 , 可去官网自行查询https://www.python.org/downloads/) , 依次输入以下命令 , 务必将版本号改为自己想安装的 . 当然你也可以跟我安装同一版本 .
(1) 下载

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

(2) 解压

tar xf Python-3.6.4.tgz

(3) 进入解压后的文件夹

cd Python-3.6.4

(4) 配置

./configure

(5) 编译并安装

make && make install

(6) 输入以下命令 , 显示版本号即为安装成功(如图2) , 并且看红色框 , 此版本是连同pip和setuptool一起安装的(嘻嘻)

python3 -V
2.jpg

7 , 使用pip安装Django
(1) 安装

pip3 install django

(2) 检测一下是否安装正常

django-admin.py startproject demosite
cd demosite
python3 manage.py runserver 0.0.0.0:8002

这个时候你用电脑打开浏览器 , 输入"http://你的服务器ip:8002"你会发现 , 啊哈 , 报错啦 ! ! ! !

错误代码 : You may need to add 'xxx.xxx.xxx.xx' to ALLOWED_HOSTS.

很多教程都是直接告诉你输入上面的命令去检查是否正常 , 而没有告诉你应对报错的解决方案(或者说很多教程都不齐全) .

(3) 解决报错问题
进入demosite/demosite文件夹

cd demosite

修改settings.py文件

vim settings.py

找到ALLOWED_HOSTS = [ ] 这一行 , 然后修改为(按一下INS键[退格键右手边那个]可以进入编辑模式) :

ALLOWED_HOSTS = ['127.0.0.1','xxx.xxx.xxx.xx','localhost']

"xxx.xxx.xxx.xx"为你的服务器ip
修改完之后 , 按一下ESC键退出编辑模式 , 然后输入下面命令保存并退出

:wq

解决完问题 , 返回上一层目录

cd ..

重新运行

python3 manage.py runserver 0.0.0.0:8002

呀 ! ! ! 正常了 ! ! ! (QAQ其实Django其实一直都是正常的 , 只是需要配置一下文件)


Django正常运行截图.jpg

(退出运行按CTRL + C就可以了)

8 , 使用pip安装 uwsgi
(1) 先回到根目录

cd

(2) 安装

pip3 install uwsgi

(3) 测试 uwsgi 是否正常
新建并打开一个test.py文件

vim test.py

输入内容如下 , 然后保存并退出(忘记某些命令的请查看上面)

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return b"Hello World"

很多教程最后的return会少一个'b' , 导致一直测试都报错...我踩了好几次坑...(╯‵□′)╯︵┴─┴

然后在终端继续运行

uwsgi --http :8001 --wsgi-file test.py

在浏览器内输入:http://你的服务器ip:8001,查看是否有"Hello World"输出,若没有输出,请检查你的安装过程。


uwsgi正常运行截图.jpg

9 , 安装Nginx(此时最新版为1.13.7)
(1) 依次为下载 , 解压 , 配置 , 安装

wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar xf nginx-1.13.7.tar.gz
cd nginx-1.13.7
./configure --prefix=/usr/local/nginx-1.13.7 --with-http_stub_status_module --with-http_gzip_static_module
make && make install

(2) 测试Nginx安装是否正确
由于80端口较容易被别的程序占用,需执行如下命令来修改nginx配置文件中的端口号

vim /usr/local/nginx-1.13.7/conf/nginx.conf

如下图所示将listen对应的80改成8088,并保存退出


3.jpg

执行命令启动nginx服务

/usr/local/nginx-1.13.7/sbin/nginx

在浏览器内输入:http://你的服务器ip:8088,出现如下界面则为安装正确


Ngnix正常运行截图.jpg

10 , 至此 , 所有需要的程序和扩展都已经安装完了 . 现在将nginx与uwsgi以及django结合使用
(1) 在刚刚demosite项目目录下创建demosite_uwsgi.ini文件

vim Python-3.6.4/demosite/demosite_uwsgi.ini

文件内容如下:

# demosite_uwsgi.ini file
[uwsgi]

# Django-related settings

http = :8008

# the base directory (full path)
chdir           = /root/Python-3.6.4/demosite

# Django s wsgi file
module          = demosite.wsgi

# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 4

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

(2) 修改nginx.conf文件

vim /usr/local/nginx-1.13.7/conf/nginx.conf

主要修改如图所示


4.jpg
include uwsgi_params; 
uwsgi_pass 127.0.0.1:8008;(端口要与ini中的端口一致)

保存并退出

(3) 最后执行如下命令来启动

uwsgi --ini /root/Python-3.6.4/demosite/demosite_uwsgi.ini & /usr/local/nginx-1.13.7/sbin/nginx

在浏览器内输入:http://你的服务器ip:8008,出现如下界面并[CTRL + C]退出后仍能访问则为成功


正常运行截图.jpg

11 , 结语
(1) 本人主业为Android , 是个刚学习Python的菜鸟 , 也刚接触服务器 , 如有写得不妥之处 , 务必严厉指出 .

(2) 因为这几天装这个环境踩了太多坑 , 发现很多教程有的不全 , 有的出错 (出错原因或许是版本问题吧) , 因此决定自己写一个简单易懂的教程 .

(3) 更多的扩展请自行百度Google

(4) Python是个很强大的工具 , 刚刚入门 , 希望以后能越学越好

end

(。・`ω´・)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容