CentOS7.2騰訊云安裝部署Nginx+uwsgi+Django生產(chǎn)環(huán)境

Django==2.0 Python==3.6.9

使用tar命令解壓縮,tar是Linux系統(tǒng)下的壓縮與解壓縮的命令除秀,tar命令后面的參數(shù)主要有以下幾種:
下面的五個參數(shù)為必選參數(shù),有且只能有一個 ,代表壓縮與解壓縮的模式:
-c: 建立壓縮檔案
-x:解壓
-t:查看內(nèi)容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
可選參數(shù),可以一個或者多個并用:
-z:有g(shù)zip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標準輸出
Python下載地址

補充安裝python 設(shè)置ssl文件導(dǎo)入缆镣,不設(shè)置會導(dǎo)致些問題



vi編輯器查找字符命令 在命令輸入模式下輸入 :/_socket
1.安裝python

#解壓命令如下
tar -xzvf Python-3.6.9.tgz
#安裝依賴
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel
#進入解壓文件目錄配置安裝路徑
./configure --prefix=/usr/local/python3
#安裝zlib依賴和更新zlib
yum -y install zlib*
yum update zlib
#安裝Python
make && make install

結(jié)尾顯示如下表示安裝完成
Looking in links: /tmp/tmptrardd19
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2

創(chuàng)建Python軟連接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
驗證是否安裝正確
[root@VM_0_17_centos bin]# python3
Python 3.6.9 (default, Dec 11 2019, 15:28:02)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>


創(chuàng)建pip3軟連接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
更新pip
pip3 install --upgrade pip
安裝虛擬環(huán)境
pip3 install virtualenv
查找文件
find / -name virtualenv
用命令創(chuàng)建虛擬環(huán)境
/usr/local/python3/bin/virtualenv my_web_project
激活環(huán)境
source bin/activate

安裝Django
我個人用的Django==2.0
pip3 install Django==2.0

2.安裝MySql
mysql國內(nèi)鏡像

查看禁用
yum repolist all | grep mysql
修改禁用(enabled=0是關(guān);1是開)
vim /etc/yum.repos.d/mysql-community.repo
查看mysql安裝包
yum repolist all | grep mysql
rpm -qa | grep mysql
[root@VM_0_17_centos ~]#  rpm -qa | grep mysql
mysql-community-client-5.6.41-2.el7.x86_64
mysql-community-release-el7-5.noarch
mysql-community-devel-5.6.41-2.el7.x86_64
mysql-community-server-5.6.42-2.el7.x86_64
mysql-community-libs-5.6.41-2.el7.x86_64
mysql-community-common-5.6.42-2.el7.x86_64
如果有安裝過5.6的最好卸載掉安裝5.7及以上
卸載
[root@VM_0_17_centos ~]#  yum remove mysql-community*


下載mysql
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
執(zhí)行安裝
yum -y install mysql mysql-server mysql-devel
安裝完成顯示如下
Dependency Installed:
mysql-community-common.x86_64 0:5.6.46-2.el7        numactl-libs.x86_64 0:2.0.12-3.el7_7.1
  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7        perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
  perl-DBI.x86_64 0:1.627-4.el7                       perl-Data-Dumper.x86_64 0:2.145-3.el7
  perl-IO-Compress.noarch 0:2.061-2.el7               perl-Net-Daemon.noarch 0:0.48-5.el7
  perl-PlRPC.noarch 0:0.2020-14.el7

Replaced:
  mariadb-libs.x86_64 1:5.5.52-1.el7
Complete!

如果發(fā)現(xiàn)安裝速度過慢我們可以更換一下源(阿里源)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_old
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

如果還是過慢就自己下載軟件包傳上去(下面是緩存路徑)
/var/cache/yum/x86_64/7/mysql57-community/packages/

啟動mysql服務(wù)
service mysqld start
進入數(shù)據(jù)庫(初始密碼為空)
mysql -u root -p
修改root密碼
set password for root@localhost = password('自己的密碼'); 

3.配置數(shù)據(jù)庫

[在mysql shell環(huán)境下執(zhí)行]
創(chuàng)建項目所需的數(shù)據(jù)庫(xxx數(shù)據(jù)庫名稱)自己替換
create database xxx default charset=utf8mb4 default collate utf8mb4_unicode_ci;
創(chuàng)建用戶(xxx用戶名),(yyy密碼)自己替換
create user 'xxx'@'localhost' identified by 'yyy';
用戶分配權(quán)限(xxx數(shù)據(jù)庫名稱)试浙,(nnn用戶名)自己替換
grant all privileges on xxx.* to 'nnn'@'localhost';
刷新
flush privileges;

額外內(nèi)容manage.py數(shù)據(jù)庫操作
導(dǎo)出數(shù)據(jù)
[SQLite3]
python manage.py dumpdata > data.json
[mysql 在數(shù)據(jù)庫調(diào)用]
mysqldump -u xxx -p xxx.db > data.sql
導(dǎo)入數(shù)據(jù)
[SQLite3]
python manage.py loaddata data.json
[mysql 在mysql shell下調(diào)用]
進入數(shù)據(jù)庫
source xxx.sql;
文件上傳scp[user用戶名董瞻,ip服務(wù)器IP,xxx是文件]
scp xxx.xx user@IP:/home/xxx.xx

4.安裝uwsgi
uwsgi文檔

在系統(tǒng)環(huán)境下安裝田巴,非虛擬環(huán)境
pip3 install uwsgi
uwsgi測試
-------------------------代碼------------------------------
創(chuàng)建boobar.py文件
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]
-------------------------代碼------------------------------

