環境初始化主機設定(Docker + Laravel)
介紹如何在一台剛開的主機上設定基礎的 Docker 以及 Laravel 執行環境
![](/blog/202107-initialize-server-setting-with-docker-and-laravel/apt-update-demo-feature.png)
如果今天開啟一台全新的雲端主機,要在上面使用 Docker 建立 Laravel 開發環境
並且可以在遠端主機執行 Laravel 常用的 composer 與 artisan 指令
因為這個步驟實在不常執行,所以記錄下來方便未來查找
也為了接下來使用 Docker 建立 Laravel 環境文章做鋪陳
1. 建立版本庫存取權限
要讓遠端主機可以對指定的 Repository 進行存取,需要加入 ssh key
正規方法:
ssh 登入遠端主機之後,在遠端主機使用指令產生 ssh key
ssh-keygen
然後把 public key 加到遠端版本庫
小朋友不要學的方法:
也是可以把自己已經具有版本庫存取權限的 key pair 塞進遠端主機
如果 .ssh 資料夾不存在要自己加,權限 700
mkdir .ssh
chmod 700 .ssh
cd .ssh
vim id_rsa
chmod 600 id_rsa
vim id_rsa.pub
chmod 644 id_rsa.pub
2. 更新 linux 套件包
因為等等要裝套件,先更新主機的套件包
sudo apt update
3. 安裝 docker
都說要建立 Docker 的環境,當然要安裝 Docker
sudo apt install docker.io
4. 安裝 docker-compose
後面會使用 docker-compose 來組合多個 Docker container 啟動一個完整服務
因為之後的 Laravel 專案中會同時啟動 nginx, PHP, redis, mysql 等容器
透過 docker-compose 管理與操作會比較方便
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
5. 安裝 php 套件
因為 Laravel 專案不需要編譯,當我們修改容器外的檔案,會同步對掛載進容器的檔案做變更
所以不一定要連進容器裡執行指令,在本機的變更一樣會直接生效。當然不進行這一步也是可以的
為了之後可以直接在主機上執行 php artisan
和 phpunit
,還有安裝&執行 composer
PHP 版本根據你的需求安裝
apt install php7.4-cli php7.4-gd install php7.4-mbstring php7.4-curl php7.4-xml php7.4-zip
如果不確定自己想找的套件名稱叫什麼,可以在 apt install php7.4
之後按兩下 tab
這樣就會列出名稱為「php7.4」開頭的所有套件,如此就可以很方便的找到指定版本的套件!
下圖用 apt install docker
按兩下 tab 顯示所有「docker」開頭的套件為例
6. 安裝 PHP 的套件管理工具 composer
照官網步驟安裝即可:Download Composer
範例:(正確指令以官方網站為主)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
將 composer 移動到環境變數,讓全域都可以使用指令
建議要執行此步驟,否則就只能在你安裝的路徑(有 composer.phar 檔案)的地方執行指令
sudo mv composer.phar /usr/local/bin/composer
若要查看全域可以執行的指令與對應目錄
echo $PATH
7. 設定 .sh 檔案可執行
如果專案中有 shell 需要執行,必須要修改檔案權限
chmod 755 {target file path}
如此就可以在主機中執行以下的指令
- docker
- composer
- php artisan
也就完成了接下來使用 Docker 建置 Laravel 環境的所需要的基礎設定