加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

带你迈过那些部署服务器时的坑?

发布时间:2018-08-31 03:10:16 所属栏目:外闻 来源:程序猿与吉他狗
导读:副标题#e# 在开发环境完成了Flask项目的开发以后,就需要将项目部署到服务器上,开发时由Werkzeug提供的开发服务器是无法应用于实际项目的,在生产环境中必须使用专门的服务器程序,web服务器程序非常多,本文服务器操作系统为Centos7,网站服务器采用的是uw
副标题[/!--empirenews.page--]

在开发环境完成了Flask项目的开发以后,就需要将项目部署到服务器上,开发时由Werkzeug提供的开发服务器是无法应用于实际项目的,在生产环境中必须使用专门的服务器程序,web服务器程序非常多,本文服务器操作系统为Centos7,网站服务器采用的是uwsgi和nginx(反向代理),数据库为开发时使用的mysql 8。

一、基础环境

关于uwsgi和nginx的相关知识另外写文章介绍,这是部署Python web项目主流方式,性能和稳定性都很好,部署也很简单。现在很多小型项目都会采用云服务器,这种方式成本更低,操作更方便,用户只需要填入相应的选项就可以得到一台服务器,省去了安装配置操作系统的复杂操作。

带你迈过那些部署服务器时的坑?

拿到云服务商给我们的服务器后,我们就可以ssh远程登录上去操作了,我们应该做以下几件事情完成基础环境的配置:(下文命令前面是#代表root用户登录,$代表普通用户)

1.修改root密码

这是Linux系统最高权限的账户,所以第一件事情修改它的密码非常重要。

  1. # passwd root 

然后输入复杂度足够的密码(大写字母+小写字母+符号>8位)

2.创建用户

root账户的权限太高,为了安全,部署服务器必须新建一个账户

  1. # adduser deploy 
  2. # passwd deploy 

然后输入复杂度足够的密码(大写字母+小写字母+符号>=8位),但是有时候还是需要管理员权限,所以需要把它加入到sudoers中,这样就可以临时使用sudo命令来提权。

  1. # vi /etc/sudoers 

新增一行

  1. deploy  ALL=(ALL)       ALL 

3.安装基础软件

安装openssl,这个是pip需要依赖的。

  1. $ sudo yum -y install openssl-devel 

安装EPEL扩展仓库,后面安装nginx时需要

  1. $ sudo yum -y install epel-release 

安装wget,后面安装Python和MySQL时需要

  1. $ sudo yum -y install wget 

安装zlib,后面安装Python时需要

  1. $ sudo yum -y install zlib* 

4.配置

防火墙配置,很多初学者配置完成后发现仍然不能访问,原因是被防火墙挡住了。

  1. $ sudo firewall-cmd --permanent --zone=public --add-service=http 
  2. $ sudo firewall-cmd --permanent --zone=public --add-service=https 
  3. $ sudo firewall-cmd –reload 

关闭SELinux,这也是一个大坑,它会导致nginx无法读取uwsgi创建的sock,即使配置了相应的用户也不行

  1. $ sudo vi /etc/selinux/config 
  2. SELINUX=disabled 

然后重启服务器

  1. $ sudo init 6 

服务器的基础配置就完成了。

二、安装Python

Python因为2和3不兼容造成了很多问题,除了一些遗留系统,现在新开发的程序都是采用Python3,Centos7自带的是Python2.7,就需要自行安装Python3,本文以Python3.6.3为例:

1.创建安装目录

Python的安装目录和库依赖也是一个坑,我们将Python3安装在一个目录中,如果后续要卸载的话直接删除即可。

  1. $ sudo mkdir /usr/local/python3 
  2. $ cd /usr/local/python3 

2.下载及解压

使用前面安装的wget来下载Python源码包

  1. $ sudo wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz 

使用tar命令来解压包,这个命令使用频率非常高,大家可以搜索具体的参数用法。

  1. $ sudo tar -xvf Python-3.6.3.tgz 

3.配置编译安装

  1. $ cd Python-3.6.3/ 

这里prefix是指定python的安装目录,--with-ssl是指定使用openssl,前面已经安装了openssl,如果不指定会导致pip无法使用。

  1. $ sudo ./configure --prefix=/usr/local/python3 --with-ssl 
  2. $ sudo make 
  3. $ sudo make install 

4.链接

可以把链接看成windows中的快捷方式,Linux中我们敲的那些命令来自于/usr/bin和/usr/sbin,如果我们程序安装后,仍然出现command not found就需要做一个链接到/usr/bin中。

  1. $ cd /usr/bin 
  2. $ sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3 
  3. $ sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 

5.配套安装

通常pip的版本都是不够新的,需要升级,下面两种方法都可以:

  1. $ sudo pip install --upgrade pip  
  2. $ sudo python3 -m pip install --upgrade pip 

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读