服务器相关操作

发布时间 2023-03-22 21:17:21作者: 虾仁猪心排骨汤
# 买阿里云服务器(腾讯云,华为云,xx云)
# 阿里云官方购买esc服务器

上线流程

安装git

yum install git -y
mkdir /home/project
cd /home/project
git clone 项目地址git

云服务器安装mysql

先下载工具包 ~目录即可
yum -y groupinstall "Development tools" # 包含了很多开发的工具(git)
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

1)前往用户根目录
cd ~ #切换到用户家路径

2)下载mysql57
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

3)安装mysql57
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum install mysql-community-server --nogpgcheck

4)启动mysql57并查看启动状态
systemctl start mysqld.service 启动
systemctl status mysqld.service 查看

5)查看默认密码并登录
grep "password" /var/log/mysqld.log
iag%<ohj+5F7
mysql -uroot -p

6)修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxx';

云服务器安装redis(源码安装)

1)前往用户根目录
cd ~

2)下载redis-5.0.5(源码包)
wget http://download.redis.io/releases/redis-5.0.5.tar.gz

3)解压安装包
tar -xf redis-5.0.5.tar.gz

4)进入目标文件
cd redis-5.0.5

5)编译环境(gcc编译---》可执行文件--》src---》可执行文件)
c语言写的redis,是编译型语言,需要在不同平台编译成不同平台的可执行文件,才能执行
make && make install

6)复制环境到指定路径完成安装
cp -r /root/redis-5.0.5 /usr/local/redis

7)配置redis可以后台启动:修改下方内容
vim /usr/local/redis/redis.conf
在bind 127.0.0.1下添加,其他位置也行
daemonize yes

8)完成配置修改
esc
:wq

9)建立软连接
ln -s /usr/local/redis/src/redis-server /usr/bin/redis-server
ln -s /usr/local/redis/src/redis-cli /usr/bin/redis-cli

10)后台运行redis
cd /usr/local/redis
redis-server ./redis.conf &

ctrl + c 退出后台运行因为加了&

11)测试redis环境
redis-cli
ctrl + c

12)关闭redis服务(项目要用,不用关闭)
客户端连进去,敲 shutdown
pkill -f redis -9

云服务器安装python3.8(源码安装)

阿里云的centos默认装了python3.6 和2.7

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel -y

1前往用户根目录
cd ~

2 下载 或 上传 Python3.8.6 服务器终端
wget https://registry.npmmirror.com/-/binary/python/3.8.6/Python-3.8.6.tgz

3 解压安装包
tar -xf Python-3.8.6.tgz

4 进入目标文件
cd Python-3.8.6

5 配置安装路径:/usr/local/python3
把python3.8.6 编译安装到/usr/local/python38路径下
./configure --prefix=/usr/local/python38

6 编译并安装,如果报错,说明缺依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel -y
make && make install

7 建立软连接:/usr/local/python38路径不在环境变量,终端命令 python3,pip3
ln -s /usr/local/python38/bin/python3 /usr/bin/python3.8
ln -s /usr/local/python38/bin/pip3 /usr/bin/pip3.8

python 2.x pip
python3 3.6 pip3
python3.8 3.8 pip3.8

8 删除安装包与文件:
rm -rf Python-3.8.8
rm -rf Python-3.8.8.tar.xz

安装uwsgi

使用uwsgi运行django,安装
uwsgi是符合wsgi协议的web服务器,使用c写的性能高,上线要使用uwsgi
安装步骤
1)在真实环境下安装
pip3.8 install uwsgi

2)建立软连接
ln -s /usr/local/python38/bin/uwsgi /usr/bin/uwsgi

9 安装虚拟环境

1)安装依赖
pip3.8 install virtualenv
pip3.8 install virtualenvwrapper

更新pip(没问题不更新)
-- python3.8 -m pip install --upgrade pip
-- python3.8 -m pip install --upgrade setuptools
pip3.8 install pbr
pip3.8 install -U virtualenvwrapper -i https://pypi.douban.com/simple/

2)建立虚拟环境软连接
ln -s /usr/local/python38/bin/virtualenv /usr/bin/virtualenv

3)配置虚拟环境:填入下方内容
vim ~/.bash_profile

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.8
source /usr/local/python38/bin/virtualenvwrapper.sh

4)退出编辑状态
esc

5)保存修改并退出
:wq

6)更新配置文件内容
source ~/.bash_profile

7)虚拟环境默认根目录:~/.virtualenvs

  1. 新建虚拟环境 mkvirtualenv -p 指定python版本 虚拟环境名字
    mkvirtualenv -p python3.8 虚拟环境名字

10 安装nginx(源码安装)

1)前往用户根目录
cd ~

2)下载nginx1.13.7
wget http://nginx.org/download/nginx-1.13.7.tar.gz

3)解压安装包
tar -xf nginx-1.13.7.tar.gz

4)进入目标文件
cd nginx-1.13.7

