服務器部署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<path>.*)$', static.serve,
      {'document_root': settings.STATIC_ROOT}, name='static')
]

完工

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章