昨天服务器新开了一个管理员账号,使用弱密码,导致被黑,ssh无法登录,无奈重装系统,幸好没有什么重要资料,服务器上只跑了一个busapi和blog,早上重装系统,重新搭建环境,记录一下。服务器是腾讯云,系统是ubuntu18.04,自带python2和python3。我的项目是基于python3的,所以可以直接使用。1.安装依赖包sudoaptinstallpython3-pipsudoaptinstallbuild-essentialpython-devpython-setuptoolssudoaptinstallbuild-essentialpython3-devpython3-setuptools2.安装virtualenvvirtualenv用于为每个Python创建虚拟python环境应用创建一个独立的开发环境,使它们互不影响。Virtualenv可以做到:未经许可安装新包。不同的应用程序可以使用不同的包版本。软件包升级不影响其他应用程序。pip3installvirtualenv查看是否安装成功virtualenv--version安装成功,我接下来会用到。我的项目是一个api服务。我把我的项目文件放在/opt下,文件名是busAPI。我把我所有的项目文件都放在里面来安装虚拟环境,名称为venv,必须进入项目目录,virtualenvvenv会在项目目录下新建一个venv目录,里面包含了运行python的基础环境的工具、指令和包。然后启用环境。sourcevenv/bin/activate调用activate命令后,命令字符前会出现(venv)字样。可以通过deactivate退出虚拟环境。3.安装项目依赖(Flask框架)我的项目文件已经上传到目录,但是项目依赖还没有安装,安装依赖,我的依赖文件已经放在requirements.txt文件中,pipinstall-rrequirements。txt这样安装依赖文件比较方便。如果依赖较少,可以一一安装。4.安装配置uWSGI现在我们已经在虚拟环境中了,直接安装uWSGIpipinstalluwsgi在项目根目录新建一个config.ini文件vimconfig.ini文件内容`[uwsgi]时使用的地址和端口socketuwsgistarts=127.0.0.1:8001指向网站目录chdir=/opt/busAPI/python启动程序文件wsgi-file=run.python程序中用于启动的应用程序变量名callable=appprocessornumberprocesses=4threadnumberthreads=2`状态检测地址stats=127.0.0.1:9191注释已经很明显了,只需说明callable=appapp是run.py程序文件中的一个变量,这个变量的类型就是应用类烧瓶。可以运行测试uwsgiconfig.ini,但这只是命令启动的一种形式。使其随服务器启动并作为后台服务运行是运行环境的实际需要。所以接下来我们需要安装另一个工具来启动uwsgi。5、安装Supervisorsudoapt-getinstallsupervisorSupervisor的全局配置文件位置为:/etc/supervisor/supervisor.conf一般情况下我们不需要对其做任何改动,只需要新增一个*.conf文件即可放在/etc/supervisor/conf.d/下,然后我们将创建一个新的uwsgisupervisor配置用于启动busAPI项目(命名为:busAPI.conf):[program:busAPI]startcommandentrycommand=/opt/busAPI/venv/bin/uwsgi/opt/busAPI/config.ini命令程序所在目录directory=/opt/busAPI运行命令的用户名user=rootautostart=trueautorestart=true日志地址stdout_logfile=/var/log/uwsgi_supervisor.log启停服务startservicesudoservicesupervisorstarstopservicesudoservicesupervisorstop查看statussudoservicesupervisorstatus6.安装Nginxsudoapt-getinstallnginx配置Nginx,我们修改默认文件/etc/nginx/sites-available/default默认是80端口,我这里是不能用80,因为小程序必须有https,所以我配置了443端口,重启NginxsudoservicenginxrestartNginxservice命令启动sudoservicenginxstartstopsudoservicenginxstoprestartsudoservicenginxrestart查看状态sudoservicenginxstatus7.从头开始总结记录过程,中间遇到了很多坑,不过最后还是跑成功了。总结一下,方便以后找。文章来源:标趣互动(https://www.biaofun.com/)
