python 云服务器 搭建网站(flask+uwsgi+nginx)

2 篇文章 0 订阅
1 篇文章 0 订阅


其实我站点已经搭建完毕了,比较懒就忘了写Nginx的后续了。我是属于先买服务器在写网页的那种,请勿模仿。
注意:一定要再阿里云(腾讯云)里面设置安全配置,开放端口号(本文涉及端口号有8888和80和5656)

配置阿里云安全端口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

python3.6的安装

下面是在ubuntu16.04下安装python3.6环境
正常安装报错

E: Unable to locate package python3.6-dev
E: Couldn't find any package by glob 'python3.6-dev'
E: Couldn't find any package by regex 'python3.6-dev'

安装python3.6

apt-get install python-software-properties
apt-get install software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt-get update
apt-get install python3.6

python优先级的更换

ubuntu16.04默认命令python,python2为python2.7,python3为python3.5,修改环境使python对应为python3.6

查看对应python版本

python -V

通过update-alternatives来设置默认python版本, 最后的参数1,2是优先级,数字越大优先级越高,比如经过如下设置后,在终端输入python,显示的就是3.6的版本了

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

验证版本

python -V

优先级更换后

命令												对应版本
python 											python3.6
python2	 or	 python2.7							python2.7
python3.5                                    	python3.5
python3.6										python3.6

pip优先级更换pip

ubuntu16.04默认命令pip,pip2为python2.7,pip3为pip3.5,修改环境使pip对应为pip3.6

查看对应python版本

pip -V

为python(python3.6)安装pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
hash -r

python Uwsgi 虚拟环境安装

安装virtualenv

pip install virtualenv

安装Uwsgi
安装报错

Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, s

报错原因:是由于pip环境为3.6而使用了apt-get install python-dev命令,默认安装的为python2.7-dev,所以要特殊声明。

安装命令

apt-get install python3.6-dev
pip install uwsgi

Nginx

因为我正常安装Nginx, 出现了各种奇怪的问题, 无法解决, 决定另辟蹊径, 安装宝塔。

安装宝塔面板

Ubuntu16.04 执行以下代码进行安装宝塔面板

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

在这里插入图片描述
复制对应的命令在putty中执行,然后再输入y即可。(等待安装完成)
在这里插入图片描述
注意!安装成功的时候账号密码一定要保存下来。(可以复制写在记事本)不过忘了也没多大事,输入以下命令就可以会弹出安全连接,账号和密码了
注意:一定要再阿里云(腾讯云)里面设置安全配置,开放端口号(本文涉及端口号有8888和80和5656)

/etc/init.d/bt default

复制账号上面的:http://xxx.xxx.xxx.xxx:8888/(这个就是你的IP地址:8888端口)
在浏览器的网址输入,登录到宝塔面板的后台。
在这里插入图片描述

解决方案一: 浏览器输入网址处输入安装成功时候的入口地址:IP:8888/安全入口名称(例如我的:http://106.54.43.214:8888/142f9866/)(/14f9866/就是安全入口地址,在安装完成的时候会有这个网址。复制就可以在浏览器登录)

解决方案二:执行下面命令即可(最好不要)。

rm -f /www/server/panel/data/admin_path.pl

在这里插入图片描述
6.刷新浏览器页面即可。(IP:8888)(看到该界面就是成功进入宝塔登录界面)

在这里插入图片描述
进入后安装Nginx环境(可以选择全安,一定要编译安装)
在这里插入图片描述
使用域名添加站点(我开始恶搞以下用的是www.baidu.com,答案很直观,这个域名不是你的没有解析,所以你用不了,然后换成了自己的),再把公网IP加端口号配置进去(你也可以选择直接加公网IP端口号)我的配置的端口号是5656。
在这里插入图片描述
安装好了就可以搭建web环境了

搭建web环境

  • 创建虚拟环境
  • 安装flask
  • 安装和配置uwsgi
  • 配置nginx
cd /www/wwwroot/
pip install --upgrade virtualenv
mkdir test
cd test
virtualenv -p python3 .env

进入虚拟环境安装flask
source .env/bin/activate
pip install flask
deactivate  
  • 写一个简单的测试程序
vi test.py

内容

from flask import Flask

app = Flask(__name__)

@app.route("/helloWorld")
def helloWorld():
    return "Hello World"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8787, debug=True)

创建uwsgi.ini配置文件

vi uwsgi.ini

内容

[uwsgi]
chdir=/www/wwwroot/test # 工程目录
home=/www/wwwroot/test/.env # 虚拟环境目录
module=test  # 启动flask应用的文件名,不用加.py
callable=app # 应用名,与我们hell
master=true
processes=2 # worker的进程个数
chmod-socket=666
logfile-chmod=644
procname-prefix-spaced=test # uwsgi的进程名称前缀,启动后可通过ps -ef | grep test查找到这个进程
py-autoreload=1 #py文件修改,自动加载,也就是设置热启动了
#http=0.0.0.0:8080 #监听端口,测试时使用

vacuum=true # 退出uwsgi是否清理中间文件,包含pid、sock和status文件
socket=%(chdir)/uwsgi/uwsgi.sock # socket文件,配置nginx时候使用
stats=%(chdir)/uwsgi/uwsgi.status # status文件,可以查看uwsgi的运行状态
pidfile=%(chdir)/uwsgi/uwsgi.pid # pid文件,通过该文件可以控制uwsgi的重启和停止
daemonize=%(chdir)/uwsgi/uwsgi.log # 设置后台模式,然后将日志输出到uwsgi.log。当调试时,可先注释掉此内容

注意: uwsgi.ini文件中一定不能有中文, 包括注释.

[uwsgi]
chdir=/www/wwwroot/test
home=/www/wwwroot/test/.env
module=test
callable=app
master=true
processes=2
chmod-socket=666
logfile-chmod=644
procname-prefix-spaced=test
py-autoreload=1
#http=0.0.0.0:8080

vacuum=true
socket=%(chdir)/uwsgi/uwsgi.sock
stats=%(chdir)/uwsgi/uwsgi.status
pidfile=%(chdir)/uwsgi/uwsgi.pid
daemonize=%(chdir)/uwsgi/uwsgi.log

创建uwsgi的工作环境(只需要创建即可)

mkdir uwsgi
cd uwsgi
vi uwsgi.pid
vi uwsgi.sock
vi uwsgi.status
vi uwsgi.log
  • 常用命令:
uwsgi --ini uwsgi.ini             # 启动
uwsgi --reload uwsgi.pid          # 重启
uwsgi --stop uwsgi.pid            # 关闭

  • 配置nginx关联uwsgi的工作环境
    配置文件地址
    在这里插入图片描述
location / {
        include uwsgi_params;
        uwsgi_pass unix:/www/wwwroot/test/uwsgi/uwsgi.sock;
}
  • 配置nginx资源加载路径
location ^~ /static{
    root /www/wwwroot/user;
}

关于Nginx的环境,路径及其用法可以参考这篇文章

Nginx静态服务配置

  • 在运行站点前最好先调试flask文件的可执行性
source .env/bin/activate
flask run
deactivate  

在放上我的文件结构树
在这里插入图片描述
操作完毕开启uwsgi就好了,用添加的站点成功了就可以访问,要加端口号

附上链接
http://www.v-an.top/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值