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