使用騰訊雲配置小程式Python開發環境

goodspeed發表於2019-02-24

最近做小程式伺服器的配置,這一篇是伺服器配置的記錄,方便以後安裝配置。

購買伺服器

之所以選騰訊雲的原因很簡單,那就是便宜,選用成都區,最低配置每月只需29¥。
騰訊雲 官網註冊登入就可以直接購買伺服器了。
伺服器系統我選擇的是 ubuntu。

伺服器配置

啟動服務後使用新使用者(此步驟不是必須)。

新建使用者

首先確認使用的是 root 使用者登入如果不是使用以下命令切換

sudo su複製程式碼

使用 adduser 命令建立使用者

adduser username # username替換為你自己的使用者名稱複製程式碼

接下來的步驟會讓你輸入密碼和個人資訊,自己設定就好。

使用usermod 命令將新建的使用者新增到 sudo 組。

usermod -aG sudo username複製程式碼

關閉ssh密碼登入使用金鑰登入

安裝openssh

因為是新系統,先執行一下 apt-get update

sudo apt-get update
sudo apt-get install openssh-server複製程式碼

啟動ssh服務

可以通過sudo su命令來臨時切換到root許可權(不是所有的賬號都可以切換到root許可權,只有在/etc/sudoers檔案中符合規則的使用者能切換root身份)

sudo su
/etc/init.d/ssh start複製程式碼

使用金鑰登入

  • 伺服器端生成金鑰對:
cd /home/gs # 開啟新建的使用者目錄
mkdir .ssh
cd .ssh
ssh-keygen -b 2048 -t rsa複製程式碼

ssh-keygen的基本用法:
-b後面是指定加密後的字串長度
-t後面是指定加密演算法,常用的加密演算法有rsa,dsa等

預設生成的檔案如下:

id_rsa.pub  # 公鑰檔案
id_rsa      # 私鑰檔案複製程式碼
  • 新建 authorized_keys 檔案

將本地機器的 id_rsa.pub 檔案內容複製到 authorized_keys 檔案

  • 測試使用公鑰是否可以登入
ssh name@host  # name 是機器的使用者名稱 host 是機器的地址複製程式碼

關閉ssh密碼登入

確認可以通過私鑰進行登入後,關閉ssh密碼登入。

sudo su
vim /etc/ssh/sshd_config複製程式碼

將 PasswordAuthentication yes修改成PasswordAuthentication no

重啟系統

sudo su
reboot複製程式碼

搭建開發環境

安裝 zsh

在終端中輸入下面命令進行安裝:

sudo apt-get install zsh複製程式碼

輸入下面命令進行替換zsh替換為你的預設shell:

chsh -s /bin/zsh複製程式碼

重啟終端使用 zsh

安裝oh-my-zsh

  • 通過curl安裝
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh複製程式碼
  • 通過wget安裝
wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh複製程式碼

安裝 pip

sudo apt-get install python-pip  # 安裝 pip
pip install --upgrade pip
sudo apt-get install python3-pip  # 安裝 pip3
pip3 install --upgrade pip複製程式碼

安裝 virtualenv

因為我使用 python3 作為開發環境,所以這裡使用 pip3

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper複製程式碼

在 .zshrc 新增以下內容

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh複製程式碼

然後執行命令:

source .zshrc複製程式碼

現在可以輸入 workon 測試 virtualenvwrapper 是否已經安裝成功。

建立虛擬環境

mkvirtualenv py3 -p python3  # -p 引數指定 python 版本複製程式碼

測試虛擬環境

workon py3複製程式碼

安裝 ipython

首先進入 py3 虛擬環境

workon py3複製程式碼

使用 pip 安裝 ipython

pip install ipython # 安裝 ipython複製程式碼

配置 vim

python vim 配置使用的是 py-vim

需要先安裝 ctags和 cmake

sudo apt-get install ctags
sudo apt-get install cmake複製程式碼

然後將 py-vim clone 到伺服器

