linux部署Django项目

linux部署Django项目

一、虚拟环境

1.更新依赖包

CentOS或者Red Hat系统:

yum -y install gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel

Ubuntu或者Debian系统:

apt-get update

apt-get install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
2.下载python3

在/usr/local下创建一个python3文件夹,然后执行:

cd /usr/local/python3
wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz
3.解压python3并安装

解压的文件

tar -zxvf Python-3.11.5.tgz

配置编译环境

cd Python-3.11.5
./configure --prefix=/usr/local/python3/Python-3.11.5 --with-ssl

./configure --enable-optimizations

编译并安装

make && make install
4.创建软链接

创建软链接方便使用Python3和pip3命令

ln -s /usr/local/python3/Python-3.11.5/python /usr/bin/py3115

升级linux环境依赖

创建虚拟环境

cd /www/wwwroot/myweb

py3115 -m venv venv

5.运行项目

将代码上传到Linux服务器

在项目的配置文件settings.py文件中修改静态文件路径

STATIC_ROOT = ‘/var/www/django-blog/static/’

py3115 manage.py runserver

二、非虚拟环境

1.更新环境依赖

CentOS或者Red Hat系统:

sudo yum update

Ubuntu或者Debian系统:

sudo apt update

由于强哥安装的centos自带的python是3.6.8。django等依赖需要降低版本。

# requirements.txt
asgiref==3.4.1
Django==3.2.21
Pillow==8.4.0
sqlparse==0.4.3
tzdata==2022.7

由于强哥使用的博客数据库是sqlite3,服务器sqlite版本需要升级。

#下载
wget https://www.sqlite.org/snapshot/sqlite-snapshot-202309111527.tar.gz
#解压
tar -zxvf sqlite-snapshot-202309111527.tar.gz
cd sqlite-snapshot-202309111527/
#编译
./configure --prefix=/usr/local/sqlite
make && make install
#添加软链接
ln -s /usr/local/sqlite/bin/sqlite3 /usr/bin/sqlite3
#修改共享库,添加到/etc/profile的最后一行
vim /etc/profile
export LD_LIBRARY_PATH="/usr/local/sqlite/lib"
source /etc/profile

切换到博客目录

cd /xxx/mysite

python3 manage.py runserver

2.安装uwsgi
  • linux-CentOS安装uwsgi

sudo yum install python3-dev

sudo yum install python3-pip

sudo pip3 install uwsgi

  • linux-ubuntu安装uwsgi

sudo apt-get install python3-dev

sudo apt-get install python3-pip

sudo pip3 install uwsgi

3.在博客目录新建deploy文件夹

创建uwsgi.ini

mkdir deploy

cd deploy

touch uwsgi.ini

vim uwsgi.ini

三、后台运行

1.后台运行

python3 your_script.py & disown

nohup python3 your_script.py &

2.结束运行:

ps aux | grep “python3 manage.py”

kill -9 12345

3.查看端口占用

netstat -tuln | grep 8080

你可能感兴趣的:(linux,django,运维)