在 ubuntu 18.4 上從無到有安裝 Caddy
Caddy 的一個特色就是有申請設定 domain name 時,可以自動啟動 https。
參考這篇
https://www.digitalocean.com/community/tutorials/how-to-host-a-website-with-caddy-on-ubuntu-16-04
1. 安裝 golang 環境,並設定好 $GOPATH
$ sudo apt-get update
$ sudo apt-get install golang-go
2. 新增用戶 (optional)
$ sudo adduser [username]
$ sudo adduser [username] sudo
3. 建立 Caddy
go get github.com/mholt/caddy/caddy # 取得 caddy
cd $GOPATH/src/github.com/mholt/caddy # 進入專案資料夾
git tag # 查看標籤,用以查看較新的版本,此時為 v0.11.4
git checkout -b "adding_plugins" "v0.11.4" # 建立分支
go install github.com/mholt/caddy/caddy # 建立
cd $GOPATH/bin # 進入執行檔資料夾
./caddy # 測試執行,預設 port 為 2015
4. 設置 Caddy
sudo cp $GOPATH/bin/caddy /usr/local/bin/ # 將執行檔拷備到執行目錄
sudo chown root:root /usr/local/bin/caddy # 設定所有人
sudo chmod 755 /usr/local/bin/caddy # 設定存取權限
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy # 設定可以使用 1024 以下的 port
sudo mkdir /etc/caddy # 建立 Caddy 所使用的設定資料夾
sudo chown -R root:www-data /etc/caddy # 設定可以給 www-data 讀取
sudo mkdir /etc/ssl/caddy # 建立儲存 ssl 簽證檔的資料夾
sudo chmod 0770 /etc/ssl/caddy
sudo mkdir /var/www # 建立網站根目錄
sudo chown www-data:www-data /var/www # 設定資料夾所有人
sudo touch /etc/caddy/Caddyfile # 建立 Caddy 的設定檔
sudo cp $GOPATH/src/github.com/mholt/caddy/dist/init/linux-systemd/caddy.service /etc/systemd/system/ # 拷備服務啟動檔
sudo chmod 644 /etc/systemd/system/caddy.service
sudo systemctl daemon-reload # 服務重新載入
sudo systemctl status caddy # 查看狀態
5. 防火牆
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow OpenSSH
sudo ufw allow sftp
sudo ufw enable
6. 設定 Caddy
sudo touch /var/www/index.html # 建立測試首頁
sudo nano /var/www/index.html # 編輯一下
sudo nano /etc/caddy/Caddyfile # 編輯設定檔
# 注意:修改成你自己主機的 domain name
shinder.riarock.com {
root /var/www
gzip {
ext .html .htm .php
level 6
}
}
sudo systemctl start caddy # 啟動 Caddy
sudo service caddy status # 查看狀態
7. 使用 Caddy 外掛
cd $GOPATH/src/github.com/mholt/caddy
nano caddy/caddymain/run.go # 編輯設定檔
# 以下就不做了,請參考原文
做到這裡基本上已經完成,此時 http 和 https 都可以正常使用。
8. 設定 PHP
sudo apt show php-fpm # 查看 php-fpm 最新版本
sudo apt install -y php7.2-fpm php7.2-cli curl # 安裝
sudo service php7.2-fpm status # 檢查狀態
sudo service php7.2-fpm start # 啟動
sudo nano /etc/caddy/Caddyfile # 編輯 Caddy 設定檔
shinder.riarock.com {
root /var/www
gzip {
ext .html .htm .php
level 6
}
fastcgi / /run/php/php7.2-fpm.sock php {
ext .php
split .php
index index.php
}
}
放個 phpinfo 檔測試一下,已經可以跑 php 囉。
9. 安裝 php modules
sudo apt-get install php7.2-mbstring
sudo apt-get install php7.2-mysqli
sudo phpenmod mbstring
sudo phpenmod mysqli
sudo phpenmod pdo_mysql
再安裝個 MySQL 差不多東西就齊全了。