部署云服务器

1 安装MariaDB

1.1安装命令

yum -y install mariadb mariadb-server

安装完成MariaDB,首先启动MariaDB

systemctl start mariadb

设置开机启动

systemctl enable mariadb

1.2 设置密码

命令: mysql_secure_installation

Enter current password for root:<–初次运行直接回车

设置密码

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车

New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码

其他配置

Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车

Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,

Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车

Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

初始化MariaDB完成,接下来测试登录

mysql -u root -p

1.3 开启远程连接

在mysql数据库中的user表中可以看到默认是只能本地连接的,所有可以添加一个新的用户,该用户可以远程访问

a. 创建用户
# 先使用数据库
use mysql;

# 针对ip
create user 'root'@'192.168.10.10' identified by 'password';

#全部
 create user 'root'@'%' identified by 'password';
b. 授权
# 给用户最大权限
grant all privileges on *.* to 'root'@'%' identified by 'password';

# 给部分权限(test 数据库)

grant all privileges on test.* to 'root'@'%' identified by 'password' with grant option;

# 刷新权限表
flush privileges;

# 查看
show grants for 'root'@'localhost';

接下来就可以在远程的数据库可视化工具中直接访问该服务器中的mysql了。

# 访问数据库
mysql -u root -p

2.安装python3.6

在centos中,系统默认只提供python2.7的版本,但是项目我们使用的python3.6的版本。所有我们自己安装python3

2.1安装Python3的方法

首先安装依赖包, 不同版本需要不同的依赖包

yum -y groupinstall "Development tools"

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

然后根据自己需求下载不同版本的Python3,我下载的是Python3.6.2

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

然后解压压缩包,进入该目录,安装Python3

tar -xvJf  Python-3.6.2.tar.xz
cd Python-3.6.2
./configure --prefix=/usr/local/python3
make && make install

最后创建软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

3. 安装环境

3.1. 安装virtualenv

yum install python-virtualenv

3.2. 创建虚拟环境

virtualenv --no-site-packages env

cd env

# 激活虚拟环境
source bin/activate

3.3. 安装环境需要的包

pip3 install -r re_install.txt

其中re_install.txt文件中记录的是需要安装包的名称以及对应的版本

4. 部署(正式环境)

正式环境中部署为nginx+uwsgi来部署django项目

4.1 安装nginx

a)添加nginx存储库

yum install epel-release

b) 安装nginx

yum install nginx

c) 运行nginx

Nginx不会自行启动。要运行Nginx

systemctl start nginx

nginx的运行命令:

 systemctl status nginx 查看nginx的状态
 systemctl start/stop/enable/disable nginx 启动/关闭/设置开机启动/禁止开机启动

d)系统启动时启用Nginx

systemctl enable nginx

e)如果您正在运行防火墙,请运行以下命令以允许HTTP和HTTPS通信:

sudo firewall-cmd --permanent --zone=public --add-service=http

sudo firewall-cmd --permanent --zone=public --add-service=https

sudo firewall-cmd --reload

运行结果如下:

image.png

4.2.配置uwsgi

a. 安装uwsgi

pip3 install uwsgi --> 是部署在全局
指定虚拟环境下安装
/home/env/ajenv/bin/pip3 install uwsgi

b. 配置项目代码,配置项目nginx,配置uwsgi.ini等

本案例的配置文件,都习惯将每一个项目的配置文件,日志文件,虚拟环境放在一起,cd 这样开发方便,运维也方便维护
项目的目录结构如下:
conf是配置文件,用于存放项目的ajnginx.conf文件,ajuwsgi.ini文件
logs是日志文件,用于存放nginx的启动成功和失败文件,以及uwsgi的运行日志文件
env是用于存放虚拟环境
src是项目文件,该目录 下上传的是目录代码

4.3流程:

1. 安全组

端口是否开放

2. Nginx

a. 配置文件位置 : vim /etc/nginx/nginx.conf
b. 启动 / 暂停 / 重启 / 查看 : start / stop / restart / status
systemctl start nginx
c. 查看启动效果 : 访问公网IP,看到Welcome to nginx on Fedora提示

3. 项目文件 /home/中创建:mkdir env conf logs src

a. conf中配置 nginx.conf 和 uwsgi.ini文件
ajnginx.conf内容如下:

            server {
                listen    80;
                server_name 47.106.180.185 localhost;

                access_log /home/logs/ajaccess.log;
                error_log /home/logs/error.log;

                location / {
                include uwsgi_params;
                    uwsgi_pass 127.0.0.1:8891;

                uwsgi_param UWSGI_CHDIR /home/src/aj;
                uwsgi_param UWSGI_SCRIPT manage:app;
                }    
            }

ajuwsgi.ini内容如下:

            [uwsgi]
            master = true
            socket = 127.0.0.1:8891
            chdir = /home/src/aj
            pythonpath = /home/env/ajenv/bin/python3
            callable = app
            logto = /home/logs/ajuwsgi.log

说明:
master = True --> 让uwsgi可以挂到后台运行

4. 安装项目需要的包:

a. /home/env/ajenv/bin/pip3 install -r requirement.txt
b. 可以在虚拟环境中启动项目(测试用) :
cd /home/env/ajenv/bin -->进入放置虚拟环境的文件
source activate -->启动虚拟环境
cd /home/src/ajzf -->在虚拟环境中进入项目文件
python3 manage.py runserver -d -h 0.0.0.0 -p 8891 -->启动项目

5. uwsgi配置:

a. 创建虚拟环境
b. 安装uwsgi : /home/env/ajenv/bin/pip3 install uwsgi
c. 启动uwsgi : /home/env/ajenv/bin/uwsgi --ini /home/conf/uwsgi.ini

6. redis 安装:

a. 安装 yum install redis
b. 启动服务端 redis-server
c. 客户端查看 redis-cli

7. 配置启动nignx和uwsgi

.1 在vim /etc/nginx/nginx.conf 中添加 自己定义的文件/home/conf/.*.conf

  1. 重启nginx和uwsgi,注意要先杀掉(kill -9 PID)原先启动的项目,否则端口已被暂用

常见问题:

  1. address already in use : 端口已经被占用

你可能感兴趣的:(部署云服务器)