搭建 Django 服务器
购买服务器
设置用户和组
- win10 打开控制命令面板首页,找到应用–可选功能—找添加功能 — 找openssh,安装
- 找powershell
- 远程登录命令: ssh root@公网ip
- 退出exit
- 规避风险,创建一个普通用户
- 创建用户组
groupadd admin
- 创建用户
useradd thinklis -g admin
- 给thinklis用户设置密码
passwd thinklis
- exit
- 使用新创建的用户登陆服务器
ssh thinklis@公网ip
- 接着exit退出,继续换回root用户登陆
ssh root@公网ip
- 修改新用户的权限
cd /etc
vim sudoers
- 插入一条命令
thinklis ALL=(ALL) ALL
- 保存退出:wq!
- 禁止root用户远程登陆
cd /etc/ssh
vi sshd_config
- 设置PermitRootLogin no
- 保存退出:wq!
- 重启sshd服务,使之生效
systemctl restart sshd.service
- exit退出,再使用root用户远程登陆服务器测试
设置登陆证书(略)
设置防火墙和端口
- ssh登陆
- 设置服务器自动更新,更新yum源
sudo yum -y update
- 设置yum自动更新
sudo yum install -y cronie yum-cron
- 设置配置文件
sudo vi /etc/yum/yum-cron.conf
- 做出修改no 改为yes
- 保存退出
- 启动服务
sudo systemctl start crond
sudo systemctl start yum-cron
- 安装防火墙
sudo yum install -y firewalld
sudo systemctl start firewalld.service
- 测试,列出当前防火墙所有的服务
sudo firewall-cmd --list-all
- 修改ssh的端口(默认22)去掉注释,修改为12345或其他,保存退出
sudo vi /etc/ssh/sshd_config
11. 修改防火墙中ssh的配置,先拷贝出来
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
sudo vi /etc/firewalld/services/ssh.xml
- 打开阿里云安全组(添加12345端口)
- 通过阿里云web网站进行连接服务器(重启防火墙和ssh服务)
sudo systemctl restart sshd.service
sudo systemctl restart firewalld.service
- 修改本地ssh.conf(notepad ssh.conf) win上的修改方法
安装数据库
- 登陆服务器
- 安装
sudo yum -y install mariadb mariadb-server
- 启动数据库
sudo systemctl start mariadb
sudo systemctl enable mariadb.service
建立root账户初始化
mysql_secure_installation
第一个回车跳过
按y
其他一律跳过
- root账号登陆数据库(数据库密码123456)
mysql -uroot -p
create database mysite;
- 远程连接Mariadb数据库 使用navicat
- 在阿里云控制台增加3306端口,下载tcping.exe,
- tcping 公网IP 3306,查看是否畅通
- 启动数据库
mysql -uroot -p
use mysql;
- 查看user,password,host这三个字段的权限分配情况:
select user,password,host from user;
通过以上输出可以看出数据库默认只允许用户root在本地服务器(localhost)上登录,不允许其他主机远程连接。
- 允许用户root使用密码(123456)在任何主机上连接该数据库,并赋予该用户所有权限。(小写也可以)
grant all privileges on . to root@"%" identified by “123456” with grant option;
flush privileges;
- 再次执行
select user,password,host from user;
新加入的行中的“%”就意味着任何主机都被允许连接数据库,这样数据库的访问权限就设置好了。
重启数据库,再点击测试连接,这回就连接成功了。
- 添加3306端口
- 开启防火墙
systemctl status firewalld //查看防火墙状态
systemctl start firewalld //打开防火墙
- 输入开放3306端口命令
firewall-cmd --zone=public --add-port=3306/tcp --permanent;
firewall-cmd --reload //重启防火墙
重启防火墙后需要执行
iptables -F //清除预设表 (filter) 中的所有规则链中的规则
安装python3
- 登陆 查看版本 python --version
cd ~
mkdir py3
cd py3
- 安装以来环境
sudo yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel zlib-devel libffi-devel MySQL-python mysql-devel
- 在本地找到www.python.org/ftp/python,找到Python.—.tgz,右键复制下载链接
wget https:-----------
tar -zxvf Python-3.7.2.tgz
ls
cd Python-3.7.3
- 指定python安装路径
cd /usr/local/
sudo mkdir python3
cd ~
ls
cd py3
ls
cd Python3.7.3
ls
./configure --prefix=/usr/local/python3/
ls
make
sudo make install
cd /usr/local/python3/
ls
sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
python3 --version
sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
cd ~
ls
sudo rm -rf py3
sudo pip3 install mysqlclient
安装测试django
sudo pip3 install django
sudo ln -s /usr/local/python3/bin/django-admin /usr/bin
django-admin
cd /home/
sudo mkdir www
ls
cd www
sudo django-admin startproject mysite
sudo -y install tree
tree
sudo mv mysite root
cd root
ls
cd /mysite
# 写hello world (略)
sudo python3 manage.py migrate
sudo python3 manage.py runserver 0.0.0.0:80
此处django启动成功后,公网ip无法访问解决
iptables -F //清除预设表 (filter) 中的所有规则链中的规则
配置django项目
- 打开vs code
- 左侧最下面图标,扩展, 安装插件 搜索 sftp 下载安装,重启vs code
- ctrl+shift+p输入sftp.config
- 在sftp.json中进行配置
- 右键 同步服务器到本地
设置Nginx和uWSGI
ls
sudo pip3 install uwsgi
sudo ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
sudo yum -y install nginx
exit
iptables -F //清除预设表 (filter) 中的所有规则链中的规则
配置django项目
- 打开vs code
- 左侧最下面图标,扩展, 安装插件 搜索 sftp 下载安装,重启vs code
- ctrl+shift+p输入sftp.config
- 在sftp.json中进行配置
- 右键 同步服务器到本地
设置Nginx和uWSGI
ls
sudo pip3 install uwsgi
sudo ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
sudo yum -y install nginx
exit
- 本地vscode中配置