Django項(xiàng)目線上部署流程

一、安裝Mysql

1、新建文件、配置倉(cāng)庫(kù)源

編輯創(chuàng)建mariadb.repo倉(cāng)庫(kù)文件
vi /etc/yum.repos.d/MariaDB.repo

2、添加repo倉(cāng)庫(kù)配置

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

3、yum下載

yum install MariaDB-server MariaDB-client -y

4、啟動(dòng)mysql

systemctl start mariadb(通過(guò)yum下載的,可以使用systemctl管理)

5、初始化mysql

mysql_secure_installation
mysql.png

6、登錄mysql客戶端

mysql -uroot -p

二、安裝uwsgi

uwsgi的安裝通過(guò)pip就可以安裝

pip install -i  https://pypi.douban.com/simple  uwsgi

測(cè)試uwsgi安裝是否成功方法 ----->通過(guò)uwsgi啟動(dòng)一個(gè)python web服務(wù)

1、準(zhǔn)備一個(gè)test_uwsgi.py文件,寫(xiě)入代碼:
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World,im uwsgi....."] # python3

2、通過(guò)命令啟動(dòng)這個(gè)文件
uwsgi --http :8000 --wsgi-file test_uwsgi.py

3、瀏覽器測(cè)試訪問(wèn)
http://167.179.88.178:8000/

測(cè)試uwsgi安裝是否成功方法 ----->通過(guò)uwsgi啟動(dòng)一個(gè)Django項(xiàng)目

1、準(zhǔn)備好Django項(xiàng)目

2、在Django項(xiàng)目目錄下執(zhí)行一下命令:
uwsgi --http :8000 --module projects_name.wsgi

3、瀏覽器測(cè)試訪問(wèn)
http://167.179.88.178:8000/

三、安裝nginx

1、 nginx解決依賴(lài)關(guān)系
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

2、切到opt目錄,下載nginx安裝包
cd /opt
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

3、解壓安裝包
tar -zxvf nginx-1.12.0.tar.gz

4、切換進(jìn)入nginx目錄
cd nginx-1.12.0

5、配置,編譯安裝到指定目錄/opt/nginx1-12/
./configure --prefix=/opt/nginx1-12/ #這里不會(huì)生成文件夾
make && make install

6、啟動(dòng)nginx,進(jìn)入sbin目錄,找到nginx啟動(dòng)命令
進(jìn)入nginx主目錄,所有東西都在這了:cd /opt/nginx1-12
進(jìn)入可執(zhí)行命令目錄:cd sbin
nginx相關(guān)命令:
./nginx :?jiǎn)?dòng)
ps -ef |grep nginx :檢查端口和進(jìn)程
./nginx -s stop :關(guān)閉
./nginx -s reload :重啟(啟動(dòng)nginx服務(wù)時(shí))
./nginx -t :檢測(cè)nginx.conf語(yǔ)法是否正確

四、uwsgi和nginx對(duì)應(yīng)的配置項(xiàng)

1.創(chuàng)建uwsgi的配置文件 uwsgi.ini,文件放哪里都可以
按照一下相關(guān)配置對(duì)應(yīng)配置好相關(guān)信息:

[uwsgi]
# Django項(xiàng)目目錄
chdir=/www/my_projects/server_manager/
# 指定項(xiàng)目的application
module=server_manager.wsgi:application
# 指定sock的文件路徑---對(duì)應(yīng)的nginx通信端口
socket=127.0.0.1:8000
# 進(jìn)程個(gè)數(shù)
workers=5
#pidfile=/root/tg/myproject/script/uwsgi.pid
# 指定IP端口
http=0.0.0.0:8080
# 指定靜態(tài)文件
static-map=/static=/www/my_projects/server_manager/static
# 啟動(dòng)uwsgi的用戶名和用戶組
uid=root
gid=root
# 啟用主進(jìn)程
master=true
# 自動(dòng)移除unix Socket和pid文件當(dāng)服務(wù)停止的時(shí)候
vacuum=true
# 序列化接受的內(nèi)容,如果可能的話
thunder-lock=true
# 啟用線程
enable-threads=true
# 設(shè)置自中斷時(shí)間
harakiri=30
# 設(shè)置緩沖
post-buffering=4096
# 設(shè)置日志目錄
daemonize=/www/my_projects/uwsgi.log

2、測(cè)試uwsgi配置是否成功
uwsgi --http :8080 --module server_manager.wsgi
瀏覽器可以輸入 http://167.179.88.178:8080 測(cè)試項(xiàng)目是否可以啟動(dòng)

3、創(chuàng)建存放Django靜態(tài)文件的目錄:
mkdir /opt/static/django

4、配置django項(xiàng)目settings.py文件

ALLOWED_HOSTS = ['*']

#收集靜態(tài)文件的目錄,靜態(tài)文件內(nèi)容都放這里了
STATIC_ROOT='/opt/static/django'
STATIC_URL = '/static/'
STATICFILES_DIRS=[
    os.path.join(BASE_DIR,"static"),
]
STATIC_ROOT 文件夾 是用來(lái)將所有STATICFILES_DIRS中所有文件夾中的文件,以及各app中static中的
文件都復(fù)制過(guò)來(lái),把這些文件放到一起是為了用nginx等部署的時(shí)候更方便。

5、在Django項(xiàng)目下執(zhí)行一下命令來(lái)收集靜態(tài)文件:
python manage.py collectstatic

6、nginx配置
vi /opt/nginx1-12/conf/nginx.conf

server {
        listen       80;
        server_name  167.179.88.178;
        charset utf-8;
        access_log  /www/my_projects/logs/host.access.log;
        error_log  /www/my_projects/logs/host.error.log;

        location / {
            include  /opt/nginx1-12/conf/uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
            index  index.html index.htm;
        }
        location /static {
                alias /opt/static/django; # 靜態(tài)文件絕對(duì)路徑
        }

7、通過(guò)which uwsgi命令找到uwsgi可執(zhí)行命令的絕對(duì)路徑
/usr/bin/uwsgi

8、cd 到第一步創(chuàng)建的uwsgi.ini 文件的目錄執(zhí)行一下命令:
/usr/bin/uwsgi --ini uwsgi.ini
輸出結(jié)果為一下內(nèi)容:

[root@vultr my_projects]# /usr/bin/uwsgi --ini uwsgi.ini 
[uWSGI] getting INI configuration from uwsgi.ini
[uwsgi-static] added mapping for /static => /www/my_projects/server_manager/static
[root@vultr my_projects]# 

9、執(zhí)行以下命令啟動(dòng)nginx服務(wù):
/opt/nginx1-12/sbin/nginx

10、瀏覽器訪問(wèn)ip地址就可以看到部署好的項(xiàng)目了
http://167.179.88.178:80

附:服務(wù)器開(kāi)啟端口命令:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

CentOS 7開(kāi)放端口和關(guān)閉防火墻
http://www.lxweimin.com/p/bad33004bb4f

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

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