一、新建用户
1.1 添加用户:
sudo useradd -d "/home/ray" -m -s "/bin/bash" ray
1.2 修改密码:
sudo passwd ray
1.3 新用户赋予sudo权限(需强制保存):
sudo vim /etc/sudoers
1.4 然后切换成新用户登录:
1.5 设置远程登录密码错误账号锁定:
sudo vim /etc/pam.d/sshd
在第二行写入: auth required pam_tally2.so deny=3 unlock_time=3600 even_deny_root root_unlock_time=3600
auth required pam_tally2.so deny=3 unlock_time=3600 even_deny_root root_unlock_time=3600
1.6 查看用户登录失败次数:
sudo pam_tally2 --user
二、配置开发环境:
2.1 更新apt:
sudo apt update
sudo apt upgrade
2.2 安装各种依赖:
sudo apt install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
三、安装Python:
3.1 新建python目录:
mkdir python
cd python
3.2 下载python3.8.0.tgz,wget下载,或者windows下载好之后用xftp上传:
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
3.3 解压:
tar -zxvf Python-3.8.0.tgz
3.4 进入解压后的文件夹:
cd Python-3.8.0
3.5 配置configure:
./configure --prefix=/usr/local/python38
3.5.1 如果出现下面这句话:
则继续运行:
./configure --prefix=/usr/local/python38 --enable-optimizations
3.6 make编译(此操作耗时很长,1C2G的腾讯云服务器需要40分钟左右):
sudo make
sudo make install
3.7 添加链接:
sudo rm -rf /usr/bin/python
sudo rm -rf /usr/bin/pip
sudo ln -s /usr/local/python38/bin/python3 /usr/bin/python
sudo ln -s /usr/local/python38/bin/pip3 /usr/bin/pip
3.8 更新pip、setuptools:
sudo -H pip install --upgrade pip
sudo -H pip install --upgrade setuptools
四、安装git:
4.1 安装git:
sudo apt install git
4.2 配置git:
git config --global user.name "用户名"
git config --global user.email "邮箱"
4.3 生成密钥:
ssh-keygen -t rsa -C "邮箱"
4.4 复制公钥的内容到git上:
more /home/ray/.ssh/id_rsa.pub
五、安装mysql:
5.1 安装mysql:
sudo apt install mysql-server
5.2 设置root密码(如果安装时有设置的话,直接跳 - 5.3):
编辑mysqld.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
5.2.1 在底部添加 skip-grant-tables
5.2.2 重启mysql
service mysql restart
5.2.3 登录mysql,并执行以下SQL语句
mysql -u root -p
use mysql;
select user, plugin from user;
update user set authentication_string=password("密码"), plugin="mysql_native_password" where user="root";
flush privileges;
quit
5.2.4 将skip-grant-tables注释
5.2.5 重启mysql
service mysql restart
5.3 登录mysql,并执行以下SQL语句
mysql -u root -p
use mysql;
grant all privileges on *.* to "root"@"%" identified by "密码" with grant option;
flush privileges;
quit
5.3.1 重启mysql
service mysql restart
5.4 允许远程登录:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
5.4.1 将bind-address = 127.0.0.1 注释
5.4.2 重启mysql:
service mysql restart
5.5 版本5.7.5以上的mysql版本需在[mysqld]下添加sql_mode,添加完成需重启mysql
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
5.6 修改数据库编码格式为utf-8
查看mysql编码格式。
修改配置。
sudo vim /etc/mysql/conf.d/mysql.cnf
在 [mysql] 下面加上 default-character-set=utf8mb4
修改配置。
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 下面加上 character-set-server=utf8mb4
改完之后重启mysql。
5.7 如果sql过大,需要设置 max_allowed_packet
运行 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,找到 max_allowed_packet 进行设置。(需重启)
六、安装redis:
sudo apt install redis-server
七、安装uwsgi:
sudo -H pip install uwsgi
7.1 配置uwsgi
vim uwsgi.ini
[uwsgi]
# 嵌入Nginx,使用socket
socket = 127.0.0.1:3399
# 如果直接通过uwsgi访问服务,使用:http-socket 或 http
# http = 0.0.0.0:80
# 如果要用证书
# https = 0.0.0.0:443,/home/ray/ray-iam/ray-iam/app/config/ssl/1_ray3175.cn_bundle.crt,/home/ray/ray-iam/ray-iam/app/config/ssl/2_ray3175.cn.key
# 项目目录
chdir = /home/ray/ray-iam/ray-iam
# 虚拟环境所在路径(如果使用)
# virtualenv = /usr/local/python38/bin/python3.8
# wsgi.py文件
module = wsgi:app
# Flask引用命名
# callable = app
# 启动主进程,来管理其他进程
master = true
# 设置退出后清理文件
vacuum = true
# socket权限设置
chmod-socket = 775
# uwsgi状态文件
stats = /home/ray/ray-iam/uwsgi.status
# 监听队列大小,和机器配置有关,能调多大调多大
listen = 128
# 进程数
processes = 2
# 启用线程
enable-threads = true
# 线程数
threads = 4
# 序列化接受的内容
thunder-lock = true
# 自动中断时间(自身应用)
harakiri = 60
# 缓冲
post-buffering = 4096
# 日志目录
daemonize = /home/ray/ray-iam/uwsgi.log
# 进程文件
pidfile = /home/ray/ray-iam/uwsgi.pid
7.2 启动uwsgi
sudo /usr/local/python38/bin/uwsgi --ini uwsgi.ini
7.3 如果配置nginx,还需新建下列参数文件(在后续配置nginx时会用到)
vim uwsgi_params
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
八、安装nginx:
1 安装
sudo apt install nginx
1.1 查看nginx路径
1.2 创建自定义配置文件
cd /etc/nginx
sudo mkdir my_app
cd my_app
sudo vim ray-iam.conf
1.3 写入配置:
upstream ray-iam {
server 127.0.0.1:3399; # web的socket端口
}
server {
listen 80;
listen [::]:80;
charset utf-8;
server_name *.ray3175.cn;
location / {
root /home/ray/ray-iam/ray-iam; # 项目目录
uwsgi_pass ray-iam;
include /home/ray/ray-iam/uwsgi_params; # uwsgi_params,配置uwsgi时,提到过的文件路径
}
}
2 修改 nginx.conf
sudo vim /etc/nginx/nginx.conf
修改 events 中的内容
注释掉 include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; 并在下方添加 include /etc/nginx/my_app/*.conf;
重启 nginx(启动 nginx 时,uwsgi 也要启动)
service nginx restart
完成上面一系列操作,这时,就可以通过ip或者域名直接访问web应用了!!!
最后,记录下 uwsgi 和 nginx 的命令。
uwsgi:
sudo /usr/local/python38/bin/uwsgi --ini uwsgi.ini # 启动
sudo /usr/local/python38/bin/uwsgi --stop uwsgi.pid # 停止
sudo /usr/local/python38/bin/uwsgi --reload uwsgi.pid # 重启
nginx:
service nginx start # 启动
service nginx stop # 停止
service nginx restart # 重新启动
service nginx reload # 重新加载配置