Django 上線部署 nginx +uswgi
阿新 • • 發佈:2018-12-15
使用上傳檔案軟體連線阿里雲伺服器公網IP
在root根目錄下找到var在裡面新建一個www檔案目錄,把自己的專案傳進去,本次傳的是部落格專案
先更新一下:apt-get update 安裝git:apt-get install(不安裝無法下載虛擬環境的pyenv)
安裝編輯器:apt-get install vim
安裝資料庫:apt-get install mysql-server (需要輸入資料庫密碼)
apt-get install libmysqlclient-dev
安裝redis : sudo apt-get install redis-server
安裝nginx:apt-get install nginx
安裝虛擬開發環境
pyenv是一個Python版本管理工具,它能夠進行全域性的Python版本切換,也可以為單個專案提供對應的Python版本。使用pyenv以後,可以在伺服器上安裝多個不同的Python版本,也可以安裝不同的Python實現。不同Python版本之間的切換也非常簡單。pyenv官方地址https://github.com/pyenv/pyenv-installer 安裝pyenv,在命令列下鍵入:
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
#預設安裝到當前使用者的工作目錄下的.pyenv,我們可以檢視一下 cd ~ ls -la 將安裝路徑寫入~/.bashrc 將以下三條語句寫入 ~/.bashrc (每個人的都不一樣,上面安裝後最後出現的三句話就是)
sudo vim .bashrc
跳到檔案末端
shift+G
按o
export PATH="/home/zhu/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
按esc
按 :x
source ~/.bashrc #配置立刻生效 $echo $PATH #如果路徑第一個結尾是shims則表示成功/home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims :/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin :/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 更新一下 pyenv update 列出pyenv中所有可用的python版本 pyenv versions
可以看到系統沒有任何編譯工具,我們需要下載python
安裝python ```shell #1.在安裝python之前,我們必須要安裝python所需要的依賴包,這個必須要安裝,安裝會失敗的: $ sudo apt-get install libc6-dev gcc $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm #2. 安裝python $ pyenv install 3.6.6 -v #-v 以日誌模式顯示安裝過程 #因為pyenv會自動到github上下載,速度超慢,所以一般會選擇使用curl或者wget下載到~/.pyenv/cache下,然後再用pyenv安裝,下面是可選的安裝模式 $ cd ~/.pyenv $ sudo mkdir cache $ wget -c http://mirrors.sohu.com/python/3.6.6/Python-3.6.6.tar.xz -P ~/.pyenv/cache/ $ pyenv install 3.6.6 -v(一定要用這個安裝python) #3.更新pyenv資料庫 $ pyenv rehash #4.列出所安裝的python版本 $ pyenv versions #5.切換python版本 $ pyenv global 3.6.6 #6.驗證版本 $ python ```
安裝virtualenv(可選) 如果是python3以上,安裝完pyth就已經安裝了virtualenv,就不用安裝了 ~~~ #安裝 $ pip install virtualenv #或者,如果提示版本不匹配,可以使用--upgrade引數 $ sudo pip install --upgrade virtualenv ~~~ - 使用virtualenv建立專案的虛擬環境 **一個專案建立一個virtualenv的虛擬環境**,在這個環境中,可以用pip安裝專案所需的庫,不會影響其他專案。切記一個專案一個虛擬環境,否則可能會發生莫名的錯誤。 ~~~ #1.首先建立專案目錄 $ sudo mkdir -p myproject/blog cd myproject/blog #2.建立專案的虛擬環境 #用法:pyenv virtualenv python版本號 虛擬環境名 $ pyenv virtualenv 3.6.6 env3.6.6 #注意版本號必須是已經安裝的,否則會報錯 #3.切換到虛擬環境 [email protected]:/myproject/blog$ pyenv activate env3.6.6 (env3.6.6) [email protected]:/myproject/blog$ # (env3.6.6)表示該專案處於虛擬環境中 #驗證 (env3.6.6) [email protected]:/myproject/blog$ python Python 3.6.6 (default, Mar 29 2018, 10:33:37) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. #4. 切出虛擬環境 (env3.6.6) [email protected]:/myproject/blog$ pyenv deactivate env3.6.6 ~~~
切換到你上傳的專案目錄
cd /var/www/django_blog
如果你沒有退出虛擬環境就不用切換了,如果退出了就重新啟用
pyenv activate env3.6.6
pip install django==1.11.16
pip install pymysql pip install pillow pip install django-tinymce 插入你所有需要的包,不然最後會有報錯
這些是我需要的包
pip install uwsgi
編輯uwsgi配置檔案
sudo vim uswgiconf.ini
[uwsgi] socket = 0.0.0.0:8000 # uwsgi的監聽埠 # 指向專案根目錄 chdir = /var/www/django_blog # wsgi.py所在位置 wsgi-file = django_blog/wsgi.py module = django_blog.wsgi # 虛擬開發環境位置(一定要改成你自己的虛擬環境目錄) virtualenv = /root/.pyenv/versions/env3.6.6 master = true #處理器數 processes = 1 # 執行緒數 threads = 4
#啟動一下看看有沒有報錯
uwsgi uswgiconf.ini
可以看一下下面是沒有報錯的
然後ctrl +c結束程式配置nginx
新建並配置 sudo vim /etc/nginx/sites-available/myblog 配置內容 server { listen 80; server_name www.olnyou.cn;(你自己的域名) location / { uwsgi_pass 127.0.0.1:8000; include uwsgi_params; uwsgi_param UWSGI_SCRIPT django_blog.wsgi; uwsgi_param UWSGI_CHDIR /var/www/django_blog; } location /static { alias /var/www/django_blog/static/;(靜態檔案位置) } }
cd /etc/nginx/sites-enabled/ ln -s ../sites-available/myblog myblog#建立軟連線 ll 如下圖沒有飆紅證明沒有問題
#重啟nginx
service nginx restart
最好把你的資料庫也上傳上來,後面要用到
上傳阿里雲簡訊驗證,先給他建一個檔案目錄,如下圖
cd cd duanxinyanzheng/dysms_python ls python setup.py install
mysql -uroot -p
輸入密碼
建立你自己的資料庫
create database blog;
exit
找到你的資料。進行資料恢復
mysql -uroot -p blog2 <blog2.sql
切換到你的專案目錄
cd /var/www/django_blog/
啟動uwsgi
uwsgi uswgiconf.ini
現在登入你的網址就可以訪問了,有不懂的歡迎交流。