带你迈过那些部署服务器时的坑?
副标题[/!--empirenews.page--]
在开发环境完成了Flask项目的开发以后,就需要将项目部署到服务器上,开发时由Werkzeug提供的开发服务器是无法应用于实际项目的,在生产环境中必须使用专门的服务器程序,web服务器程序非常多,本文服务器操作系统为Centos7,网站服务器采用的是uwsgi和nginx(反向代理),数据库为开发时使用的mysql 8。 一、基础环境 关于uwsgi和nginx的相关知识另外写文章介绍,这是部署Python web项目主流方式,性能和稳定性都很好,部署也很简单。现在很多小型项目都会采用云服务器,这种方式成本更低,操作更方便,用户只需要填入相应的选项就可以得到一台服务器,省去了安装配置操作系统的复杂操作。 拿到云服务商给我们的服务器后,我们就可以ssh远程登录上去操作了,我们应该做以下几件事情完成基础环境的配置:(下文命令前面是#代表root用户登录,$代表普通用户) 1.修改root密码 这是Linux系统最高权限的账户,所以第一件事情修改它的密码非常重要。
然后输入复杂度足够的密码(大写字母+小写字母+符号>8位) 2.创建用户 root账户的权限太高,为了安全,部署服务器必须新建一个账户
然后输入复杂度足够的密码(大写字母+小写字母+符号>=8位),但是有时候还是需要管理员权限,所以需要把它加入到sudoers中,这样就可以临时使用sudo命令来提权。
新增一行
3.安装基础软件 安装openssl,这个是pip需要依赖的。
安装EPEL扩展仓库,后面安装nginx时需要
安装wget,后面安装Python和MySQL时需要
安装zlib,后面安装Python时需要
4.配置 防火墙配置,很多初学者配置完成后发现仍然不能访问,原因是被防火墙挡住了。
关闭SELinux,这也是一个大坑,它会导致nginx无法读取uwsgi创建的sock,即使配置了相应的用户也不行
然后重启服务器
服务器的基础配置就完成了。 二、安装Python Python因为2和3不兼容造成了很多问题,除了一些遗留系统,现在新开发的程序都是采用Python3,Centos7自带的是Python2.7,就需要自行安装Python3,本文以Python3.6.3为例: 1.创建安装目录 Python的安装目录和库依赖也是一个坑,我们将Python3安装在一个目录中,如果后续要卸载的话直接删除即可。
2.下载及解压 使用前面安装的wget来下载Python源码包
使用tar命令来解压包,这个命令使用频率非常高,大家可以搜索具体的参数用法。
3.配置编译安装
这里prefix是指定python的安装目录,--with-ssl是指定使用openssl,前面已经安装了openssl,如果不指定会导致pip无法使用。
4.链接 可以把链接看成windows中的快捷方式,Linux中我们敲的那些命令来自于/usr/bin和/usr/sbin,如果我们程序安装后,仍然出现command not found就需要做一个链接到/usr/bin中。
5.配套安装 通常pip的版本都是不够新的,需要升级,下面两种方法都可以:
(编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |