安装相关软件
- 安装uwsgi
pip install uwsgi
- 安装mysql
如果出现报错,更新下apt-get以后在安装sudo apt-get install mysql-client mysql-server
通过sudo netstat -tap | grep mysql
来查看是否安装成功 - 安装nginx
sudo apt-get install nginx
数据库相关(mysql)
- 导入数据库
把在本地生成的数据库内容先通过navicat导出,然后再通过下面命令导入到数据库中去。
(但是,一般我不用,我都是直接在里面新建,完了利用migrations和migrate建表)
source ~
- 开启数据库
service mysql start
- 查看数据库状态
service mysql status
- 关闭数据库
service mysql stop
- 重启服务器
service mysql restart
- 关于 mysql安装后,修改密码问题
- 先进入
sudo cat /etc/mysql/debian.cnf
查看密码,用来登录mysql - 再输入以下指令
mysql -u debian-sys-maint -p
密码为上一步复制的 - 修改密码
use mysql; update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost'; //root位置为要修改的密码 update user set plugin="mysql_native_password"; quit;
- 重启数据库
sudo service mysql restart
- 先进入
- 如果要远程访问mysql,比如使用navicat连接的话,需要将root的访问权限改成%。或者新建一个用户。
- 修改root权限
update user set host = '%' where user = 'root';
- 添加一个新的用户
grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';
- 打开mysql配置文件vi /etc/mysql/mysql.conf.d/mysqld.cnf 将bind-address = 127.0.0.1注销
- 修改root权限
uwsgi相关
- uwsgi配置说明
- chdirc WSGI : 应用目录
- module WSGI : 应用的模块名字
- processes uWSGI : 进程数
- socket : 套接字路径地址
- max-requests : 最大并发请求数
- vacuum : 清理环境配置
- 命令行方式启动(一般不使用)
uwsgi --chdir 位置--socket :80 --max-requests 5000 --processes 4 --module 应用名.wsgi
- 配置文件启动
- 创建配置文件uwsgi-demo.ini
[uwsgi] chdir = /xxx/xx http-socket = :80 max-requests = 5000 processes = 4 module = xxx.wsgi
- 创建两个文件夹
- mkdir log
- mkdir pid
- 启动
uwsgi --ini uwsgi-demo.ini
- 举例
[uwsgi] # 项目的路径 chdir =/home/ubuntu/project/sign # Django的wsgi文件 module =sign.wsgi http-socket = :8000 master = True processes = 4 threads = 1 vacuum = true #backend run uwsgi daemonize = %(chdir)/log/uwsgi-8000.log log-maxsize = 1024*1024*1024 pidfile = %(chdir)/pid/uwsgi-8000.pid
- 相关命令
- 停止服务 uwsgi --stop pid/uwsgi-8000.pid
- 查看端口服务 lsof -i:端口号
- 杀死进程 kill -9 id号
- 注意事项
- 修改setting.py中的allowdhost改为["*"]
nginx相关
- 配置
- /etc/nginx/ (服务器的配置文件)
- 说明
里面很多的文件,我一般直接对nginx.conf 进行修改,不过据说规范化的不是这样! - 关键配置模块
events配置域 - 网络连接相关配置
server 配置域 - 相关服务节点配置
location配置域 - 资源路由配置
http配置域 - nginx作为网页服务器时的配置
upstream配置域
- 说明
- 举例
- 在http{}中创建一个server节点
http{ upstream uwsgi { server 127.0.0.1:8000; } server { listen 80; # 监听的端口号 server_name .yuedongschool.xyz; # 域名 charset utf-8; access_log /var/log/nginx/nginx-uwsgi.log; # 最大的文件上传尺寸 client_max_body_size 75M; location / { proxy_pass http://uwsgi; } #静态文件配置:将静态文件全部放入static文件加下,访问/static文件内容时等同于访问下述文件夹的内容,alias代表绝对路径 location /static { alias /web/django/JansXin/static; } } }
- /etc/nginx/ (服务器的配置文件)
- 收集静态文件,完成静态文件寻址配置
- 在setting.py中指定静态文件目录
STATIC_ROOT = os.path.join(BASE_DIR,'static/')
- 收集
python manage.py collectstatic
- 在setting.py中指定静态文件目录
- 相关命令
- sudo nginx
- sudo nginx -s stop
- sudo nginx -s quit
- sudo nginx -s reload
- sudo nginx -s reopen
- 查看进程 ps -aux | grep nginx
https相关
- 申请ssl证书(选择文件验证)
- 配置
-
在/etc/nginx下创建ssl
-
修改server中的listen 443 ssl;
-
指定ssl的路径
-
在server中添加
ssl_certificate /etc/nginx/ssl/1_yuedongschool.xyz_bundle.crt; ssl_certificate_key /etc/nginx/ssl/2_yuedongschool.xyz.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
-
修改配置文件
- 添加一个server
server { listen 80; server_name .yuedongschool.xyz; return 301 https://yuedongschool.xyz$request_uri; }
- 添加一个server
-
demo
server { listen 443 ssl; server_name .yuedonschool.xyz; charset utf-8; access_log /var/log/nginx/nginx-uwsgi.log; ssl_certificate /etc/nginx/ssl/1_yuedongschool.xyz_bundle.crt; ssl_certificate_key /etc/nginx/ssl/2_yuedongschool.xyz.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { proxy_pass http://uwsgi; } location /static { alias /home/ubuntu/project/sign/static; } }
-
其他
- 修改apt的源
- 查看源
sudo vim /etc/apt/sources.list
- 重命名原来的源作为备份
sudo mv /etc/apt/sources.list sources.list_backup
- 新建一个sources.list文件
sudo vim /etc/apt/sources.list
#deb http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted #deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates main restricted #deb http://cn.archive.ubuntu.com/ubuntu/ xenial universe #deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates universe #deb http://cn.archive.ubuntu.com/ubuntu/ xenial multiverse #deb http://cn.archive.ubuntu.com/ubuntu/ xenial-updates multiverse #deb http://cn.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse #deb http://security.ubuntu.com/ubuntu xenial-security main restricted #deb http://security.ubuntu.com/ubuntu xenial-security universe #deb http://security.ubuntu.com/ubuntu xenial-security multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
- 更新源
sudo apt-get update sudo apt-get upgrade
- 修改DNS
- 查看源
- 安装mysql
sudo apt-get install mysql-server libmysqlclient-dev libmysqld-dev
- 安装mysql-python报错
- 可以用mysql_connector_python包替换
- 查看python2.7的版本是否为2.7.15
- 同步Python包
pip freeze > requirements.txt
pip install -r requirements.txt