August Rush

一个还在努力成长的小火汁!

游龙当归海,海不迎我自来也。

We create our own demons.

You can reach me at augustrush0923@gmail.com
记录一次小小项目的部署
发布:2021年03月09日 | 作者:augustrush | 阅读量: 867

因为之前的学生服务器到期,本来是能以学生价格续费3次的,但活动截止不让续费了(也没得到通知!),遂重新购买了服务器。

备份之前服务器上的数据到新服务器后,开始部署项目。

以下简单记录整个部署流程,具体服务配置我也是一知半解,就不展开讲了(毕竟才疏学浅...)


Yum源更新

开通后登上服务器第一件事就是要更新yum源。因为是购入阿里云的服务器,yum源本身就是阿里源,就没有设置

  1. 更新yum
yum update -y
  1. 安装必要软件
yum -y install \
zlib-devel \
bzip2-devel \
openssl-devel \
ncurses-devel \
sqlite-devel \
readline-devel \
tk-devel \
libffi-devel \
wget \
gcc \
make


安装Python 3

Linux上默认安装的是Python 2解释器,但是项目是通过Python 3解释器构建的,所以需要安装Python 3。

  1. 下载Python源码
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
  1. 解压
tar -zxvf Python-3.6.5.tgz
  1. 进入解压后得到的目录
cd Python-3.6.5
  1. 执行编译前的configure操作:
./configure --prefix=/usr/local/python3
  1. 编译源码,在Python-3.6.5目录执行以下命令:
make && make install
  1. 创建Python 3的链接:
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
  1. 创建pip3的链接:
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
  1. pip3升级
pip3 install --upgrade pip
  1. 安装依赖包
pip3 install -r requirements.txt


安装MySQL

  1. 获取rpm包
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  1. 安装下载的rpm包
rpm -Uvh mysql80-community-release-el7-3.noarch.rpm 

选择发行系列

  1. 在MySQL Yum存储库(https://repo.mysql.com/yum)中,不同版本的MySQL Community Server托管在不同的子存储库中。默认情况下,默认启用最新GA系列(当前为MySQL 8.0)的子存储库,而所有其他系列(例如,MySQL 5.7系列)的子存储库均被禁用。使用此命令可查看MySQL Yum存储库中的所有子存储库,并查看已启用或禁用了哪些子存储库(对于启用dnf的系统,请使用dnf替换 命令中的 yum):
sudo yum repolist all | grep mysql

  1. 要安装最新GA系列的最新版本,无需进行配置。要安装除最新GA系列以外的特定系列的最新版本,请在运行安装命令之前禁用最新GA系列的子存储库并启用特定系列的子存储库。

    比如我就想安装mysql5.7,而现在最新是mysql8.0,所以需要禁用8.0的,启用5.7的:

sudo yum-config-manager --disable mysql80-community

sudo yum-config-manager --enable mysql57-community

  1. 使用此命令再次查看MySQL Yum存储库中的所有子存储库,并查看已启用或禁用了哪些子存储库,发现已切换为mysql5.7启用,mysql8.0已经禁用
sudo yum repolist all | grep mysql

注意: 只为一个发行系列启用子存储库。如果启用了多个发行系列的子存储库,那么Yum将使用最新的系列。

  1. 更新yum缓存。

yum 会把下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除缓存。 我们在更新yum源或者出现配置yum源之后,通常都会使用yum makecache 生成缓存,这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度。 下边两个命令按顺序执行:

yum clean all
yum makecache fast
  1. 通过命令安装MySQL。
sudo yum install mysql-community-server


常用mysql服务命令:

对于基于EL7的平台(CentOS 7):

//启动mysql
$ systemctl start mysqld.service 
//查看状态
$ systemctl status mysqld.service
//关闭
$ systemctl stop mysqld.service
//重启
$ systemctl restart mysqld.service
//运行开机自启
$ systemctl enable mysqld.service
//不允许开机自启
$ systemctl disable mysqld.service


获取初始密码登录mysql,并修改密码及校验规则

mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中 此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码。


1. 通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log


2. 使用刚才查到的初始密码登录,密码复杂可以用鼠标复制粘贴。
mysql -uroot -p


3. 修改密码(新密码必须是8位及以上的数字、字母、特殊字符)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword1234!';


4. 修改密码校验规则,配置可以使用弱密码(不嫌麻烦可以不修改规则,直接用复杂的密码,看个人)
show variables like 'validate_password%';

以下命令按顺序一条一条执行即可。(改为密码最短3位,其他无限制)

mysql> set global validate_password_policy=0;
mysql> set global validate_password_mixed_case_count=0;
mysql> set global validate_password_number_count=0;
mysql> set global validate_password_special_char_count=0;
mysql> set global validate_password_length=3;


安装Nginx

  1. 获取安装包
wget http://nginx.org/download/nginx-1.16.1.tar.gz
  1. 进入下载得到的文件内
cd nginx-1.16.1
  1. 安装包
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
  1. 编译源码
make && make install
  1. 启动nginx服务 切换目录到/usr/local/nginx/sbin下面
./nginx
  1. 查看nginx服务是否启动成功
ps -aux | grep nginx


安装Redis

因为我的服务器系统使用的是CentOS,其他系统不一定适用。

  1. 安装Redis
yum install redis
  1. 启动Redis
systemctl start redis

验证安装:

验证Redis是否在运行有两种办法:

  1. 通过ps命令查看
ps -ef | grep redis
  1. 通过Redis连接服务端命令:
redis-cli


安装Celery

  1. 安装Celery模块
pip3 install celery
  1. 执行启动任务 需要进入到task.py文件所在的目录
/usr/local/python3/bin/celery -A main worker -l info


安装Memcached

  1. 安装Memcached
yum -y install memcached
  1. 启动Memcached
systemctl start memcached
  1. 开启防火墙
firewall-cmd --add-port=11211/tcp --permanent

firewall-cmd --reload


安装uWSGI

  1. 安装uWSGI
pip3 install uwsgi
  1. uWSGI配置文件 我是通过xml形式配置的
<uwsgi>
    <socket>127.0.0.1:8000</socket>
    <chdir>项目文件路径</chdir>
    <module>应用文件名.wsgi</module>
    <processes>4</processes>
    <daemonize>uwsgi.log</daemonize>
    <pidfile>记录pid的文件.log</pidfile>
</uwsgi>
  1. uWSGI启动
uwsgi -x 配置文件名.xml


上线

配置并启动上述所安装软件后,在阿里云控制台设置域名绑定后便可通过域名正常访问了!!!



  • 标签云

  • 支付宝扫码支持一下

  • 微信扫码支持一下



基于Nginx+Supervisord+uWSGI+Django1.11.1+Python3.6.5构建

京ICP备20007446号-1 & 豫公网安备 41100202000460号

网站地图 & RSS | Feed