linux下搭建django記錄筆記,未完稿,節後繼續
使用ECS服務,有時需要更新apt-get,故先要先執行第一步 使用:SSH連線
1:更新apt-get
#sudo apt-get update
當用apt-get更新軟體包時常出現錯誤提示Unable to locate package update, 尤其是在ubuntu server上,解決方法是: 先更新apt-get #sudo apt-get update 執行完後,問題就解決了。 繼續更新: #sudo apt-get upgrade
2.安裝Django
(這裡使用的是pip,當然easy_install也是可以的)
sudo pip install django==1.9
3.安裝 Nginx
更新後才有效
sudo apt-get install nginx
報錯形式:http://maizime.top/
4.安裝 uwsgi
sudo apt-get install uwsgi
可以通過下面命令,檢視 Linux環境下,怎麼確定Nginx是以那個config檔案啟動的?
輸入命令列: ps -ef | grep nginx
master process 後面的就是 nginx的目錄
怎麼檢視伺服器上安裝的nginx版本號,主要是通過ngix的-v或-V選項,檢視方法如下圖所示:
5.建立個Django專案+app
python django-admin.py startproject cloud_shield cd cloud_shield python manage.py startapp cloud_proxy
檢測nginx執行狀態:(V大寫會顯示版本號和模組等資訊、v小寫僅顯示版本資訊。)master process為其所在路徑
檢測版本
安裝python 3虛擬環境:安裝 python3-venv 用 virtualvenvwrapper 建立的虛擬環境裡 既有 py2 還有 py3 ,pip啥的也是亂七八糟的,有髒東西,改用 python3 自帶的 venv 建立純淨的,只有 python3 ,pip也只對應 python3 的虛擬環境
建立虛擬環境 ,kmind為虛擬環境所在的資料夾的名稱
kmind/bin 裡的 python 和 python3 全都是 python3.5 使用 pip 安裝的 包也都是對應 python 3.5的
啟用虛擬環境 source activate:
退出虛擬環境 deactivate:
通過SSH file 上傳檔案
二、uWSGI伺服器部署:
已經安裝好uwsgi後(pip install uwsgi),只需要增加配置, 告訴uWSGI-server的框架入口函式在哪,就能讓django和uWSGI伺服器對接上。
1. 在django專案的setting.py檔案的同級目錄下,增加一個配置檔案 uwsgi.ini
2. 對配置檔案進行配置
[uwsgi]
# 配置伺服器的監聽ip和埠,讓uWSGI作為nginx的支援伺服器的話,設定socke就行;如果要讓uWSGI作為單獨的web-server,用http
# http = 127.0.0.1:3309
socket = 127.0.0.1:3309
# 配置專案目錄(此處設定為專案的根目錄)
chdir = /home/python/Desktop/my_pro
# 配置入口模組 (django的入口函式的模組,即setting同級目錄下的wsgi.py)
wsgi-file = my_pro/wsgi.py
# 開啟master, 將會多開一個管理程序, 管理其他服務程序
master = True
# 伺服器開啟的程序數量
processes = 2
# 以守護程序方式提供服, 輸出資訊將會列印到log中
daemonize = wsgi.log
# 伺服器程序開啟的執行緒數量
threads = 4
# 退出的時候清空環境變數
vacuum = true
# 程序pid
pidfile = uwsgi.pid
# 配uWSGI搜尋靜態檔案目錄(及django專案下我們存放static檔案的目錄,用uWSGI作為單獨伺服器時才需要設定,此時我們是用nginx處理靜態檔案)
# check-static = /home/python/Desktop/ttsx
- 啟動uWSGI伺服器 在配置檔案uwsgi.ini所在目錄下,用我們剛才配置好的配置檔案啟動uWSGI: $: uwsgi –ini uwsgi.ini
三、nginx伺服器部署: uWSGI伺服器已經部署好了,我們只需要安裝並啟動nginx,然後將nginx伺服器的動態檔案請求轉發給uWSGI伺服器,將靜態檔案請求交給自己來處理。
1. 安裝nginx:
需下載準備好nginx的包檔案, 以及nginx安裝依賴庫的包檔案OPENSSL:
a. 首先安裝nginx所依賴的庫: PCRE
$: sudo apt-get install libpcre3 libpcre3-dev
b. 安裝OPENSSL庫,下載地址https://www.openssl.org/source/
下載將其解壓檔案放到/usr/local/lib/openssl-1.0.2l目錄下
$: /usr/local/lib/openssl-1.0.2l
c. 在這裡我們使用編譯的安裝nginx,指定將nginx的安裝到/ust/opt/目錄下。
解壓包檔案,進入nginx包檔案目錄:
配置:
$: ./configure --prefix=/opt/nginx --with-openssl=/usr/local/lib/openssl-1.0.21
(--prefix指定nginx的安裝目錄, --with-openssl指定我們要使用的openssl版本,也就是我們剛才安裝的路徑)
編譯:$: make
安裝:$: make install
d. 啟動nginx:
$: cd /opt/nginx/sbin/
$: ./nginx
相關命令:./nginx -s stop 強制停止 ./nginx -s quit 處理完當前所有連線後停止./nginx -s reload 重新載入配置檔案進行重啟 檢視程序: ps -ajx | grep nginx
2. 配置nginx:
1. 修改nginx的配置檔案 $: vim/opt/nginx/conf/nginx.conf
修改其收到請求處理的兩條配置:
location / {include uwsgi_params; # 設定將所有請求轉發給uwsgi伺服器處理
uwsgi_pass: 127.0.0.1:3309; # 指定uwsgi伺服器url
}
location /static {
alias /hom/xxx/xxx/pro_name/static/; # 設定將/static的靜態請求交給nginx,並指定靜態檔案的目錄
}
https://www.cnblogs.com/languoliang/archive/2013/04/01/nginx.html
四、admin後臺管理介面靜態檔案配置: 以上,nginx+uWSGI+django已經可以正常運行了,但是登陸django的admin後臺管理介面,網頁的靜態檔案無法找到。 那是因為我們在前面設定nginx的靜態檔案目錄時,static目錄下一般只是我們專案應用開發中自己的靜態檔案, 但是django後臺admin用到的靜態檔案並不在這,所以找不到。所以我們需要把所有的靜態檔案打包放在一個目錄下。 1. 在專案的根目錄下新建一個目錄,可以取名為all_static。 2. 在setting.py檔案下增加一行配置,指定所有靜態檔案的根目錄: STATIC_ROOT = os.path.join(BASE_DIR, ‘all_static’) 3.執行django管理器命令,會自動將我們專案所有的靜態檔案放到上面設定的靜態檔案根目錄下: ./managy.pu collectstatic linux(無桌面)安裝anaconda http://www.linuxdiyf.com/linux/25117.html 安裝當前最新版的python,並設定為預設:http://blog.csdn.net/u012582664/article/details/56845037