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