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

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

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

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

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


CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)_第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
CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)_第2张图片
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其实一直都是正常的 , 只是需要配置一下文件)


CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)_第3张图片
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"输出,若没有输出,请检查你的安装过程。


CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)_第4张图片
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,并保存退出


CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)_第5张图片
3.jpg

执行命令启动nginx服务

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

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


CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)_第6张图片
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

主要修改如图所示


CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)_第7张图片
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]退出后仍能访问则为成功


CentOS + Python3 + Django + Nginx + uwsgi服务器安装配置(可能是东半球最菜鸟但最新最全最容易看懂的了)_第8张图片
正常运行截图.jpg

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

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

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

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

end

(。・`ω´・)

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