前言
在阿里云上注冊了一個賬號逢艘,可以免費使用一個月阿里云ECS服務(wù)器哥倔,于是試了一下,也踩了幾個坑唯沮,做個筆記供以后查閱吧。主機鏡像為debian
1.1. 用ssh鏈接到主機
首先通過阿里云的控制臺查看到主機的ip地址我這里的IP是 120.79.210.25堪遂,在控制臺輸入
ssh root@120.79.210.25
這里由于我已經(jīng)連接過介蛉,重置了硬盤,所以連接失敗溶褪,刪除.ssh目錄下的文件就可以重新連接了!執(zhí)行以下命令:
cd .ssh
rm -rf *
這里填yes
這樣就成功的連接到了主機币旧,就可以開始下面的步驟了。
2. 安裝并測試nginx
2.1. 安裝nginx
apt-get update
apt-get install nginx
安裝好了提示錯誤猿妈!先忽略吹菱,執(zhí)行命令修改文件巍虫。
vim /etc/nginx/sites-enabled/default
將原文件中的
listen 80 defaul_server;
listen [::]:80 default_server;
改為:
listen 80;
# listen [::]:80 default_server;
提示:按i進入編輯模式鳍刷,編輯完后按ESC鍵占遥,再輸入“:”,輸入wq保存并退出输瓜。后面還需要修改這個文件瓦胎,可以一次改好,但是為了方便測試尤揣,就一步一步來吧搔啊。
2.2. 啟動nginx
/etc/init.d/nginx restart
然后在瀏覽器中輸入IP地址(120.79.210.25)可以看到下面頁面就表示nginx成功了!
3. 安裝pip和python虛擬環(huán)境
3.1. 安裝pip
apt-get install python3-pip
3.2. 安裝python虛擬環(huán)境并激活
cd /var/www
pip3 install virtualenv
virtualenv -p /usr/bin/python3 venv
其中venv是虛擬環(huán)境名稱北戏,可以隨便取负芋。
激活虛擬環(huán)境如下:
source /var/www/venv/bin/activate
注意圖中的 (venv) root@website:/var/www,后續(xù)的操作都在虛擬環(huán)境中嗜愈,如果中途退出再次連接旧蛾,請再次激活。
4. 安裝Django并測試
4.1 安裝django芝硬,新建一個website的項目蚜点,項目中新建一個blog的App
pip3 install django
新建一個webstie的工程
django-admin startproject website
新建一個 blog app
cd website
python manage.py startapp blog
4.2 測試Django
cd website
python manage.py runserver 0.0.0.0:8000
在瀏覽器中輸入 120.79.210.25:8000,再次出現(xiàn)錯誤:
-
網(wǎng)頁無法訪問:
解決辦法:阿里云服務(wù)器控制臺-本實例安全組-快速創(chuàng)建規(guī)則(右上角)-自定義端口:8000/8000拌阴,授權(quán)對象:0.0.0.0/0
本地安全組.png
添加端口.png -
出現(xiàn)下圖(Invalid HTTP_HOST header: '120.79.210.25:8000'. You may need to add '120.79.210.25' to ALLOWED_HOSTS.)錯誤:
allowed hosts 錯誤.png
解決辦法:ctrl+c停止服務(wù)器后,找到并修改settings.py文件奶镶。
cd /var/www/website/website
vim settings.py
找到ALLOWED_HOSTS = [] 修改為 ALLOWED_HOSTS = ['*'] 保存退出迟赃。再次運行服務(wù)器,刷新瀏覽器可以看到django界面就成功了厂镇。再次Ctrl+C退出服務(wù)纤壁。
4.3 做點簡單的測試
4.3.1 在blog文件夾下新建static,templates文件夾捺信。
- 建立static文件夾酌媒,編寫style.css文件
cd /var/www/website/blog
mkdir static
cd static
vim style.css
style.css內(nèi)容如下:
h1{
font-size:35px;
}
- 編寫template文件夾,編寫 index.html文件.
cd /var/www/website/blog
mkdir templates
cd templates
vim index.html
- 業(yè)務(wù)邏輯
vim /var/www/website/website/urls.py
添加如下代碼:
def index(request):
return render(request, "index.html")
- 路由
vim /var/www/website/website/urls.py
- 注冊APP
vim /var/www/website/website/settings.py
找到INSTALLED_APPS添加‘blog’迄靠。再次運行django服務(wù)器秒咨。
cd /var/www/website
python manage.py runserver 0.0.0.0:8000
在瀏覽器中分別輸入:120.79.210.25:8000 120.79.210.25/blog查看測試結(jié)果
- 在來看看后臺有沒有問題
Ctrl+C退出服務(wù)蝗拿。
python manage.py migrate
創(chuàng)建管理員賬戶
python manage.py createsuperuser
再次啟動內(nèi)置服務(wù)器孽糖,瀏覽器輸入120.79.210.25:8000/admin 輸入剛才創(chuàng)建的用戶名密碼休雌,登錄.
成功了Ctrl+C退出服務(wù)咖摹。
OK呀伙!現(xiàn)在nginx和Django已經(jīng)安裝好了,需要安裝uwsgi來把他們連接起來些椒,這里掉坑了扶歪。。糙置。云茸。。谤饭。标捺。
5. 安裝uwsgi
5.1 安裝
pip3 install uwsgi
測試uwsgi:
cd /var/www/website
uwsgi --http :8000 --module website.wsgi
在瀏覽器中輸入120.79.210.25/blog 和 120.79.210.25/admin 頁面顯示成功,但是沒有加css載靜態(tài)文件网持。
5.2 編輯uwsgi.ini 放在www目錄下
vim /var/www/uwsgi.ini
內(nèi)容為:
[uwsgi]
socket = :8001
processes = 4
threads = 2
master = true
chdir = /var/www/website
module = website.wsgi
home = /var/www/venv
vacuum = true
socket 必須和后面的nginx文件中的設(shè)置一樣宜岛。nchdir是項目目錄,module就是和項目同名的wsgi文件功舀,home是虛擬環(huán)境目錄萍倡。
5.3 編輯nignx文件
vim /etc/nginx/sites-enabled/default
最后是這個樣子,我刪掉了其中的注釋
upstream django{
server 127.0.0.1:8001;
}
server{
listen 80;
charset utf-8;
server_name 120.79.210.25;
client_max_body_size 10M;
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
}
location /static {
alias /var/www/website/static/;
}
}
重新啟動nginx:
/etc/init.d/nginx restart
啟動uwsgi:
cd /var/www
uwsgi --ini uwsgi.ini
在瀏覽器中直接輸入ip地址辟汰,訪問80端口列敲,看看是不是已經(jīng)聯(lián)通了
可以看到,可以通過80端口訪問了帖汞,ctrl+c 結(jié)束服務(wù)戴而。
5.4 最后一步,搞定靜態(tài)文件
在根目錄新建static文件夾翩蘸,然后讓Django取收集靜態(tài)文件到這個文件夾所意。
cd /var/www/website
mkdir static
編輯settings.py:
vim /var/www/website/website/settings.py
添加如下代碼:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
保存退出,收集靜態(tài)文件:
cd /var/www/website
python manage.py collectstatic
再次啟動ngnix 和 uwsgi 服務(wù)
/etc/init.d/nginx restart
cd /var/www
uwsgi --ini uwsgi.ini
啟動成功
再次在瀏覽器中瀏覽
為了明顯一點催首,我重新修改了style.css文件扶踊,font-size加大了點,再次用命令收集一下靜態(tài)文件郎任,