昨天服务器开了一个新管理员账号,用的弱口令,导致被黑了,ssh也不能登录,没方法,只能重装系统,还好没重要材料,服务器上只跑了一个公交的api和博客,早上重装了零碎,环境从新搭建,记录下。
服务器是腾讯云的,零碎是ubuntu18.04,自带python2和python3,我的我的项目是基于python3的,所以能够间接应用。
1.装置依赖包
sudo apt install python3-pip
sudo apt install build-essential python-dev python-setuptools
sudo apt install build-essential python3-dev python3-setuptools
2.装置virtualenv
Virtualenv用来建设一个虚构的python环境,能够为每个Python利用创立独立的开发环境,使他们互不影响,Virtualenv 可能做到:
在没有权限的状况下装置新套件
不同利用能够应用不同的套件版本
套件降级不影响其余利用
pip3 install virtualenv
查看是否装置胜利
virtualenv –version
装置胜利,接下来就要应用它了,我的我的项目是个api服务,我把我的我的项目文件放在/opt下,文件名为busAPI,我把我的我的项目文件都放在外面
装置虚拟环境,名字叫venv,必须进入到我的项目目录里,
virtualenv venv
在我的项目目录下就会建设一个新的 venv 目录,外面就是运行python 的根本环境的工具与指令和包。而后启用该环境。
source venv/bin/activate
调用 activate 指令后命令符前就会呈现 (venv) 字样。可通过 deactivate 退出虚拟环境。
3.装置我的项目的依赖(Flask框架)
我的我的项目文件曾经上传到目录里,然而我的项目依赖还没有装置,装置依赖,我的依赖文件
曾经放到requirements.txt文件里,
pip install -r requirements.txt
这样装置依赖文件比拟不便,如果依赖少,能够一个一个装置。
4.装置并配置uWSGI
此时咱们曾经在虚拟环境中,间接装置uWSGI
pip install uwsgi
在我的项目根目录新建config.ini文件
vim config.ini
文件内容
`[uwsgi]
uwsgi 启动时所应用的地址与端口
socket = 127.0.0.1:8001
指向网站目录
chdir = /opt/busAPI/
python 启动程序文件
wsgi-file = run.py
python 程序内用以启动的 application 变量名
callable = app
处理器数
processes = 4
线程数
threads = 2
`
状态检测地址
stats = 127.0.0.1:9191
正文曾经很显著,只解释下callable=app 这个 app 是 run.py 程序文件内的一个变量,这个变量的类型是 Flask的 application 类 。
能够运行测试下
uwsgi config.ini
但这只是命令启动模式,要使其伴随服务器启动并作为后盾服务运行才是经营环境的理论所须要。因而接下来咱们须要装置另一个工具来疏导 uwsgi 。
5.装置 Supervisor
sudo apt-get install supervisor
Supervisor 的全局的配置文件地位在:
/etc/supervisor/supervisor.conf
失常状况下咱们并不需要去对其作出任何的改变,只须要增加一个新的 *.conf 文件放在/etc/supervisor/conf.d/下就能够,那么咱们就新建设一个用于启动 busAPI 我的项目的 uwsgi 的 supervisor 配置 (命名为:busAPI.conf):
[program:busAPI]
启动命令入口
command=/opt/busAPI/venv/bin/uwsgi /opt/busAPI/config.ini
命令程序所在目录
directory=/opt/busAPI
运行命令的用户名
user=root
autostart=true
autorestart=true
日志地址
stdout_logfile=/var/log/uwsgi_supervisor.log
启动和终止服务
启动服务
sudo service supervisor star
终止服务
sudo service supervisor stop
查看状态
sudo service supervisor status
6.装置 Nginx
sudo apt-get install nginx
配置Nginx,咱们批改default这个文件
/etc/nginx/sites-available/default
默认是80端口,这里我没有应用80,因为小程序必须要https,所以我配了443端口,重启下Nginx
sudo service nginx restart
Nginx服务命令
启动
sudo service nginx start
进行
sudo service nginx stop
重启
sudo service nginx restart
查看状态
sudo service nginx status
7.总结
记录下从无到有的过程,两头也遇到不少的坑,然而最终还是运行胜利。总结下,不便日后查找。
文章起源:标梵互动(https://www.biaofun.com/)