进入Linux系统后:
初始操作。
apt-get update 先更新
更新软件源
apt-get install software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt-get update 再更新一次
apt-get install python3.7 下载python
————————————————————————————————————————
建立软连接:
cd /usr/bin
rm python
ln -s python3.7 python
ln -s python3.7 python3
————————————————————————————————————————
安装pip
curl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pip
注意python版本
乌邦图14,建议安装3.6(https://editor.csdn.net/md/?articleId=108323228)
这里最新插一句,乌邦图14就是垃圾。早换早享受,别被过时的服务器折磨。
————————————————————————————————————————
下载虚拟环境
pip install virtualenv
配置虚拟环境
选择文件夹,建立虚拟环境:
virtualenv -p /usr/bin/python3.7 mysite (# -p参数指定Python解释器程序路径)
开启
source mysite/bin/activate
退出命令
deactivate
安装git
apt-get install git
————————————————————————————————————————
克隆代码
git clone (github地址)
进入克隆下来的文件夹,下载依赖库
pip install -r requirements.txt
————————————————————————————————————————
安装mysql
(数据库配置完记得migrate和收集静态文件。python manage.py collectstatic)
安装mysqlclient 报错:
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
apt-get install libmysqlclient-dev
下载mysql(https://dev.mysql.com/downloads/)apt资料库找到下载链接
这里注意版本号
wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb 下载
dpkg -i mysql-apt-config_0.8.15-1_all.deb 安装
apt-get install mysql-server下载server
卸载:Use ‘apt autoremove’ to remove them.
https://dev.mysql.com/downloads/mysql/(多版本选择)
但可能是乌邦图14版本的问题,最新版MySQL会报错。选择旧版可以操作:
dpkg -i mysql-apt-config_0.8.10-1_all.deb
dpkg -i mysql-apt-config_0.8.15-1_all.deb
然后对数据库进行操作。参考博客(http://yshblog.com/blog/194)
创建数据库,创建用户,赋予权限。
CREATE DATABASE 你的数据库名称 DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;
CREATE USER ‘你的用户名’@‘localhost’ IDENTIFIED BY ‘你的密码’;
GRANT ALL PRIVILEGES ON 你的数据库名.* TO ‘你的用户名’@‘localhost’;
FLUSH PRIVILEGES;
数据库生成sql文件
mysql -u '用户名‘ -p 数据库名 > data.sql
退出到上一层目录,将文件传到服务器
scp data.sql root@192.168.1.1:/home/data.sql
传输命令 + 文件名 +服务器用户名及ip +传入后存放位置
scp -r 本地文件夹
登录数据库,导入数据文件
source data.sql;
————————————————————————————————————————
把settings.py已同样的方式传到指定位置。
scp settings.py root@192.168.1.1:/home/data.sql
迁移数据库,python manage.py migrate
如果报错:django:MySQL Strict Mode is not set for database connection ‘default’
添加:
‘OPTIONS’: {
“init_command”: “SET sql_mode=‘STRICT_TRANS_TABLES’”,
}
原博客(https://www.cnblogs.com/shengulong/p/10105248.html)
————————————————————————————————————————
uwsgi Nginx部署
先下载呗。
sudo apt-get install Nginx
pip install uwsgi
pip install 和 apt-get install 区别。从pypi源下载和从Ubuntu源下载。
如果安装uwsgi报错,则需要安装一个依赖。
apt-get install libpython3.x-dev 选择对应3.x版本
教程地址(https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html)
————————————————————————————————————————
测试一下:
nginx 测试
nginx -t 命令检测配置是否成功。
sudo service nginx start 命令执行后,就可以输入ip得到欢迎页面。即成功!
uwsgi测试
创建一个测试文件test.py。可以选择在home目录下。
uwsgi --http :8000 --wsgi-file test.py 测试命令 需要在服务器管理界面打开相应端口。8000或者8001/8011等等都可以。
如果测试报错,可以:
(现在发现,配置和命令不出错的话,应该是没问题的。出错了检查一下配置,或者重新卸载来一遍,大概率会修正这个错误。)
pip install uwsgi-plugin-python
然后测试命令中间加插件声明:
uwsgi --http-socket :8001 --plugin python --wsgi-file test.py
参考链接(https://blog.csdn.net/persistencequxi/article/details/80773676)
————————————————————————————————————————
配置文件
uwsgi配置:
选择目录存放uwsgi配置。例如:
home目录下新建:mysite_uwsgi文件夹 创建mysite.ini文件。
原up主配置中有uid和gid 分别= 1000/2000。这里删除掉这两条才不报错。如果部署的时候uwsgi出现问题,server error。调整这里的配置就好了。
可使用 nginx -t 进行配置检查。
- Django文档:(https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/uwsgi/)
- uwsgi文档:(https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html)
Nginx配置
进入目录:cd /etc/nginx/sites-available/
默认有个default文件。新建一个xxx.conf文件进行配置。例如:
新建mysite.conf 。 涂抹的地方是ip。
————————————————————————————————————————
启动
启动uwsgi
uwsgi --chdir /home/show-/ --home /home/mysite --http :8011 --module mysite.wsgi:application
配置完的启动命令:uwsgi --ini /home/mysite_uwsgi/mysite.ini
————————————————————————————————————————
关闭uwsgi
ps -aux | grep uwsgi |awk ‘{print $2}’ |xargs kill -xxx
uwsgi --stop /home/mysite_uwsgi/master.pid
————————————————————————————————————————
查看进程(过滤器)
ps -aux |grep uwsgi
查看进程 过滤 找到uwsgi
只显示一个进程说明失败了,显示多个才是成功。
————————————————————————————————————————
重启服务
nginx -s reload
service nginx restart
uwsgi --reload /home/mysite_uwsgi/master.pid
————————————————————————————————————————
Nginx日志路径
/var/log/nginx
————————————————————————————————————————
注意!!!
不要忘了在控制台开启端口。测试用到哪个端口就开启哪个端口,80端口别忘了开!
数据库配置完记得migrate和收集静态文件。python manage.py collectstatic
settings安全问题可以参考(https://blog.csdn.net/m0_47812755/article/details/108450478)
————————————————————————————————————————
白嫖的Ubuntu14真lj