啟動測試
/usr/local/python3/bin/uwsgi --http :9090 --wsgi-file foobar.py
打開網(wǎng)頁訪問9090端口看是否返回Hello World
關(guān)閉uwsgi
ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9


配置uwsgi.ini文件
-------------------------代碼------------------------------
# Web.ini file    path;/home/Web_uwsgi/Web.ini
[uwsgi]
#此處填寫項目地址钠糊,我的Django項目地址是/home/WebProject
chdir = /home/WebProject
#虛擬環(huán)境的目錄
home = /home/my_web_project 
# wsgi文件
module = WebProject.wsgi:application
# process-related settings
# master
master = True
# 進程數(shù)量
processes = 4
#最大請求
max-requests = 5000
#請求超時時間(單位秒)
harakiri = 60
#設(shè)置監(jiān)聽端口
socket = 127.0.0.1:8001
#使用用戶組,使用root用戶比較危險
uid = 1000
gid = 2000 
#快捷啟動重啟目錄
pidfile = /home/Web_uwsgi/master.pid
#此處配置的為日志文件存放的地方
daemonize = /home/Web_uwsgi/my_uwsgi.log
#服務(wù)器停止后進行回收log文件等操作
vacuum = True
-------------------------代碼------------------------------

啟動uwsgi.ini
uwsgi --ini /home/Web_uwsgi/Web.ini
查看是否啟動
ps -aux | grep uwsgi
打印如下就說明以啟動
1000     12782  0.0  1.5 229732 29208 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
1000     12790  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
1000     12791  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
1000     12792  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
1000     12793  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini

5.安裝nginx

準備工具
sudo yum install yum-utils
創(chuàng)建nginx.repo文件
sudo vim /etc/yum.repos.d/nginx.repo
并添加以下內(nèi)容
-----------------------------Code---------------------------------
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
-----------------------------Code---------------------------------

編輯配置文件
vim /etc/nginx/conf.d/myconf.conf
-----------------------------Code---------------------------------
#Nginx反向代理服務(wù)器壹哺,主要功能就是將發(fā)送到指定端口的數(shù)據(jù)轉(zhuǎn)發(fā)到相應(yīng)的服務(wù)器中
server {
   listen 80; # 監(jiān)聽80端口
   server_name WebObject; # 路徑前面的url名稱抄伍,也就是你在瀏覽器中輸入訪問這個服務(wù)器的網(wǎng)址,比如1.1.1.10
   access_log /var/log/nginx/access.log main; # Nginx日志配置
   charset utf-8; # Nginx編碼
   client_max_body_size 75M;#最大上傳大小

   error_page 404 /404.html; # 配置notfound錯誤頁面
   error_page 500 502 503 504 /50x.html; # 配置50X錯誤頁面

# 指定項目路徑uwsgi管宵,此處配置的就是Nginx和uwsgi之間的代理
   location / {
      include /etc/nginx/uwsgi_params; # 導(dǎo)入Nginx的模塊截珍,這個模塊是用來和uWSGI進行通訊的
      uwsgi_connect_timeout 30; # 設(shè)置連接uWSGI超時時間
      uwsgi_pass 127.0.0.1:8001; # 指定uwsgi的sock文件,此處填寫要和uwsgi配置文件中的socket后面是一樣的
   }

   location /media/{
      alias /home/WebProject/media;
   }

   # 指定靜態(tài)文件路徑箩朴,此處指定你的CSS和JS的文件路徑岗喉,也就是你Django項目中的靜態(tài)文件夾的地址,配置不好炸庞,所有的CSS以及JS效果都看不到
   location /static/ {
      alias /home/WebProject/static;
      #index index.html index.htm;
   }
}
-----------------------------Code---------------------------------

檢測配置文件是否正確(正確打印如下) nginx -t 
[root@VM_0_17_centos Web_uwsgi]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
啟動nginx服務(wù)
service nginx restart
查看以運行服務(wù)
netstat -ntpl
重新加載uwsgi
uwsgi --reload uwsgi.pid
ps -ef | grep uwsgi
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钱床,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子埠居,更是在濱河造成了極大的恐慌查牌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滥壕,死亡現(xiàn)場離奇詭異纸颜,居然都是意外死亡,警方通過查閱死者的電腦和手機绎橘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門胁孙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事浊洞。” “怎么了胡岔?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵法希,是天一觀的道長。 經(jīng)常有香客問我靶瘸,道長苫亦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任怨咪,我火速辦了婚禮屋剑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诗眨。我一直安慰自己唉匾,他們只是感情好,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布匠楚。 她就那樣靜靜地躺著巍膘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芋簿。 梳的紋絲不亂的頭發(fā)上峡懈,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音与斤,去河邊找鬼肪康。 笑死,一個胖子當著我的面吹牛撩穿,可吹牛的內(nèi)容都是我干的磷支。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼食寡,長吁一口氣:“原來是場噩夢啊……” “哼齐唆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起冻河,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤箍邮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后叨叙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锭弊,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年擂错,在試婚紗的時候發(fā)現(xiàn)自己被綠了味滞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖剑鞍,靈堂內(nèi)的尸體忽然破棺而出昨凡,到底是詐尸還是另有隱情,我是刑警寧澤蚁署,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布便脊,位于F島的核電站,受9級特大地震影響光戈,放射性物質(zhì)發(fā)生泄漏哪痰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一久妆、第九天 我趴在偏房一處隱蔽的房頂上張望晌杰。 院中可真熱鬧,春花似錦筷弦、人聲如沸肋演。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惋啃。三九已至,卻和暖如春监右,著一層夾襖步出監(jiān)牢的瞬間边灭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工健盒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绒瘦,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓扣癣,卻偏偏與公主長得像惰帽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子父虑,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359