操做系統:CentOS 6.8 x64
html
Python:3.6.8
(安裝目錄在/usr/local/python3
)python
pip:18.1
mysql
virtualenv:16.4.0
(當前適合該系統的最新版本,當前2019.02.20)nginx
咱們用來存放咱們編寫的項目代碼的目錄:/site/project
c++
咱們用來存放虛擬環境的目錄:/site/venv
sql
yum -y install gcc gcc-c++ openssl-devel zlib-devel pcre pcre-devel ncurses-devel
略數據庫
# 下載Python3.6的源碼包 wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz # 解壓並進入源碼目錄 tar zxvf Python-3.6.8.tgz cd Python-3.6.8 # 編譯安裝 ./configure --prefix=/usr/local/python3 make && make install
安裝完後的python3的根目錄在/usr/local/python3
下,咱們能夠經過使用軟鏈接的形式讓python3和pip3命令直接使用django
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
檢驗Python的版本:vim
python -V python3 -V
該模塊能夠用來創建一個獨立的虛擬python環境(建立隔離的Python環境)。python3.x
使用pip3安裝,默認會安裝到當前使用的python的模塊目錄中。(也能夠直接用pip安裝,可是Centos6默認環境不帶pip,須要自行安裝pip):
# 這裏臨時使用了豆瓣的鏡像源 pip3 install virtualenv -i https://pypi.douban.com/simple/
建立軟鏈接(若是使用pip安裝的能夠不用這一步)
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
查看virtualenv版本
virtualenv --version
指定python解釋器建立項目虛擬環境,咱們這裏使用剛剛安裝的python3,假如咱們要建立的虛擬環境叫ss
# 執行完會在當前目錄建立一個ss的目錄 cd /site/venv virtualenv -p /usr/bin/python3 ss
執行完上面的命令,將會在當前的目錄中建立一個名ss
的文件夾,這是一個獨立的python運行環境,包含了Python可執行文件, 以及 pip庫的一份拷貝,同時已經安裝到系統Python環境中的全部第三方包都不會複製過來,這樣,咱們就獲得了一個不帶任何第三方包的「乾淨」的Python運行環境了。
激活(進入)ss
虛擬環境
source ss/bin/activate
退出當前虛擬環境
deactivate
退出虛擬環境後,使用的python相關的命令都是系統默認的命令。退出deactivate前執行的進程,在退出後會繼續執行。
<!--### virtualenvwrapper (選用)-->
<!--`virtualenvwrapper` 是一個基於virtualenv之上的工具,它將全部的虛擬環境統一管理。是`virtualenv`的擴展管理包,用於更方便管理虛擬環境,它能夠作:-->
<!--1. 將全部虛擬環境整合在一個目錄下-->
<!--2. 管理(新增,刪除,複製)虛擬環境-->
<!--3. 切換虛擬環境-->
<!--```-->
<!--# 安裝-->
<!--pip3 install virtualenvwrapper -i https://pypi.douban.com/simple/-->
<!--```-->
<!--配置`virtualenvwrapper`:-->
<!--打開當前用戶的環境變量配置文件(其它系統可能名字略有不一樣):-->
<!--```-->
<!--vim ~/.bash_profile-->
<!--```-->
<!--而後在裏面添加一下內容:-->
<!--```-->
<!--# 指定虛擬環境保存的目錄-->
<!--export WORKON_HOME=$HOME/.virtualenvs-->
<!--# virtualenvwrapper默認安裝在python解釋器中的site-packages,實際上須要運行virtualenvwrapper.sh文件才行-->
<!--# 每次要想使用virtualenvwrapper 工具時,都必須先激活virtualenvwrapper.sh-->
<!--# 這個路徑根據您安裝的路徑不一樣會不同,須要你肯定virtualenvwrapper.sh的真實路徑-->
<!--source /usr/local/python3/bin/virtualenvwrapper.sh-->
<!--```-->
<!--讓咱們剛剛配置的信息生效-->
<!--```-->
<!--source ~/.bash_profile-->
<!--```-->
咱們這裏的Django項目叫:ky
其實咱們只須要上傳:項目的配置目錄以及各應用的目錄便可,數據庫建議從測試環境導入到線上環境(固然使用數據遷移也能夠)
咱們這裏爲了簡單,就全目錄上傳了
上傳步驟:(略)
上傳後的項目根目錄爲:/site/project/ky
上傳後須要將項目的配置文件這幾個地方修改一下:
DEBUG = False ALLOWED_HOSTS = ['*']
# 查看測試環境安裝的模塊信息 pip3 freeze > requirements.txt # 線上環境:從文件中讀取要安裝的模塊並執行安裝 pip3 install -r requirements.txt
pip3 install uwsgi
定義測試文件test.py,編寫內容:
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"]
使用uwsgi運行測試文件,執行以下命令:
uwsgi --http :8000 --wsgi-file test.py
嘗試您的url可否正常訪問:
# example.com換成您的域名或者服務器ip http://example.com:8000
打開配置文件
vim /usr/local/nginx/conf/nginx.conf
配置虛擬機
server { listen 80; server_name localhost; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } }
而後重啓nginx:/usr/local/nginx/sbin/nginx -s reload
在項目的根目錄(/site/project/ky
)建立配置文件:uwsgi.ini
,而後在裏面添加以下內容:
[uwsgi] #項目的根目錄 chdir = /site/project/ky #項目的對接wsgi.pi文件 #module = ky.wsgi module = ky.wsgi:application #項目執行的變口號,和nginx配置的要一致 socket = 127.0.0.1:8000 #是否以主進程模式容許 master = true #開啓的工做進程數量 processes=4 #日誌文件路徑,前提是該文件要存在,且可寫 daemonize = /site/project/ky/run.log #表示不記錄正常信息,只記錄錯誤信息,不然你的日誌可能很快就爆滿 disable-logging = true #當服務器退出的時候自動清理環境 vacuum = true #進程信息文件路徑(這裏指項目的根目錄) pidfile=%(chdir)/uwsgi.pid
配完就能夠運行起uwsgi了:
uwsgi --ini uwsgi.ini # 關閉uwsgi uwsgi --stop ./uwsgi.pid # 重啓 uwsgi --reload ./uwsgi.pid
而後訪問咱們的網站就能夠了,不過以上配置雖然能夠,可是咱們其實並不須要使用django本身來處理靜態文件,其實咱們徹底可讓nginx爲咱們處理,效率更高。下面咱們針對網站的靜態資源進行配置。
若是使用Nginx處理靜態資源,咱們最好使用統一目錄管理咱們的Django靜態資源。
修改nginx配置
# 其實就是讓靜態資源的請求在nginx層面就被響應了 # 在Nginx配置中增長一段配置就能夠了(這個靜態文件的路徑根據各個項目可能有所不一樣) location /static { alias /site/project/ky/static; }