5)配置安装路径:/usr/local/nginx
./configure --prefix=/usr/local/nginx

6)编译并安装
make && make install

7)建立软连接:终端命令 nginx
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

8)删除安装包与文件:
cd ~
rm -rf nginx-1.13.7
rm -rf nginx-1.13.7.tar.xz

9)测试Nginx环境,服务器运行nginx,本地访问服务器ip
启动 :nginx
停止: nginx -s stop
服务器绑定的域名 或 ip:80
查看 netstat -nlp | grep 80

11 前端部署

1 修改前端向后端发ajax请求的地址:项目的地址
2 编译vue项目成html,css,js
npm run build
3 项目根路径下生成dist文件夹(编译过后的文件)

4 本地压缩成zip (不要压成rar)

5 在服务器安装软件:yum install lrzsz

6 直接把dist.zip 拖到 云服务器上去
或者在云服务器敲 rz 选择上传
(本人方式)在本地终端输入scp -r 文件夹目录 用户名@服务器ip:目标路径

7 yum install unzip
unzip dist.zip

8 移动并重命名
mv ~/dist /home/html

9 去向Nginx配置目录,备份配置,完全更新配置:填入下方内容

/usr/local/nginx/conf/nginx.conf 是nginx的配置文件

制定nginx启动监听哪个端口
做请求转发,做负载均衡
做静态文件代理
cd /usr/local/nginx/conf
mv nginx.conf nginx.conf.bak #做个备份
vim nginx.conf

events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
location / {
root /home/html; # dist文件下位置
index index.html; # index文件位置
}
}
}

10 操作
ps aux |grep nginx 查看nginx进程
nginx -s reload #重新加载配置文件
或者
nginx -s stop 先关闭
nginx 再启动

后端部署

python

确认好wsgi.py的配置文件是os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'xxxx.settings.线上配置.py')

1)创建线上luffy项目虚拟环境
mkvirtualenv luffy
workon luffy

2)安装所需环境,在packages.txt所在目录下安装执行requirements.txt文件
pip install uwsgi # 虚拟环境下也要装uwsgi
pip install -r ./requirements.txt

先把mysqlclient注释掉下载其他的,再执行这三行在,再下载mysqlclient
yum install mysql-devel
yum install python-devel
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
pip install mysqlclient

配置luffy数据库

1)管理员连接数据库
mysql -uroot -p

2)创建数据库
create database luffy default charset=utf8;

3)设置权限账号密码:账号密码要与项目中配置的一致
grant all privileges on luffy.* to 'luffy'@'%' identified by 'xx密码xx';
grant all privileges on luffy.* to 'luffy'@'localhost' identified by 'xx密码xx';
flush privileges;

4)退出mysql
quit;

迁移数据库

必须在虚拟环境下
1)数据库迁移
python manage_prod.py makemigrations (不出意外没变化,不管执行第二条)
python manage_prod.py migrate

2)把本地数据,导入到生产库
在 navicate中 把数据库转储成sql
在生产库导入进去

使用uwsgi启动django

1进行uwsgi服务配置,内容如下
vim ./luffyapi.xml # uwsgi的配置文件

127.0.0.1:8888 /home/project/项目目录/ luffyapi.wsgi 4 uwsgi.log

2 启动uwsgi

uwsgi -x ./luffyapi.xml

3 查看uwsgi进程

ps aux |grep uwsgi

4 配置nginx,把8080的动态请求转发给8888端口

vim /usr/local/nginx/conf/nginx.conf

events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
location / {
root /home/html;
index index.html;
}
}
# 新增的server
server {
listen 8080;
server_name 127.0.0.1;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8888;
uwsgi_param UWSGI_SCRIPT luffyapi.wsgi;
uwsgi_param UWSGI_CHDIR /home/project/luffyapi/;
}
}
}

重启nginx

nginx -s reload

13 路飞后台管理样式处理

uwsgi 只转发动态请求,静态资源它不管

1)编辑线上配置文件
vim /home/project/luffyapi/luffyapi/settings/pro.py

2)修改static配置,新增STATIC_ROOT、STATICFILES_DIRS
STATIC_URL = '/static/'
STATIC_ROOT = '/home/project/luffyapi/static'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "../static"),)(线上注释这行,开发时用manage.py运行需要)

3)退出编辑
esc
:wq

4)项目目录下没有 static 文件夹需要新建
mkdir /home/project/luffyapi/static

5)完成静态文件迁移
python /home/project/luffyapi/manage_pro.py collectstatic

6)1)修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
location / {
root /home/html;
index index.html;
}
}
server {
listen 8080;
server_name 127.0.0.1;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8888;
uwsgi_param UWSGI_SCRIPT luffyapi.wsgi;
uwsgi_param UWSGI_CHDIR /home/project/luffyapi/;
}
location /static {
alias /home/project/luffyapi/static;
}
}

}

注意服务器放行ip和端口

3306 数据库
80 前端
8080 后端