其实我站点已经搭建完毕了,比较懒就忘了写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的环境,路径及其用法可以参考这篇文章
- 在运行站点前最好先调试flask文件的可执行性
source .env/bin/activate
flask run
deactivate
在放上我的文件结构树
操作完毕开启uwsgi就好了,用添加的站点成功了就可以访问,要加端口号
附上链接
http://www.v-an.top/