django+uwsgi+nginx+sqlite3部署+screen

note:可經過該命令查找文件未知html

sudo find / -name filenamepython

 

一:項目(github) nginx

 ssh root@server ip               #  鏈接你的服務器git

 git clone -b https://mygithub.com     #  -b 指定分支github

安裝virtualenv及配置環境變量     詳細見:http://www.javashuo.com/article/p-zdsethda-hb.htmlsql

mkvirtualenv envname -p python3 # 建立項目使用的python版本的虛擬環境,建立成功默認回進入該虛擬環境
pip install -r requirements.txt  # 安裝項目依賴
python manage.py runserver  # 保證項目可以運行

 note:!!!數據庫

使用數據庫爲sqlite3可能會出現以下錯誤: django.db.utils.NotSupportedError: URIs not supported 應該修改根據錯誤提示的路徑下的base.py文件 if self.features.can_share_in_memory_db: kwargs.update({'uri': True})  # 將此處的True改成False
        return kwargs

二:配置uwsgidjango

pip install uwsgi   # 安裝服務器

在項目根目錄建立 uwsgi.ini 名字自取ssh

[uwsgi] # 取決於nginx配置 upstream
socket          = 127.0.0.1:9000 socket = 127.0.0.1:9001
# 項目根目錄
chdir           = /home/jason/projectName# Django的wsgi文件
module       = projectName.wsgi # Python虛擬環境的路徑
home            = /home/user/.virtualenvs/envname/bin/python # 進程相關的設置 # 主進程
master          = true # 最大數量的工做進程
processes       = 1  # 感受跟服務器cpu有關,反正我單核設置成2就會致使瀏覽特別慢
# 設置socket的權限
chmod-socket    = 666
# 退出的時候是否清理環境
vacuum          = true # 靜態文件 絕對地址
static-map = /static=/home/user/projectName/static

三:nginx 配置

安裝nginx    詳情:http://www.javashuo.com/article/p-cqapzoiq-gx.html

配置環境變量,編輯/etc/profile 增長以下內容: NGINX_HOME= /usr/local/nginx export PATH=$PATH:$NGINX_HOME/bin source /etc/profile   # 重啓配置信息
mkdir conf.d  # 在nginx.conf目錄下建立文件
cd conf.d  # 進入
touch project.conf  # 建立nginx配置文件,配置此項目的配置信息
在nginx.conf中的http塊的最後面, include usr/local/nginx/conf/conf.d/project.conf # 將該配置文件加載到nginx.conf配置中
nginx -s reload # 重啓nginx服務 若是沒有權限,切換爲root用戶重啓
upstream anyname { server 127.0.0.1:9000 weight=3; # 兩臺服務器 與 wsgi配置相關 weight=3, 9000端口處理3個請求,9001處理第四個請求。以此循環 server 127.0.0.1:9001; } # 配置服務器
server { # 監聽的端口號,經過服務器ip監聽的端口
    listen      80; # 域名 or ip
    server_name your server ip; charset utf-8; # 最大的文件上傳尺寸
 client_max_body_size 75M; # 靜態文件訪問的url, nginx再次加載靜態文件
    location /static { # 靜態文件地址
        alias /home/user/projectName/static; } # 最後,發送全部非靜態文件請求到django服務器
    location / { include uwsgi_params;
# uwsgi_pass 127.0.0.1:9000; # uwsgi.ini 的socket參數相同 or
uwsgi_pass anyname; # upstream anyname
     uwsgi_param UWSGI_SCRIPT projectName.wsgi; # wsgi.py文件
     uwsgi_param UWSGI_CHDIR /home/user/projectName; # 指定項目目錄
     index index.html index.html;
     client_max_body_size 35m; } }

四:啓動uwsgi

uwsgi --ini uwsgi.ini

 

就能夠經過 服務器域名或ip訪問了

可是這樣會有個問題,斷開ssh鏈接,改進程也就被kill了。爲此,咱們可使用screen

 

五:  screen

yum install screen

出現該錯誤:

Error downloading packages: ...

執行 : yum clean all, 再重yum ...  我就ok了。

 經常使用命令:

screen -S qugemingzi  # 建立會話窗口,並取名
Ctrl+a+d  # 暫時退出窗口
exit # 結束會話
screen -r qugemingzi # -r + name回到以前的窗口 查看會話列表: screen -ls 恢復以前離開的會話:screen -r 會話名或進程號 清除dead狀態的會話:screen -wipe 啓動一個開始就是Detached狀態的會話:screen -dmS 名字 命令

 1.建立一個會話窗口:screen -S name

2.在次窗口中運行第四不命令: uwsgi --ini uwsgi.ini

3. 將該會話掛起: Ctrl + a + d 

這樣斷開ssh 鏈接,也不會中斷進程了。。。

 

 

 

perfect...

相關文章
相關標籤/搜索