day55-Django項(xiàng)目部署

Centos部署Django項(xiàng)目

一吨艇、安裝MariaDB

1.安裝命令

yum -y install mariadb mariadb-server

2.安裝完成后,首先啟動(dòng)MariaDB

systemctl start mariadb

3.設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)

systemctl enable mariadb

4.安全安裝MariaDB

Enter current password for root:<–初次運(yùn)行直接回車

# 設(shè)置密碼
Set root password? [y/n] <– 是否設(shè)置root用戶密碼末捣,輸入y并回車或直接回車

New password: <– 設(shè)置root用戶的密碼
Re-enter new password: <– 再輸入一次你設(shè)置的密碼

# 其他配置(根據(jù)自己的需求進(jìn)行配置)
Remove anonymous users? [Y/n] <– 是否刪除匿名用戶(回車)

Disallow root login remotely? [Y/n] <–是否禁止root遠(yuǎn)程登錄(回車)

Remove test database and access to it? [Y/n] <– 是否刪除test數(shù)據(jù)庫(kù)(回車)

Reload privilege tables now? [Y/n] <– 是否重新加載權(quán)限表(回車)

5.初始化MariaDB完成,測(cè)試登錄

mysql -u root -p

二、開(kāi)啟MariaDB遠(yuǎn)程連接

在數(shù)據(jù)庫(kù)中的user表中可以看到默認(rèn)是只能本地連接的,所有可以添加一個(gè)新的用戶尖啡,該用戶可以遠(yuǎn)程訪問(wèn)
1.創(chuàng)建用戶

1.使用數(shù)據(jù)庫(kù)
use mysql;

2.創(chuàng)建用戶
#所有ip都可以進(jìn)行訪問(wèn)
create user 'root'@'%' identified by '123456';

# 特定ip才可以進(jìn)行訪問(wèn)
create user 'root'@'192.168.10.10' identified by '123456';

2.授權(quán)

1.給用戶授權(quán)
# 給用戶最大權(quán)限
grant all privileges on *.* to 'root'@'%' identified by '123456';

# 給用戶部分權(quán)限(test 數(shù)據(jù)庫(kù))
grant all privileges on test.* to 'root'@'%' identified by '123456' with grant option;

2.刷新權(quán)限表
flush privileges;

3.查看用戶權(quán)限
show grants for 'root'@'localhost';

3.遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù)
接下來(lái)就可以在遠(yuǎn)程的數(shù)據(jù)庫(kù)可視化工具中直接訪問(wèn)該服務(wù)器中的mysql了。

注意:需要打開(kāi)服務(wù)器的3306端口剩膘。

1.在Navicat中新建一個(gè)遠(yuǎn)程連接衅斩,連接到服務(wù)器中的數(shù)據(jù)庫(kù)

2.配置連接信息
連接名: -> aliyun
主機(jī): -> 服務(wù)器ip地址
端口: -> 3306
用戶名: -> root
密碼: -> 123456

三、安裝Python3.6

注意:在centos中怠褐,系統(tǒng)默認(rèn)只提供Python2.7的版本畏梆,但是在項(xiàng)目中我們使用的是Python3.6的版本,在服務(wù)器中的Python版本需要和開(kāi)發(fā)時(shí)的版本一致。
1.安裝依賴項(xiàng)

yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

2.下載Python3.6源代碼

wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

3.解壓縮和解歸檔

gunzip Python-3.6.6.tgz
tar -xvf Python-6.6.6.tar 

4.進(jìn)入安裝文件生成構(gòu)建文件(Makefile)

(1)cd Python-3.6.6
(2)./configure --prefix=/usr/local/python36 --enable-optimizations
這一步完成之后會(huì)生成一個(gè)名叫Makefile的文件

5.構(gòu)建和安裝

make && make install

6.修改環(huán)境變量

cd ~
vim .bash_profile

PATH=$PATH:$HOME/bin:/usr/local/python36/bin

提醒:vim下按i進(jìn)入編輯模式奠涌;按Esc退出編輯模式宪巨;保存文件要先退出編輯模式再按:wq

7.注冊(cè)一個(gè)快捷方式(符號(hào)鏈接)

ln -s /usr/local/python36/bin/python3 /usr/bin/python3

8.斷開(kāi)服務(wù)器連接,重新連接服務(wù)器

python3 --version

四溜畅、安裝和激活Python虛擬環(huán)境

1.在Python-3.6.6文件中安裝virtualenv

cd Python-3.6.6

yum install python-virtualenv

2.在/home目錄下創(chuàng)建env捏卓、src、logs慈格、conf文件夾

cd /home

mkdir env src logs conf

3.創(chuàng)建虛擬環(huán)境

cd env/

# -p /usr/local/python36/bin/python3 -> 指定python3安裝路徑
virtualenv --no-site-packages -p /usr/local/python36/bin/python3 freshenv

4.激活虛擬環(huán)境

cd env/freshenv/bin/

# 激活虛擬環(huán)境
source activate

# 凍結(jié)虛擬環(huán)境
deactivate

五天吓、將Django項(xiàng)目傳輸?shù)椒?wù)器

1.傳輸項(xiàng)目到/home/src/

cd /home/src

使用Xshell傳輸項(xiàng)目

2.安裝環(huán)境所需要的包

vim re_install.txt

# 在re_install.txt編輯內(nèi)容
django==1.11
pymysql
Pillow

# 自動(dòng)安裝re_install.txt文件中編輯的所有內(nèi)容
/home/env/freshenv/bin/pip install -r re_install.txt

六、服務(wù)器測(cè)試環(huán)境部署項(xiàng)目

1.修改settings.py配置文件

DEBUG = False

ALLOWED_HOSTS = ['*']

2.服務(wù)器中啟動(dòng)Django項(xiàng)目

netstat -lntp -> 查看端口占用情況

注意:?jiǎn)?dòng)之前需要打開(kāi)服務(wù)器的80端口峦椰,并檢查該端口是否被其他應(yīng)用占用。

/home/env/freshenv/bin/python3 /home/src/fresh_shop/manage.py runserver 0.0.0.0:80

七汰规、本地測(cè)試環(huán)境中的部署方式

1.setting.py配置文件的修改

DEBUG = False

ALLOWED_HOSTS = ['*']

2.工程目錄下urls.py配置文件的修改

from django.views.static import serve

from fresh_shop import settings
from goods import views

urlpatterns = [
    url(r'^static/(?P<path>.*)$', serve, {"document_root": settings.STATICFILES_DIRS[0]}),

    url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}),

    # 首頁(yè)
    url(r'^$', views.index),
]
urlpatterns += static(MEDIA_URL, document_root=MEDIA_ROOT)

3.中間件的修改

if path == '/':
    return None

if re.match(r'/static/.*/', path):
    return None

if re.match(r'/media/.*/', path):
    return None

八汤功、服務(wù)器環(huán)境中的部署方式

Django項(xiàng)目部署方式

nginx + uwsgi + django
nginx + gunicorn + django
ngnix + django
apache

1.setting.py配置文件的修改

cd /home/src/fresh_shop/fresh_shop

vim setting.py
# 配置信息
DEBUG = False

ALLOWED_HOSTS = ['*']

2.工程目錄下urls.py配置文件的修改(并修改中間件)

cd /home/src/fresh_shop/fresh_shop

vim urls.py
# 配置信息 
from goods import views

urlpatterns = [
    # 首頁(yè)路由
    url(r'^$', views.index),
]

3.nginx的安裝和啟動(dòng)

yum install nginx  安裝

systemctl start nginx 啟動(dòng)

systemctl status nginx 查看nginx的狀態(tài)

systemctl start/stop/enable/disable nginx 啟動(dòng)/關(guān)閉/設(shè)置開(kāi)機(jī)啟動(dòng)/禁止開(kāi)機(jī)啟動(dòng)

4.uwsgi的安裝
在虛擬環(huán)境中安裝uwsgi,假設(shè)虛擬環(huán)境安裝在/home/env/freshenv中

/home/env/freshenv/bin/pip3 install uwsgi

5.配置nginx.conf文件

cd /home/conf

vim nginx.conf
server {
    listen    80;
    server_name 47.107.175.127;  # 填寫(xiě)服務(wù)器ip地址或者域名

    access_log /home/logs/access.log;
    error_log /home/logs/error.log;

    location /static/ {
        alias /home/src/fresh_shop/static/;
    }

    location /media/ {
        alias /home/src/fresh_shop/media/;
    }

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8890;  # 端口可自己定義
    }
}

systemctl start nginx  啟動(dòng)nginx

6.配置uwsgi文件

cd /home/conf

vim uwsgi.ini
[uwsgi]

# 守護(hù)進(jìn)程
master = true

# 進(jìn)程個(gè)數(shù)
processes = 4

# 項(xiàng)目地址
chdir = /home/src/fresh_shop
 
# 指定python版本
pythonpath = /home/env/freshenv/bin/python3

# 指定uwsgi文件
module = fresh_shop.wsgi

# 和nginx通信地址:端口
socket = 127.0.0.1:8890

# 日志文件地址
logto = /home/logs/uwsgi.log

7.配置nginx.conf文件

vim /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf;
include /home/conf/*.conf;

systemctl restart nginx 重新啟動(dòng)nginx

8.啟動(dòng)uwsgi(運(yùn)行項(xiàng)目)

/home/env/freshenv/bin/uwsgi --ini /home/conf/uwsgi.ini

9.查看uwsgi日志文件

tail -f uwsgi.log

九溜哮、服務(wù)器通過(guò)不同端口部署多個(gè)項(xiàng)目

1.Nginx配置文件
listen:監(jiān)聽(tīng)不同的端口號(hào)

server {
         listen    80;
         server_name 47.107.175.127;

         access_log /home/logs/fresh_access.log;
         error_log /home/logs/fresh_error.log;
 
        location /static/ {
                alias /home/src/fresh_shop/static/;
         }
 
         location /media/ {
                 alias /home/src/fresh_shop/media/;
         }

         location / {
             include uwsgi_params;
             uwsgi_pass 127.0.0.1:8890;
         }
}
 
server {
         listen    81;
         server_name 47.107.175.127;
 
         access_log /home/logs/blog_access.log;
         error_log /home/logs/blog_error.log;

         location /static/ {
                alias /home/src/blog/static/;
         }
 
         location /media/ {
                 alias /home/src/blog/media/;
         }

2.fresh_uwsgi.ini配置文件

[uwsgi]

master = true

processes = 4

chdir = /home/src/fresh_shop

pythonpath = /home/env/freshenv/bin/python3
 
module = fresh_shop.wsgi

socket = 127.0.0.1:8890

logto = /home/logs/fresh_uwsgi.log

3.blog_uwsgi.ini配置文件

[uwsgi]

master = true

processes = 4

chdir = /home/src/blog

pythonpath = /home/env/blogenv/bin/python3

module = blog.wsgi

socket = 127.0.0.1:9090

logto = /home/logs/blog_uwsgi.log

4.重啟Nginx服務(wù)

systemctl restart nginx

5.后臺(tái)啟動(dòng)uwsgi(運(yùn)行項(xiàng)目)

/home/env/freshenv/bin/uwsgi --ini /home/conf/fresh_uwsgi.ini &

/home/env/blogenv/bin/uwsgi --ini /home/conf/blog_uwsgi.ini &

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坎匿,一起剝皮案震驚了整個(gè)濱河市驼唱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖潮梯,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異喷橙,居然都是意外死亡扼劈,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)蝌矛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)道批,“玉大人,你說(shuō)我怎么就攤上這事入撒÷”” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵茅逮,是天一觀的道長(zhǎng)璃赡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)献雅,這世上最難降的妖魔是什么碉考? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮惩琉,結(jié)果婚禮上豆励,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好良蒸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布技扼。 她就那樣靜靜地躺著,像睡著了一般嫩痰。 火紅的嫁衣襯著肌膚如雪剿吻。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天串纺,我揣著相機(jī)與錄音丽旅,去河邊找鬼。 笑死纺棺,一個(gè)胖子當(dāng)著我的面吹牛榄笙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播祷蝌,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼茅撞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了巨朦?” 一聲冷哼從身側(cè)響起米丘,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糊啡,沒(méi)想到半個(gè)月后拄查,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棚蓄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年堕扶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癣疟。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挣柬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睛挚,到底是詐尸還是另有隱情邪蛔,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布扎狱,位于F島的核電站侧到,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淤击。R本人自食惡果不足惜匠抗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望污抬。 院中可真熱鬧汞贸,春花似錦绳军、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至多柑,卻和暖如春奶是,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竣灌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工聂沙, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人初嘹。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓及汉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親屯烦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子豁生,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353