阿里云栓始,CentOS安裝Django并配置uwsgi和nginx

CentOS安裝Django環(huán)境

本文采用的服務(wù)器為阿里云輕量級(jí)應(yīng)用服務(wù)器务冕,所使用的系統(tǒng)是CentOS 7.3,所搭建的環(huán)境為python3.7幻赚,Django 2.2禀忆。

阿里云CentOS系統(tǒng)

  • 將阿里云服務(wù)器重置為CentOS系統(tǒng)

    登錄阿里云后臺(tái)服務(wù)器,選擇重置系統(tǒng)落恼,選擇CentOS 7.3箩退,填寫短信驗(yàn)證碼重置系統(tǒng)。

  • 升級(jí)yum

    sudo yum update
    
  • 防火墻設(shè)置佳谦,開(kāi)放端口

    由于重置系統(tǒng)為CentOS后戴涝,防火墻只會(huì)開(kāi)啟22端口,所以其他端口要使用需要自己開(kāi)啟钻蔑,而CentOS 7后都使用防火墻啥刻,而不是使用iptables了,開(kāi)啟后同時(shí)需要確認(rèn)阿里云服務(wù)器后臺(tái)是否開(kāi)啟次端口咪笑。

    # 開(kāi)啟防火墻
    sudo systemctl start firewalld.service 
    # 開(kāi)放80端口
    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    # 重啟防火墻
    sudo systemctl restart firewalld.service
    # 重置防火墻配置
    sudo firewall-cmd --reload
    
  • 安裝數(shù)據(jù)庫(kù)mariadb

    # 安裝mariadb
    yum -y install mariadb mariadb-server
    # 啟動(dòng)數(shù)據(jù)庫(kù)
    sudo systemctl start mariadb
    # 設(shè)置數(shù)據(jù)庫(kù)開(kāi)機(jī)啟動(dòng)
    sudo systemctl enable mariadb
    # 設(shè)置數(shù)據(jù)庫(kù)密碼等
    mysql_secure_installation
    

CentOS安裝python 3.7

我們可以使用python --version來(lái)查看當(dāng)前系統(tǒng)的python版本可帽,我當(dāng)前的python版本為2.7.5

  • 安裝python 3.7

    # 返回主目錄,并新建python3文件夾
    cd ~
    mkdir python3
    cd python3
    # 安裝python 3 依賴環(huán)境
    sudo yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel zlib-devel libffi-devel MySQL-python mysql-devel
    # 下載python 3.7
    wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
    # 解壓python
    tar -zxvf Python-3.7.3.tgz
    # 配置python3安裝目錄
    cd /usr/local
    sudo mkdir python3
    cd ~/Python-3.7.3
    ./configure --prefix=/usr/local/python3/
    # 編譯python,make命令可能需要時(shí)間很長(zhǎng)
    make
    # 安裝
    sudo make install
    

    至此python 3.7已經(jīng)安裝成功了窗怒,可以cd /usr/local/python3/目錄下查看是否安裝成功映跟,但是此時(shí)在控制臺(tái)輸入python3是沒(méi)有該命令的,還需要做以下操作:

      sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
      sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
    

    此時(shí)python3和pip3都可以在命令中找到了扬虚,最后安裝一個(gè)mysqlclient

    sudo pip3 install mysqlclient
    

安裝Django

  • 安裝Django以及測(cè)試

    # 安裝django
    sudo pip3 install django
    sudo ln -s /usr/local/python3/bin/django-admin /usr/bin
    cd ~
    sudo mkdir Test
    cd Test
    # 創(chuàng)建Django測(cè)試工程
    sudo django-admin startproject MyTest
    cd MyTest
    # 啟動(dòng)Django
    sudo python3 manage.py runserver 0.0.0.0:80
    

    此時(shí)啟動(dòng)Django應(yīng)該會(huì)報(bào)錯(cuò)努隙,需要修改settings.py里面的一些配置,settings.py修改數(shù)據(jù)庫(kù)配置

    ALLOWED_HOSTS = []  ->> ALLOWED_HOSTS = ['*']
    # 數(shù)據(jù)庫(kù)修改
    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '自己新建的數(shù)據(jù)名',
        'USER': 'root',
        'PASSWORD': '配置數(shù)據(jù)庫(kù)時(shí)的密碼',
        'HOST': 'localhost',
        'PORT': '3306',
        }
    }
    

    再次啟動(dòng)Django sudo python3 manage.py runserver 0.0.0.0:80孔轴,本機(jī)訪問(wèn)服務(wù)器地址剃法,可以看到Django的圖標(biāo)等,表明Django的環(huán)境已經(jīng)搭建成功了

配置uwsgi和nginx

  • 安裝uwsgi和nginx

    sudo pip3 install uwsgi
    sudo yum -y install nginx
    sudo ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
    
  • 配置uwsgi和nginx
    修改項(xiàng)目中的settings.py文件路鹰,關(guān)閉DEBUG模式贷洲,修改靜態(tài)文件鏈接,在settings.py中STATIC_URL下添加靜態(tài)鏈接文件位置晋柱,并在項(xiàng)目中建立靜態(tài)文件夾static

    # 添加靜態(tài)鏈接文件位置优构,該文件夾需要在服務(wù)器上創(chuàng)建
    STATIC_ROOT = os.path.join(BASE_DIR, '../collected_static')
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
    )
    

    在項(xiàng)目中新建uwsgi配置文件uwsgi.ini并填入以下內(nèi)容,并根據(jù)自身項(xiàng)目修改雁竞,在項(xiàng)目目錄新建uwsgi文件夾

    [uwsgi]
    socket = 127.0.0.1:8000 # uwsgi監(jiān)聽(tīng)端口
    chdir = ***** # 自身項(xiàng)目在服務(wù)器上地址
    module = *****.wsgi #自身項(xiàng)目中的wsgi
    master = true 
    processes = 1 
    threads = 2  # 線程數(shù)
    max-requests = 2000 # 最大請(qǐng)求
    chmod-socket = 664
    vacuum = true 
    # uwsgi文件存放地址
    stats = %(chdir)/uwsgi/uwsgi.status
    pidfile = %(chdir)/uwsgi/uwsgi.pid 
    daemonize = %(chdir)/uwsgi/uwsgi.log
    

    在服務(wù)器中鏈接靜態(tài)文件钦椭,如果看到多少文件鏈接成功則配置成功

    sudo python3 manage.py collectstatic
    

    修改nginx配置拧额,sudo vim /etc/nginx/nginx.conf,修改server配置

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    
    server {
        listen 80;
        server_name localhost;
        charset utf-8;
    
        location / {
          # 監(jiān)聽(tīng)端口和uwsgi相同
          uwsgi_pass 127.0.0.1:8000;
          include /etc/nginx/uwsgi_params;
        }
    
        location /static {
          #uwsgi配置的靜態(tài)鏈接的地址
          alias ******/collected_static/; 
        }
    
        error_page 404 /404.html;
            location = /40x.html {
        }
    
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    

    上面已經(jīng)配置完成了彪腔,下面啟動(dòng)項(xiàng)目

    # 到項(xiàng)目目錄下
    sudo uwsgi3 --ini uwsgi.ini
    # 啟動(dòng)nginx
    sudo systemctl start nginx 
    

    如果以上兩個(gè)都沒(méi)有報(bào)錯(cuò)表面已經(jīng)配置成功了侥锦,可以到本地機(jī)器上通過(guò)IP訪問(wèn)看下是否成功 .
    如果更改了代碼,需要重新啟動(dòng)uwsgi3

      # 到項(xiàng)目目錄下
      cd uwsgi
      sudo uwsgi3 --reload uwsgi.pid 
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末德挣,一起剝皮案震驚了整個(gè)濱河市恭垦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌格嗅,老刑警劉巖番挺,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異屯掖,居然都是意外死亡玄柏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門贴铜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粪摘,“玉大人,你說(shuō)我怎么就攤上這事阀湿「鲜欤” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵陷嘴,是天一觀的道長(zhǎng)映砖。 經(jīng)常有香客問(wèn)我,道長(zhǎng)灾挨,這世上最難降的妖魔是什么邑退? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮劳澄,結(jié)果婚禮上地技,老公的妹妹穿的比我還像新娘。我一直安慰自己秒拔,他們只是感情好莫矗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著砂缩,像睡著了一般作谚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庵芭,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天妹懒,我揣著相機(jī)與錄音,去河邊找鬼双吆。 笑死眨唬,一個(gè)胖子當(dāng)著我的面吹牛会前,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匾竿,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瓦宜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了搂橙?” 一聲冷哼從身側(cè)響起歉提,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎区转,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體版扩,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡废离,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了礁芦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜻韭。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖柿扣,靈堂內(nèi)的尸體忽然破棺而出肖方,到底是詐尸還是另有隱情,我是刑警寧澤未状,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布俯画,位于F島的核電站,受9級(jí)特大地震影響司草,放射性物質(zhì)發(fā)生泄漏艰垂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一埋虹、第九天 我趴在偏房一處隱蔽的房頂上張望猜憎。 院中可真熱鬧,春花似錦搔课、人聲如沸胰柑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)柬讨。三九已至,卻和暖如春急灭,著一層夾襖步出監(jiān)牢的瞬間姐浮,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工葬馋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卖鲤,地道東北人肾扰。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蛋逾,于是被迫代替她去往敵國(guó)和親集晚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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