服务器部署python项目

使用pycharm同步代码到服务器
安装virtualenv及扩展包:

pip install virtualenv
pip install virtualenvwrapper

使用pip命令查看是否安装完成:pip list
如果virtualenv命令不能使用,可能是环境变量有问题,配置环境变量

vim /etc/profile
# 将下面内容添加到文件的最下面
PATH=$PATH:/usr/local/python3/bin

#是添加的进行生效命令
source /etc/profile

# 最后查看是否添加成功
echo $PATH

基本问题解决,进入虚拟环境目录,运行命令激活虚拟环境

source bin/activate

复制开发环境的环境变量

pip freeze >requirements.txt #开发本地生成requirements.txt
pip install -r /opt/flask2/requirements.txt #服务端还原依赖 

更新sqlite3
下载新版sqlite

# 下载源码
wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
# 编译
tar zxvf sqlite-autoconf-3290000.tar.gz 
cd sqlite-autoconf-3290000/
./configure --prefix=/usr/local
make && make install

# 替换系统低版本 sqlite3
mv /usr/bin/sqlite3  /usr/bin/sqlite3_old
ln -s /usr/local/bin/sqlite3   /usr/bin/sqlite3

安装新版sqlite后,重新编译python3.6
我用的是 python3.6.3对应下载地址是:wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
解压后重新编译

./configure LDFLAGS="-L/sqlite安装地址/lib" CPPFLAGS="-I/sqlite安装地址/include" --prefix=python3安装地址
make
make install

使用

python manage.py runserver 0.0.0.0:8000
uwsgi --http :8000 --module blog.wsgi

测试项目是否能够正常启动,如果能正常启动,添加nginx配置文件
安装uwsgi服务并使用ini方式启动,配置文件如下
uwsgi.ini:

[uwsgi]
socket = 127.0.0.1:8000
module = xxx.wsgi
master = true
#vhost = true
#no-site = true
workers = 2
reload-mercy = 10
vacuum = true
max-requests = 1000
limit-as = 512
buffer-size = 30000
pidfile = uwsgi.pid
daemonize = uwsgi.log

nginx.config:

server{
       listen 80;
       server_name 127.0.0.1;
       location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
            uwsgi_param UWSGI_SCRIPT xxx.wsgi;
            uwsgi_param UWSGI_CHDIR 项目地址;
            index  index.html index.htm;
            client_max_body_size 35m;
       }
       location /static {
            alias 项目静态文件地址;
       }
}

关于django静态文件
配置setting.py文件STATIC_ROOT为静态文件的绝对路径
使用python manage.py collectstatic收集静态文件
部署时debug = False后项目不能找到静态文件,需要配置urls.py
添加引入:

from django.views import static
from django.conf import settings
from django.conf.urls import url
urlpatterns = [
    /*项目原有路由*/
    url(r'^static/(?P.*)$', static.serve,
      {'document_root': settings.STATIC_ROOT}, name='static')
]

完工

你可能感兴趣的:(学习)