前言
人生苦短,我用python
這是之前經常聽到的一句笑談。因為新公司很多業務是用的python語言,所以這幾天也一直在學習python的一些東西。
作為一個之前一直java后端的開發人員,對比java最大的感受如下:
- 語法簡潔優美
- 開發效率高
- 支持類庫強大
這僅僅是我一家之言。從我接觸python到現在也就一個星期時間,我用了兩天時間自己搭建了一個建議博客小站,哈哈,想想還是挺有成就感的。
資源
因為前天購買了一個域名,所以昨天也是加班加點把一個簡易的博客小站部署到了線上去。
我自己的博客小站域名為:www.floweroman.com
因為我自己的網名:'一枝花算不算浪漫', 而floweroman=flower romantic。 哈哈,這都是自己yy的,但是程序員還是應該保持點騷氣。
這里也特別感謝追夢人物的系列博客,給我的幫助很多。
本人博客源碼git:https://github.com/barrywangmeng/blogProject.git
后期我會一步步完善博客的內容,使得它真正可看可用。
教程
-
代碼
上面資源中已經發出了教程以及我自己的源碼,感興趣的朋友可以自行查看,這里不做重點贅述。 -
域名購買
當我們項目寫完的時候我們當然是要挑選一個自己滿意的域名。
這里不建議從國內一些網站上購買域名(我一個同事在國內一家網站上購買的域名,最近被GA打電話要求去備案),所以我們直接從外國網站上買,避免一些不必要的麻煩。
這里推薦網址:https://www.namesilo.com/
如下圖:
這個網站是可以支持支付寶的,基本很多域名都是$8.9 一年。當然還有其他國外的域名網站可以購買,大家可以自行搜索。
- 服務器購買
本打算購買國外服務器的,以后還可以搭梯子之類的。
但是前一段時間阿里和騰訊雲都有做活動,10元每月的價格實在心動,所以這次就在騰訊雲注冊了服務器。(特別說明:騰訊雲注冊服務器后可送一個星期的體驗時間)
購買的服務器推薦系統為:Ubuntu 64位
騰訊雲地址:https://cloud.tencent.com
-
購買的主機狀況以及運行狀態:
-
續費情況:(這是之前活動每個人可以續費三次)
我們可以點擊后面的登陸或者用第三方的xshell等登陸自己的服務器:
服務器和域名均購買完成后,我們將域名映射到我們自己的ip上:
- 代碼部署
這里才是今天要講的重點:
一、 github倉庫
把整個django項目上傳到github,方便把代碼拉到服務器(你也可以使用xftp軟件)
二、創建新用戶
一般不建議在root用戶下進行配置,我們可以創建一個新用戶,xshell連接遠程服務器,輸入命令:
sudo useradd -m -s /bin/bash wangmeng #創建新用戶 wangmeng替換為你自己的用戶名,下面一樣
sudo usermod -a -G sudo wangmeng #把新用戶加入超級權限組
sudo passwd wangmeng #為新用戶設置密碼
su - wangmeng #切換到新用戶
我們看到@前面已經是wangmeng開頭了,說明新用戶已經創建好了:
三、安裝軟件
首先,更新一下服務器的包安裝工具
sudo apt-get update
sudo apt-get upgrade
下一步安裝主要用的的軟件,nginx、git和創建虛擬環境的virtualenv:
sudo apt-get install nginx
sudo apt-get install git python3 python3-pip
sudo pip3 install virtualenv
nginx安裝完就會自動啟動,這時你到瀏覽器輸入域名或者ip就能看到nginx的歡迎界面:
四、上傳代碼到服務器
mkdir -p ~/sites/www.floweroman.com
打開目錄
cd ~/sites/www.floweroman.com
我們的代碼要在虛擬環境里運行,所以先創建虛擬環境
virtualenv --python=python3 env #env是虛擬環境名字,沒必要和這里的一樣
運行完以后執行 ls 命令,發現多了一個env文件夾,這就是我們要的虛擬環境目錄:
五、拉取git代碼
下一步要把代碼從github拉到服務器,git工具我們之前已經安裝好了,執行命令:
git clone https://github.com/barrywangmeng/blogProject.git
六、安裝依賴
現在代碼已經成功放到服務器里了
安裝其他依賴
首先進入虛擬環境,在虛擬環境下打開django項目目錄,由requirements.txt安裝依賴。
source env/bin/activate #進入虛擬環境
cd blogProject #進入項目目錄
pip install -r requirements.txt #安裝依賴
七、后續操作
python manage.py collectstatic
生成數據庫文件
python manage.py migrate
創建超級用戶(后台管理使用)
python manage.py createsuperuser
配置nginx
deactivate #退出虛擬環境
cd /etc/nginx/sites-enabled
sudo rm -f default #刪除默認配置文件
cd /etc/nginx/sites-available
sudo rm -f default #刪除默認配置文件
設置配置文件
sudo vim myblog.conf
輸入如下代碼:
server { charset utf-8; listen 80; server_name www.floweroman.com; location /static { alias /home/wangmeng/sites/www.floweroman.com/blogProject/static; } location /media { alias /home/wangmeng/sites/www.floweroman.com/blogProject/media; } location / { proxy_set_header Host $host; proxy_pass http://unix:/tmp/www.floweroman.com.socket; } }
按ESC退出編輯,繼續輸入:wq,保存並退出文件
八、激活網站
sudo ln -s /etc/nginx/sites-available/myblog.conf /etc/nginx/sites-enabled/myblog.conf
測試配置語法問題:
sudo service nginx configtest
重啟nginx服務器:
sudo service nginx restart
使用gunicorn
進入虛擬環境下的blogProject(存放代碼的目錄)網站目錄
cd /home/wangmeng/sites/www.floweroman.com/
source env/bin/activate
- cd blogProject
安裝gunicorn:
pip install gunicorn
用gunicorn啟動服務器進程:
gunicorn --bind unix:/tmp/www.floweroman.com.socket blogProject.wsgi:application #啟動gunicorn
自動啟動gunicorn:
gunicorn --bind unix:/tmp/www.floweroman.com.socket blogProject.wsgi:application&
好了,到了這里已經大功告成了!訪問www.floweroman.com即可出現我們的博客首頁了。
大家如果有什么問題都可以問我。