爲什麼使用docker?
部署快
只需要幾分鐘,就能部署好一套PHP環境
性能好
docker 的性能損失只有1-2%,幾乎可以忽略不計。
安全性高
容器與宿主機完全隔離,默認情況下不能相互訪問。
同時支持多版本軟件
可以PHP多版本共存
教程目的
如何用laradock 在10分鐘內 部署 Notadd 與 laradock 環境
################################安裝docker#######################
Liunx 安裝docker
curl -sSL https://get.daocloud.io/docker | sh
## 安裝docker
Centos7 請執行這步
yum install -y docker-engine
ubuntu 請執行這步
sudo apt-get install -y -q docker-engine
安裝docker-compose (ubuntu 請注意權限問題)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
開啓國內鏡像加速
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://1f637783.m.daocloud.io
Windows10(64位) 安裝docker
下載安裝 https://get.daocloud.io/docker-install/windows
開啓國內鏡像加速
在桌面右下角狀態欄中右鍵 docker 圖標,修改在 Docker Daemon 標籤頁中的 json ,把下面的地址:
http://1f637783.m.daocloud.io Copy
加到"registry-mirrors"的數組裏。點擊 Apply 。
Mac 10.8+ 安裝docker
下載安裝 https://get.daocloud.io/docker-install/mac
開啓國內鏡像加速
右鍵點擊桌面頂欄的 docker 圖標,選擇 Preferences ,在 Daemon 標籤(Docker 17.03 之前版本爲 Advanced 標籤)下的 Registry mirrors 列表中加入下面的鏡像地址:
http://1f637783.m.daocloud.io Copy
點擊 Apply & Restart 按鈕使設置生效。
###################################下載laradock 與 notadd#######################
下載laradock 與 Notadd
請確保git 可用 (win 建議在Powershell下執行)
git clone https://github.com/Laradock/laradock.git
mkdir -p wwwroot/data # 創建網站目錄
cd wwwroot
git clone https://github.com/notadd/notadd.git
cd .. # 返回到上級目錄
Linux: (win 和 mac 請直接編輯env-example
文件)
cd laradock
vi env-example
env-example 配置說明
APPLICATION=../wwwroot
DATA_SAVE_PATH=../wwwroot/data
WORKSPACE 配置項
視情況開啓
NODE=true
YARN=true
PHP_FPM配置說明
PHP_FPM_INSTALL_XDEBUG=false
PHP_FPM_INSTALL_MONGO=false
PHP_FPM_INSTALL_MSSQL=false
PHP_FPM_INSTALL_SOAP=false
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
PHP_FPM_INSTALL_BCMATH=true
PHP_FPM_INSTALL_PHPREDIS=true
PHP_FPM_INSTALL_MEMCACHED=false
PHP_FPM_INSTALL_OPCACHE=false
PHP_FPM_INSTALL_EXIF=true
PHP_FPM_INSTALL_AEROSPIKE=false
PHP_FPM_INSTALL_MYSQLI=false
PHP_FPM_INSTALL_TOKENIZER=false
PHP_FPM_INSTALL_INTL=false
PHP_FPM_INSTALL_GHOSTSCRIPT=false
PHP_FPM_INSTALL_LDAP=false
PHP_FPM_INSTALL_SWOOLE=false
線上環境請將 PHP_FPM_INSTALL_OPCACHE=true
下面是數據庫默認的賬號和密碼,請根據需要自行修改,不再闡述。
更改完畢後請務必進行此操作:
cp env-example .env
複製環境變量文件。
更改Caddy 配置
Caddy 是一個高性能,且使用很簡單的HTTP服務器,自帶HTTPS證書。
cd caddy
vi Caddyfile
更改爲如下配置:
# Docs: https://caddyserver.com/docs/caddyfile
0.0.0.0:80 {
root /var/www/notadd/public
fastcgi / php-fpm:9000 php {
index index.php
}
# To handle .html extensions with laravel change ext to
# ext / .html
rewrite {
r .*
ext /
to /index.php?{query}
}
gzip
browse
log /var/log/caddy/access.log
errors /var/log/caddy/error.log
}
請注意: 容器無法直接訪問主機。 APPLICATION=../wwwroot 設置的 wwwroot目錄 會對應容器的/var/www 目錄
完成後請:
cd .. # 進入laradock 根目錄
啓動laradock
可以根據自己需要自行啓動 nginx/apache/mysql/phpmyadmin/redis 等
注:phpmyadmin
請訪問 http://IP:88 pgadmin
請訪問 http://IP:5050
docker-compose up caddy postgres pgadmin
第一次運行需要安裝環境,需要比較久的時間,請耐心等待
#############################常用操作############# 以下操作請確保在laradock 根目錄下
啓動相關
laradock 默認會啓動 php-fpm 和 workspace ,所以參數中無需加這兩個。
啓動 caddy 和 postgresql
docker-compose up caddy postgres
後臺啓動
docker-compose up -d caddy postgres
只重啓caddy (比如修改了配置文件)
docker-compose restart caddy
停止所有
docker-compose stop
工作空間
進入工作空間前,請確認環境已經啓動
docker-compose exec workspace bash
會進入 /var/www
目錄
此時 可以執行composer
和PHP
命令。
如果之前env-example
開啓了node
和yarn
也可執行對應命令。
安裝notadd
cd notadd
compose install
php notadd vendor:publish --force
退出工作空間
exit
連接數據庫和PHP
請一定注意,數據庫連接地址請一定填寫爲mysql
、postgres
、mariadb
等。
另外Nginx/Caddy/Apache 如果需要訪問PHP容器,請填寫:php-fpm
更改laradock 配置
當你再次修改完env-example
後,請一定按照如下方法執行:
cp env-example .env
重新構建相應的容器
docker-compose build php-fpm worksapce
如果還修改了 其他容器配置,請在後面一同加上
需要注意的是:
由於數據庫的數據是映射到 wwwroot/data
目錄,
所以在env-example
修改數據庫密碼,即使重新構建也無效。
如需強制更改 請刪除wwwroot/data
裏面對應數據庫的數據。
日常修改密碼,請使用phpmyadmin
或者 pgadmin