阿里云ECS部署:CentOS7+django+uwsgi+nginx+mysql

UPDATE: Xftp 和 Xshell 的官方版本確認(rèn)存在后門,請更換其他工具


0、若為windows環(huán)境,先安裝Xftp和Xshell

Xftp下載地址:

http://www.xiazaiba.com/html/25051.html

Xshell下載地址:

http://www.xiazaiba.com/html/6972.html

xftp使用教程:

http://jingyan.baidu.com/article/e75057f2c2f9eeebc91a89e6.html

xshell的使用基本是一樣的,輸入賬號(hào)密碼和公網(wǎng)(外網(wǎng))域名就行了

xftp使用SFTP協(xié)議,xshell選擇SSH協(xié)議

之后的操作是在xshell上

1、安裝django

安裝pip工具

sudo yum install epel-release

sudo yum install python-pip

sudo yum install --upgrade pip

上面這里更新可能會(huì)失敗,多嘗試幾次就行了

pip install django

在home文件夾下創(chuàng)建第一個(gè)django工程(其它目錄下可能導(dǎo)致沒有權(quán)限的問題)

cd /home

django-admin startproject mysit

進(jìn)入 setting.py 配置靜態(tài)文件

注:本文章中的項(xiàng)目名稱為mysite,若不同,則需要做相應(yīng)改變

cd /home/mysite/mysite

到達(dá)settings.py的文件尾部進(jìn)入編輯模式后,輸入:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

保存后更新應(yīng)用配置,自動(dòng)生成 static 目錄

./manage.py collectstatic

測試應(yīng)用是否能正常運(yùn)行,如果在瀏覽器里能訪問8080端口的內(nèi)容,即成功

./manage.py runserver 0.0.0.0:8080

顯示it worked!即第一步成功。

額外配置:

配置靜態(tài)文件是為了進(jìn)入127.0.0.1/8080/admin/后網(wǎng)頁的CSS還存在,如果照著這個(gè)教程來,那就是:

并且使用xftp在/home/mysite這個(gè)路徑下新建名為"static"的文件夾和名為"media"的文件夾

順便在MIDDLEWARE_CLASSES 設(shè)置列表里的 'django.contrib.sessions.middleware.SessionMiddleware',下面加上:

'django.middleware.locale.LocaleMiddleware',

讓admin頁面變成中文

2、安裝和配置python開發(fā)包,uWSGI

sudo yum install python-devel gcc

sudo pip install uwsgi

測試 uWSGi 是否能正常運(yùn)行:

uwsgi --http :8080 --chdir /home/mysite -w mysite.wsgi

打開網(wǎng)站,顯示it worked!即成功。如果此時(shí)提示:

probably another instance of uWSGI is running on the same address (:8080).

bind(): Address already in use [? line ?]

則可以輸入以下指令查詢端口占用情況,然后殺死名稱為uwsgi的進(jìn)程

lsof -i

sudo kill -9 '對應(yīng)的PID號(hào)碼'

創(chuàng)建 uWSGI 運(yùn)行的配置文件 mysite.ini:

sudo mkdir -p /etc/uwsgi

cd /etc/uwsgi/

sudo vi mysite.ini

輸入配置文件內(nèi)容

在/run目錄下新建一個(gè)叫"uwsgi"的文件夾

不要在/tmp目錄下新建這個(gè)文件夾,會(huì)因?yàn)闄?quán)限問題而無法創(chuàng)建文件導(dǎo)致錯(cuò)誤

如果你和我的文件名以及項(xiàng)目路徑都是相同的,那么就不需要做相應(yīng)的路徑修改

3、使用supervisor

sudo pip install supervisor

生成 supervisor 默認(rèn)配置文件,比如我們放在 /etc/supervisord.conf 路徑中:

打開 supervisord.conf 在最底部添加:

啟用supervisor:

supervisord -c /etc/supervisord.conf

重啟 mysite 程序(項(xiàng)目):

supervisorctl -c /etc/supervisord.conf restart mysite

相應(yīng)指令的還有start和stop

4、安裝nginx

sudo yum install nginx

打開 nginx 的配置文件:

sudo vi /etc/nginx/nginx.conf

添加以下內(nèi)容

這里要保證存放log的文件夾是存在的,所以要使用xftp在/home目錄下新建一個(gè)名為"logs"的文件夾

圖中的server_name后面的參數(shù)要改成你自己的域名或你的公網(wǎng)(外網(wǎng))IP地址(不包含端口號(hào))

保存后測試配置文件是否有錯(cuò)誤:

sudo nginx -t

顯示 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 則成功

啟動(dòng)nginx和刷新django項(xiàng)目

sudo systemctl restart nginx

supervisorctl -c /etc/supervisord.conf restart mysite

瀏覽器輸入你的域名或者ip地址(不包括端口號(hào)),顯示it worked!則成功。

5、安裝mysql

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum install mysql-community-server -y

service mysqld start

設(shè)置mysql密碼密碼,默認(rèn)用戶名root

mysql -uroot

set password for 'root'@'localhost' = password('你需要設(shè)置的密碼'');

連接mysql和python,安裝mysqldb

sudo yum install mysql-devel

pip install mysql-python

連接django和mysql

打開settings.py文件,修改DATABASES

進(jìn)入mysql,創(chuàng)建一個(gè)名為"mysite"的數(shù)據(jù)庫

mysql -uroot -p"你的密碼"

CREATE DATABASE mysite DEFAULT CHARACTER SET utf8

這里不要忘記設(shè)置字符集是utf8,不然你在admin下輸入中文到數(shù)據(jù)庫會(huì)報(bào)500的錯(cuò)誤

也不要修改my.cnf文件來定義默認(rèn)字符集,網(wǎng)上的教程會(huì)導(dǎo)致數(shù)據(jù)庫無法啟動(dòng)

6、最后

使用DEBUG = False,進(jìn)入settings.py

將DEBUG = True 改為 DEBUG = False

在下面這句里添加'*'后保存

ALLOWED_HOSTS = ['*']

為模板添加路徑

給settings.py里添加如下代碼,并修改'DIR'后面的值

TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')

最終我們的網(wǎng)站結(jié)構(gòu)應(yīng)該是這樣的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容