一、一个Linux系统
可以利用虚拟机在本地创建一个Linux系统,或者使用云服务器
1、关闭防火墙
sudo systemctl stop firewalld.service 关闭防火墙
sudo systemctl disable firewalld.service 卸载防火墙
2、下载安装相关依赖包
yum -y install openssl-devel expat-develgdbm-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libffi-devel db4-devel libpcap-devel xz-devel
二、安装python
1.安装Linux的wget工具,用于在网上下载文件
yum -y install wget (如果使用的是云服务器这一步可省去)
2. GCC编译器环境,安装python 3 时所需的编译环境
yum -y install gcc
3.正式安装python3,和pip3
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar zxvf Python-3.6.0.tgz
#解压到当前文件压
cd Python-3.6.0
# 进入文件夹
./configure --prefix=/etc/python/python3.6
# 安装到/etc/python/python3.6
make && make install
ln -sf /etc/python/python3.6/bin/python3.6 /usr/bin/python3
# 建立python3的软连接
ln -sf /etc/python/python3.6/bin/pip3.6 /usr/bin/pip3
# 建立pip3的软连接
pip3 list
查看pip3安装版本python3 -V
查看python3安装版本
三、安装mysql并设置密码
1.修改项目配置文件settings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 复制> # 配置文件
> DEBUG = False
>
> ALLOWED_HOSTS = ['*']
>
> STATIC_ROOT = os.path.join(BASE_DIR, 'static')
> # 设置数据库连接信息
> DATABASES = {
> 'default': {
> 'ENGINE': 'django.db.backends.mysql',
> 'NAME': 'music_db',
> 'USER': 'root',
> 'PASSWORD': '123456',
> 'HOST': '127.0.0.1',
> 'PORT': '3306',
> }
> }
> `与数据库信息一致`
>
2.项目文件的上传
通过SecureFXPortable软件上传项目文件和数据库文件
上传整个项目、数据库文件、python安装包、pip安装包,也可以通过网络方式下载,只是速度太慢
3.数据库文件的导入
先登陆mysql此处略,然后执行以下语句
create database music_db; 在数据库中创建一个与你想导入数据库同名的数据库
use music_db;
source /root/music_db.sql;
4、测试运行
方法一:
pip3 install django-ckeditor 下载安装ckeditor 模块
pip3 install PyMysql 下载安装PyMySQL模块
python3 -m pip install Pillow 下载安装Pillow 模块
pip3 install cryptography 下载安装cryptography模块
pip3 install django 下载安装django
pip3 install mysqlclient 下载安装sql(报错则:yum install mysql-devel)
#安装依赖包确保pip的时候不会有出错
[root@VM-0-6-centos Myblog]# vi /home/Myblog/Myblog/init.py
import pymysql
pymysql.install_as_MySQLdb()#测试运行
python3 manage.py runserver
测试成功如下图:
[root@VM-0-6-centos Myblog]# python3 manage.py runserver
Performing system checks…System check identified no issues (0 silenced).
March 14, 2021 - 05:44:25
Django version 3.1.7, using settings ‘Myblog.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
方法二:
#安装: pip install pipreqs
#在当前目录生成: pipreqs ./ –encoding=utf8 –force
#使用pip批量下载相应的模块: pip3 install -r requirements.txt
四、部署uWSGI服务器
1.在部署uWSGI前先在Linux中安装相应的模块
[root@zhou ~]# pip3 install uwsgi
ln -s /etc/python/python3.7/bin/uwsgi /usr/bin/uwsgi
#建立uwsgi的软连接
2.测试uWSGI是否能正常运行
uwsgi –http :8080 –chdir /home/Myblog -w Myblog.wsgi 浏览器输入对应的公网ip和端口号
报错信息:Internal server error
由于使用的虚拟环境中python2 3 共存,项目中的django框架需要在python3中运行,而默认使用的却是python2故会出现此问题。
解决方案:
寻找django的路径 并于uwsgi 中声明找到django路径(若有虚拟环境应在虚拟环境中运行)
pip show django|grep -i location
在uwsgi文件中添加路径[uwsgi]
pythonpath = /data/env/MyP02/lib/python3.6/site-packages
进入uwsgi所在目录cd /home/MyProject
关闭所有uwsgi进程kill -9
cat uwsgi.pid
重新启动uwsgi服务uwsgi –ini uwsgi.ini
查看uwsgi日志后访问网址,检查是否仍然报错
tail -f uwsgi.log
3.UWSGI配置文件
[root@VM-0-6-centos ~]# cat /home/Myblog/Myblog_uwsgi.ini
[uwsgi]
socket= :8080
chdir=/home/Myblog
module=Myblog.wsgi
master=true
processes=4
vacuum=true#wsgi-file=/home/Myblog/Myblog/wsgi.py
#callable=app
threads=2
pidfile=uwsgi.pid
daemonize=uwsgi.log[root@zhou music]# uwsgi –ini Myblog_uwsgi.ini 启动uwsgi服务器
五、安装Nginx
[root@zhou ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 下载nginx源
[root@zhou ~]# yum install nginx 安装nginx
可输入
systemctl start nginx
启动nginx,查看是否能正常访问 浏览器输入对应的公网ip和端口号#如果报错可查看日志
tail -f /var/log/nginx/error.log
1.配置nginx文件
[root@zhou ~]# cd /etc/nginx/conf.d/
[root@zhou conf.d]# vi Myblog.conf #以下配置手打不要直接复制!!!#设置项目music的Nginx服务器配置
server {
listen 8090;
server_name 127.0.0.1;
charset utf-8;client_max_body_size 75M;
#配置媒体资源文件
location /media {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/Myblog/media;
}#配置静态资源文件
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/Myblog/static;
}#配置uWSGI服务器
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
uwsgi_read_timeout 2;
}location = /favicon.ico {
log_not_found off;
access_log off;
}}
2.启动项目
[root@zhou conf.d]# cd /etc/nginx/
[root@zhou nginx]# sudo nginx -c nginx.conf
[root@zhou nginx]# sudo nginx -s reload
[root@zhou nginx]# cd /root/music
[root@zhou music]# uwsgi –ini Myblog_uwsgi.ini
注:
ps -ef | grep uwsgi
pkill -9 nginx 关闭nginx进程
kill -9 pid 杀进程
shutdown -r now 立刻重启
1 | 复制# 端口进程查看 |