git clone https://github.com/gusibi/py-vim
cd py-vim
sh setup.sh複製程式碼

使用 Caddy 配置 https

Caddy是一種新的Web伺服器,由 go 編寫,預設使用 https 協議。caddy 配置簡單,容易上手。

安裝 caddy 二進位制檔案

Caddy專案提供了一個安裝指令碼,可以檢索和安裝Caddy伺服器的二進位制檔案。 可以執行以下命令直接安裝:

curl -s https://getcaddy.com | bash複製程式碼

在安裝過程中,指令碼將使用sudo獲取管理許可權,以便將Caddy檔案放在系統範圍的目錄中,因此可能會提示您輸入密碼。

配置 caddy 必要的目錄

Caddy的自動TLS支援和unit檔案需要特定的目錄和檔案許可權。 我們將在這一步中建立它們。

首先,建立一個目錄,該目錄將容納主要的配置檔案Caddyfile 。

# 建立一個目錄,該目錄將容納主要的配置檔案Caddyfile
sudo mkdir /etc/caddy
# 將此目錄的所有者更改為root使用者及其組到www-data ,以便Caddy可以讀取它
sudo chown -R root:www-data /etc/caddy
# 建立一個空的Caddyfile
sudo touch /etc/caddy/Caddyfile
# 在/etc/ssl建立另一個目錄用來儲存自動獲得的SSL私鑰和證照
sudo mkdir /etc/ssl/caddy
# 將此目錄的所有者更改為root使用者及其組到www-data
sudo chown -R www-data:root /etc/ssl/caddy
# 確保沒有人可以通過刪除其他人的所有訪問許可權來讀取這些檔案。
sudo chmod 0770 /etc/ssl/caddy
# 建立的最終目錄是網站的釋出目錄
sudo mkdir /var/www
# 該目錄應由www-data完全擁有。
sudo chown www-data:www-data /var/www
# 建立日誌目錄
sudo mkdir /var/log/caddy
# 將此目錄的所有者更改為root使用者及其組到www-data
sudo chown -R www-data:root /var/log/caddy複製程式碼

將 caddy 配置為系統服務

從官方的Caddy儲存庫下載檔案。 curl命令的附加-o引數會將該檔案儲存在/etc/systemd/system/目錄中,並使其對systemd可見。

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service複製程式碼

reload 系統服務

sudo systemctl daemon-reload複製程式碼

將caddy 設定為開機啟動

sudo systemctl enable caddy.service複製程式碼

檢查 caddy 服務是否已正式載入

sudo systemctl status caddy.service複製程式碼

允許HTTP和HTTPS連線

Caddy使用HTTP和HTTPS協議提供網站,因此我們需要允許訪問相應的埠,以便使網路可以從網路獲取

sudo ufw allow http
sudo ufw allow https複製程式碼

現在修改caddy 配置 /etc/caddy/Caddyfile

https://your.domain {  # 啟用 https
    gzip
    log /var/log/caddy/access.log  # 指定日誌目錄
    proxy / http://127.0.0.1:8888 {
        header_upstream Host {host}
        header_upstream X-Real-IP {remote}
        header_upstream X-Forwarded-For {remote}
        header_upstream X-Forwarded-Proto {scheme}
    }
}複製程式碼

儲存檔案,啟動 caddy

sudo systemctl start caddy    # 啟動 caddy
sudo systemctl restart caddy  # 重啟 caddy
sudo systemctl stop caddy     # 關閉 caddy複製程式碼

現在啟動服務,訪問 https://your.domain 應該就能看到資料。
日誌檔案在 /var/log/caddy/ 目錄下。

總結

小程式開發需要 https,這裡我們使用了 caddy 作為 web 伺服器。伺服器配置好後可以直接儲存為映象,以後可以直接從映象開啟服務,就不再需要配置環境。

參考連結


最後,感謝女朋友支援。

歡迎關注(April_Louisa) 請我喝芬達
歡迎關注
歡迎關注
請我喝芬達
請我喝芬達

相關文章