2019-03-20

mac 上使用 npm i -g 時

在 mac 上使用 npm i -g 時,常發生「Error: EACCES: permission denied, access...」的錯誤。

npmjs 官方的建議:https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

terminal 輸入:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

在 .profile 或 .bash_profile 或 .zshrc 加入:
export PATH=~/.npm-global/bin:$PATH

原則上就是把全域的安裝資料夾設定在用戶的家目錄下。

2019-03-03

安裝 Caddy 及 PHP-fpm

在 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 差不多東西就齊全了。






FB 留言