Docker – Laradock – 快速安裝筆記

事前

以下示範 Nginx, MySQL, phpMyAdmin, PHP, Laravel

期望的架構

  • myProject (這是你自訂的專案名稱)
    • www (放置 Laravel 的地方)
    • laradock (你的專案需要的 Laradock 相關檔案)

也就是一個專案會配置一個 laradock 路徑,例如

  • A – project
    • www
    • laradock
  • B – project
    • www
    • laradock

這樣劃分的優點是每個專案都有專屬的環境,缺點就是你要寫不同專案就要切換不同的 Laradock。

開始步驟

下載 docker

進入專案資料夾後

git clone https://github.com/Laradock/laradock.git

下載下來的檔案會放在路徑 laradock

建立 www

這是我們準備存放 laravel 的路徑

mkdir www

編輯設定

cd laradock
cp env-example .env
vim .env

修改如

APP_CODE_PATH_HOST=../www
NGINX_HOST_HTTP_PORT=8000
NGINX_HOST_HTTPS_PORT=4430
MYSQL_PORT=3307

檢查設定 php my admin

# Credentials/Port:

PMA_USER=default
PMA_PASSWORD=secret
PMA_ROOT_PASSWORD=secret
PMA_PORT=8080

確認 laradock/.env 關於 MySQL 的相關設定,這些資料我們稍後會用到

### MYSQL #################################################

MYSQL_VERSION=latest
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3307
MYSQL_ROOT_PASSWORD=root

Docker 修改 Nginx 設定

cp -r nginx/sites/laravel.conf.example nginx/sites/laravel.test.conf
vim nginx/sites/laravel.test.conf

修改為

root /var/www/public

啟動 Docker Image 為 Container

docker-compose up -d nginx mysql phpmyadmin

*停止運行可下指令 docker-compose down

進入工作區域

docker-compose exec workspace bash

在 workspace 內下載 Laravel

注意我們建立的目錄使用 .

composer create-project laravel/laravel --prefer-dist .
exit

權限修改

docker-compose exec php-fpm id www-data
sudo chown -R 1000:1000 www/storage

如果無法寫入,嘗試 
cd ..
sudo chmod -R 777 www/storage

嘗試訪問

http://localhost:8000

讓 Laravel 連線 MySQL

cd www
vim .env

修改如下

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

存檔後接著

exit
docker-compose exec workspace bash
php artisan migrate

運行資料庫遷移如果正常運作就沒問題囉!

訪問 phpMyAdmin

http://localhost:8080

我們可以使用這項設定進入

server: mysql
user: default
password: secret

如果要使用用戶 root 登入,那麼密碼是MySQL 設定中的 “root”。

發表迴響