PHP版本:7.2
composer版本:1.6.3
mysql版本:5.7
nginx版本:1.15.0
PHP運行環(huán)境采用laradock工具分別加載nginx、PHP等docker容器鏡像澳淑。
docker版本
采用docker-ce社區(qū)版本樱调,具體版本號如下:
Docker version 18.03.1-ce, build 9ee9f40l
安裝docker
1.從docker store下載鏡像或者軟件需要先登錄军拟,所以先注冊docker賬號注冊地址
(docker賬號的注冊流程會有google的人機驗證郊愧,國內網絡對google相關產品的不友好導致這里注冊是需要翻墻的晓铆。)
2.從docker store下載Docker CE for Windows下載頁面
Docker CE for Windows只支持 64位 的 windows 10專業(yè)版或企業(yè)版
其他版本的windows系統(tǒng)請下載Docker Toolbox
3.運行剛下載的安裝包進行安裝
docker for windows 自帶 docker-compose 筷黔,無需單獨安裝
更多安裝細節(jié)可參考官方文檔。
注意:
Docker CE for Windows 需要打開系統(tǒng)的Hyper-V功能(在安裝完成后docker會彈窗詢問是否開啟)刊头,同時需要在BIOS中開啟CPU的虛擬化功能黍瞧。如果啟動docker過程中遇到問題可先查看以上兩項是否已開啟。
修改docker鏡像源
使用docker的時候原杂,經常需要從官方獲取鏡像印颤。由于網絡及GFW的原因,拉取鏡像的過程可能會非常耗時穿肄,所以我們需要修改docker鏡像源為國內的源年局。
我們采用DaoCloud提供的鏡像源:
修改方式請參考:DaoCloud文檔
安裝laradock
docker安裝完成后,接下來我們采用laradock搭建基于docker的PHP運行環(huán)境咸产。laradock官方文檔:http://laradock.io
1矢否、在D:\home目錄下,將 laradock 項目代碼克隆到本地
2脑溢、進入到D:\home\laradock目錄僵朗,將env-example重命名為.env:
cd laradock cp env-example .env
3、打開.env配置文件屑彻,找到如下配置項验庙,并將其修改為如下配置值:
CHANGE_SOURCE=true
PHP_VERSION=7.2
WORKSPACE_INSTALL_XDEBUG=true
PHP_FPM_INSTALL_XDEBUG=true
MYSQL_VERSION=5.7
WORKSPACE_INSTALL_NODE=false
WORKSPACE_INSTALL_YARN=false
WORKSPACE_INSTALL_NPM_GULP=false
WORKSPACE_INSTALL_NPM_BOWER=false
WORKSPACE_INSTALL_NPM_VUE_CLI=false
4、打開D:\home\laradock\nginx\Dockerfile文件社牲,將:
ARG CHANGE_SOURCE=false
修改為:
ARG CHANGE_SOURCE=true
5粪薛、創(chuàng)建代碼目錄。
在與D:\home\laradock同級目錄下搏恤,創(chuàng)建一個www目錄违寿,目錄結構如下:
home? ? ├── laradock? ? └── www
www即為代碼根目錄。
6熟空、修改宿主主機項目目錄
打開D:\home\laradock\.env配置文件陨界,修改如下配置為:
APP_CODE_PATH_HOST=../www/
這里是設置項目目錄的文件映射,將本地的D:\home\www目錄映射到容器內的項目目錄/var/www
7痛阻、關閉opcache。
打開D:\home\laradock\php-fpm\opcache.ini ,修改如下配置為:
opcache.enable="0"
8腮敌、通過如下命令即可運行容器:
docker-compose up -d nginx
說明:
-d 表示后臺運行
nginx表示運行nginx容器阱当。PHP容器會自動加載,不需要指明
運行后可查看D:\laradock\logs\nginx\error.log文件糜工,里面記錄了錯誤日志
項目運行
1弊添、在D:\home\www目錄下,創(chuàng)建名為demo的項目目錄:
home? ? ├── laradock? ? └── www? ? ? ? └── demo
2捌木、然后在D:\home\www\demo*目錄下油坝,新建 demo.php* 文件:
<?phpechophpinfo();
3、項目代碼準備好后,接下來我們需要添加nginx配置澈圈。打開D:\home\laradock\nginx\sites*目錄彬檀,新建名為 demo.conf* 的nginx配置文件:
server {
? ? listen80;? ?
? ? server_name demo.marser.cn;? ?
? ? root /var/www/demo/;? ?
? ? index index.php index.html index.htm;? ?
? ? location / {
? ? ? ? try_files$uri$uri/ /index.php$is_args$args;? ?
? ? }
? ? location ~ \.php$ {
? ? ? ? try_files $uri /index.php=404;? ? ? ?
? ? ? ? fastcgi_pass php-upstream;? ? ? ?
? ? ? ? fastcgi_index index.php;
????????fastcgi_buffers 16 16k;? ? ? ?
? ? ? ? fastcgi_buffer_size 32k;
? ? ? ? fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
? ? ? ? #fixes timeouts
????????fastcgi_read_timeout 600;? ? ?
? ? ? ? include fastcgi_params;?
? ? }?
? ? access_log? /var/log/nginx/demo/access.log;?
? ? error_log? /var/log/nginx/demo/error.log;
}
說明:
server_name 配置域名
root 配置項目代碼目錄
access_log 配置訪問日志
error_log 配置錯誤日志
以上配置僅供參考,根據業(yè)務情況及時調整瞬女。但access_log和error_log必須配置窍帝,方便排查錯誤。
需要注意的是:root配置項中的/var/www/demo/目錄會自動映射到宿主主機中的 **D:\home\www\demo*目錄诽偷。
4坤学、在D:\home\laradock\logs\nginx*目錄下創(chuàng)建名為 demo* 的目錄來存儲demo項目的nginx訪問日志和錯誤日志。
需要注意的是:/var/log/nginx/demo/會自動映射到宿主主機的D:\home\laradock\logs\nginx\demo目錄报慕。
5深浮、在D:\home\laradock目錄下執(zhí)行如下命令重啟nginx容器:
docker-compose restart nginx
6、最后將配置的域名demo.marser.cn添加到hosts配置中:
127.0.0.1? demo.marser.cn
保存后眠冈,在瀏覽器上訪問http://demo.marser.cn/demo.php即可對項目進行正常訪問飞苇。
數據存儲
mysql、redis等數據存儲工具洋闽,團隊中各成員共用一套開發(fā)環(huán)境玄柠。相關信息稍后添加...
hosts切換工具
windows上采用switchhost小工具
mac上采用Gas Mask小工具
參考文檔
dockfile換源后出現的一些問題
apt-get update出現NO_PUBKEY?
運行如下命令,添加公鑰解決:
RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7EA0A9C3F273FCD8(此處替換成報錯提醒的公鑰)