程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python django項目部署至linux雲服務器

編輯:Python

當用python 完成Django web項目在本地開發後,這僅能自己浏覽,需要將代碼放到服務器上,這樣用戶才能訪問,下文將詳細介紹Django項目如何部署到linux服務器。

1.服務器環境介紹

  • 操作系統:CentOS7
  • Python版本: 2.7.5
  • Nginx主配置文件位置:/etc/nginx/nginx.conf

2.安裝基礎開發包

Centos 下安裝步驟如下:

  • yum groupinstall "Development tools" -y
  • yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel -y

3.安裝Python包管理工具

easy_install包鏈接: https://pypi.python.org/pypi/distribute

安裝步驟:

 cd ~
yum install wget -y
wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
ls
tar xf distribute-0.6.49.tar.gz
cd distribute-0.6.49
python setup.py install

CentOS7:python2.7 setup.py install
CentOS6:python2.7 setup.py install
測試是否安裝成功:easy_install --version

4.安裝 uwsgi

sudo yum install python-devel -y

1、安裝wget,gcc-c++ gcc*:

yum install -y wget gcc-c++ epel-release -y

2、安裝pip

yum install python-pip -y

3、升級pip

pip install --upgrade pip

4、Uwsgi安裝

pip install uwsgi

Successfully installed uwsgi-2.0.17.1

5、查看 uwsgi 版本

uwsgi --version

CentOS 7.0使用的是firewall作為防火牆,默認防火牆是打開的
查看防火牆狀態:
firewall-cmd --state

停止firewall:
systemctl stop firewalld.service

禁止firewall開機啟動:
systemctl disable firewalld.service

uwsgi:https://pypi.python.org/pypi/uWSGI

uwsgi 參數詳解:
http://uwsgi-docs.readthedocs.org/en/latest/Options.html

測試 uwsgi 是否正常:

新建 test.py 文件,內容如下:

def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return "Hello World"

然後在終端運行:
uwsgi --http :8001 --wsgi-file test.py

在浏覽器內輸入:
http://服務器IP地址:8001

查看是否有"Hello World"輸出,若沒有輸出,請檢查你的安裝過程。

5.Django 安裝

Django 版本對應的Python 版本:

Django 版本Python 版本1.82.7, 3.2 , 3.3, 3.4, 3.51.9, 1.102.7, 3.4, 3.51.112.7, 3.4, 3.5, 3.62.03.5+

1、Django安裝
pip install django==1.8

2、Python版本查看:

方式一:pip list
方式二:python
import django
print(django.get_version())

3、測試django:

cd ~
django-admin.py startproject mysite
cd mysite

進入項目文件夾
/data/wwwroot/mysite
,添加static和templates,分別用於存放靜態文件和模板文件。

django-admin.py startapp blog
允許所有主機訪問
增加應用

python manage.py runserver 0.0.0.0:8002
(注意0.0.0.0這個IP地址)

在浏覽器內輸入:http://127.0.0.1:8002,檢查django是否運行正常。

6.安裝Nginx

yum install nginx -y

Nginx主配置文件:
/etc/nginx/nginx.conf

看服務器上安裝的nginx版本號,主要是通過ngix的-v或-V選項,查看方法如下圖所示:

-v 顯示 nginx 的版本。
-V 顯示 nginx 的版本,編譯器版本和配置參數。
有時想知道nigix是否在正常運行,需要用linux命令查看nginx運行情況。執行命令:

ps -A | grep nginx

如果返回結果的話,說明有nginx在運行,服務已經啟動。

nginx啟動、停止、無間斷服務重啟:

service nginx start
service nginx stop
service nginx reload

在浏覽器中輸入IP地址:

出現如下界面則nginx安裝成功!

7.uwsgi 配置

Django正常運行之後我們就開始配置一下uwsgi。

我們網站項目路徑是 /data/wwwroot/mysite/,在項目根目錄下創建
mysite.xml文件,輸入如下內容:

<uwsgi>
<socket>127.0.0.1:8997</socket><!-- 內部端口,自定義 -->
<chdir>/data/wwwroot/mysite/</chdir><!-- 項目路徑 -->
<module>mysite.wsgi</module>
<processes>4</processes> <!-- 進程數 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>

並保存
配置文件裡的mysite這是我們的項目名。

8.配置nginx.conf文件

首先切換到nginx的配置文件所在路徑:
cd /etc/nginx
備份一下nginx.conf文件,以防意外,
cp nginx.conf nginx.conf.bak
然後打開nginx.conf,把原來的內容刪除,
rm -rf nginx.conf
直接加入以下內容:(nginx.conf)

worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name www.django.cn;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8997;
uwsgi_param UWSGI_SCRIPT mysite.wsgi;
uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite; #項目路徑
}
location /static/ {
alias /data/wwwroot/mysite/static/; #靜態資源路徑
}
}
}

注意該配置文件中的路徑要和mysite.xml項目路徑對應上。

執行以下命令先檢查配置文件是否有錯
nginx -t,沒有錯就執行以下命令:nginx
終端沒有任何提示就證明nginx啟動成功。可以使用你的服務器地址查看,成功之後就會看到一個nginx歡迎頁面。

9.訪問項目的頁面

進入網站項目目錄:
cd /data/wwwroot/mysite/
執行下面命令:
uwsgi -x mysite.xml

以上步驟都沒有出錯的話,執行以下命令重啟nginx 。
nginx -s reload
然後在浏覽器裡訪問你的項目地址!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved