django項目部署到雲服務器:
0.通過xshell連接遠程主機服務器ip
1.使用xftp將項目發送到服務器端(也可以使用git)
a.路徑推薦為/var/project/(項目名)
2.給服務器安裝必要的環境
a.升級,更新apt-get
apt-get update
apt-get upgrade
b.安裝mysql數據庫
apt-get install mysql-server-5.7
(為root設置密碼)
c.安裝pip3(默認未安裝)
apt install python3-pip
d.安裝虛擬環境
pip install --upgrade pip (如版本低,先升級pip)
pip install virtualenv (如報這個錯 Consider using the '--user' option or check the permissions在virtualenv前加上--user即可)
e.安裝虛擬環境管理軟件
easy_install virtualenvwrapper
注:安裝上它才可以使用workon, mkvirtualenv等命令
f.配置虛擬環境
創建虛擬環境管理目錄 mkdir $HOME/.local/virtualenvs
配置環境變量:
在~/.bashrc中添加行
export VIRTUALENV_USE_DISTRIBUTE=1 #總是使用 pip/distribute export WORKON_HOME=$HOME/.local/virtualenvs #所有虛擬環境存儲的目錄 if [ -e $HOME/.local/bin/virtualenvwrapper.sh ];then source $HOME/.local/bin/virtualenvwrapper.sh else if [ -e /usr/local/bin/virtualenvwrapper.sh ];then source /usr/local/bin/virtualenvwrapper.sh fi fi export PIP_VIRTUALENV_BASE=$WORKON_HOME export PIP_RESPECT_VIRTUALENV=true
刷新環境變量: source ~/.bashrc
創建python3.5的虛擬環境:mkvirtualenv -p /usr/bin/python3.5 虛擬環境的名稱
ps: 使用虛擬環境: workon 虛擬環境名
退出虛擬環境 : deactivate
刪除虛擬環境:rmvirtualenv 虛擬環境名稱
3. 下載安裝python中的第三方庫
根據每個人的項目庫的需求來安裝,常用庫有:
a. requests
b. Pillow
c. pymysql
d. uwsgi
4. 安裝nginx
a. 下載認證密鑰
wget http://nginx.org/keys/nginx_signing.key (下載到當前目錄下)
b. 配置該密鑰
sudo apt-key add nginx_signing.key
c. 切換到apt的源列表
vim /etc/apt/sources.list
加上源:
deb http://nginx.org/packages/ubuntu/ codename nginx
deb-src http://nginx.org/packages/ubuntu/ codename nginx
注:
將codename替換成當前linux的版本號, Ubuntu16.04 對應為: xenial, 保存退出
其它的linux版本可以在網上查
d. 更新並安裝
apt-get update
apt-get install nginx
e.查看nginx服務是否開啟
ps -ef | grep nginx 通過存在的進程來篩選查看nginx的狀態
5. 配置django和uwsgi
a. 在項目目錄下建uwsgi.ini文件, 並配置
[uwsgi] # 使用nginx連接時 使用 #socket=127.0.0.1:8010 # 直接作為web服務器使用 http=127.0.0.1:8010 # 配置工程目錄 chdir=/home/rock/Python1801/DjangoAXF/AXF # 配置項目的wsgi目錄。相對於工程目錄 wsgi-file=AXF/wsgi.py #配置進程,線程信息 processes=4 threads=2 enable-threads=True master=True pidfile=uwsgi.pid daemonize=uwsgi.log
b. 在django項目setting中將DEBUG置為False
c. database配置為服務器上的mysql
d. 建庫,遷移表,插入數據(如果使用了數據庫緩存,python manage.py createcachetable)
e. 一切就緒后執行 uwsgi --ini uwsgi.ini
6.啟動nginx
以配置文件的方式啟動
1.測試:nginx -t -c 配置文件路徑(見到successful便成功)
2.啟動:啟動前確保之前的已經徹底關閉(nginx -s stop)
nginx -c 配置文件路徑
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; server { listen 80; server_name localhost; charset utf-8; root /var/www/learn; index hello.html; location / { include /etc/nginx/uwsgi_params; uwsgi_pass localhost:8000; } location /static{ alias /var/project1804/game/2048game/; } } }
7.輸入公網ip,訪問項目測試!
