參考文獻
1.dnmp環境 https://github.com/yeszao/dnmp
2.laravel6.0文檔 https://learnku.com/docs/laravel/6.x
3.laravels 文檔 https://github.com/hhxsv5/laravel-s/blob/master/README-CN.md
安裝前準備
1.確認已經安裝且配置好docker,能在cmd 中運行 docker 命令
2.git (一般我們程序都有,cmd中能運行git命令)
一.搭建dnmp環境
一切基于https://github.com/yeszao/dnmp 這個項目,里面也有詳細文檔,我的教程只是做了一些圖文補充。如果部署過程中遇到問題,一定要在這個鏈接里面多看看,一般能解決你的問題。即使沒遇到問題也要看看他的文檔。其實步驟很短,幾個命令就行,但是我做了很多圖文補充細節,所以看起來比較長,編程需要耐心。
首先在win10中選個存儲位置,比如我的是G:\docker;放在g盤里面的docker文件夾內。
cmd 中進入G:\docker
clone dnmp項目(以下兩個命令只用執行其中一個,注意看注釋)
git clone https://github.com/yeszao/dnmp.git
//如果https報錯或證書錯誤,可以使用下面
git clone git://github.com/yeszao/dnmp.git
等運行完畢,doker目錄下就有dnmp目錄了
cmd 中進入dnmp文件夾,運行以下命令
$ cd dnmp # 進入項目目錄
$ copy env.sample .env # 復制環境變量文件
$ copy docker-compose.sample.yml docker-compose.yml # 復制 docker-compose 配置文件。默認啟動3個服務:
# Nginx、PHP7和MySQL8。要開啟更多其他服務,如Redis、
# PHP5.6、PHP5.4、MongoDB,ElasticSearch等,請刪
# 除服務塊前的注釋
$ docker-compose up # 啟動,一般用docker-compose up -d 后臺啟動,cmd可以繼續用
運行完之后會啟動默認的nginx , php , mysql容器
第一次啟動會通過dnmp/docker-compose.yml配置文件里面的配置信息編譯,耗時會稍微較長,不過大多數也能在10分鐘內編譯完
這時候cmd 中docker ps 就可以看到運行的容器,或者直接打開docker軟件也可以看到運行情況,這里也可以看到我的mysql5容器開放的是3305端口映射到win10主機上面,這個端口后面Navicat鏈接容器內的mysql,或者php鏈接容器內的mysql都要用到
如果有需要phpmyadmin的,可以再配置文件docker-compose.yml,將phpmyadmin的相關配置信息前的#注釋符號刪掉再cmd進入dnmp目錄下重新運行docker-compose up -d 即可
另外我這里建議注釋docker-compose.yml里面默認mysql,開啟mysql5.這樣就會安裝mysql5.7.到時候win10里面可以通過Navicat直接連接mysql容器里面的mysql,mysql8.0我當時連接有點問題,不過花點時間能解決,只不過我的項目比較趕,沒有另外花時間了。
以上步驟結束后,瀏覽器直接訪問http://localhost/ 就可以看到環境的信息頁面
php 開啟swoole擴展需要打開 docker/dnmp/.env配置文件,在PHP_EXTENSIONS后面加上兩個擴展 pcntl,swoole 即可
之后cmd 在dnmp目錄下運行以下命令,重啟nginx后就可以在瀏覽器訪問http://localhost/ 看到開啟的swoole擴展了
docker-compose build php #重新編譯php
docker-compose restart nginx #重啟nginx
另外win10的Navicat鏈接mysql,需要先在win10 host文件中找到你的docker配置的ip,我的dockerip是192.168.3.58
上面docker軟件截圖也可以看到我的mysql5.7容器開放的是3305端口
所以Navicat配置要這樣寫才能鏈接,初始mysql密碼123456
以上dnmp環境搭建就可以了,有問題可以https://github.com/yeszao/dnmp再這里面找到答案
二.搭建laravel6項目
cmd 中進入php容器(容器就是一個微信linux內核系統)
docker exec -it php /bin/sh #進入php容器
圖片上面的localost文件夾路徑就對應著win10系統內的dnmp\www\localhost,PHP容器的根目錄就是win10的dnmp\www\
接著運行composer 安裝laravel6(php容器內自帶composer)
composer create-project --prefer-dist laravel/laravel blog "6.*" #直接安裝laravel6項目
上面的代碼運行好后,你的dnmp\www\目錄下會多一個blog的文件夾,就是laravel6的項目
接下來就要nginx配置laravel6的項目站點了,nginx的站點配置文件位于
G:\docker\dnmp\services\nginx\conf.d\
在這個目錄下,我們以localhost.conf配置文件為原本復制一個新的文件blog.conf配置文件。接下來站點配置都在blog.conf 里面完成,記事本打開blog.conf 。
我們只需要修改80端口的相關配置就行,關于443的全部刪掉,到時候需要再改
listen 80 default; 修改為 listen 80 ;
server_name localhost; 修改為 server_name lblog.com;
root /www/localhost; 修改為 root /www/blog/public;
將以下代碼
location ~ \.php$ {
fastcgi_pass php:9000;
include fastcgi-php.conf;
include fastcgi_params;
}
修改為
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass php:9000;
include fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
最終修改結果如上圖,配置文件就改成功了。現在將lblog.com這個域名加入win10的host文件里面代碼如下
127.0.0.1 lblog.com
最后 cmd進入dnmp目錄下,中重啟nginx 運行如下代碼
docker-compose restart nginx
這個時候瀏覽器就可以輸入http://lblog.com/ 訪問laravel項目站點了。如果清除瀏覽器緩存刷新后還是訪問的不是這個頁面,可以重啟win10主機。重啟后cmd到dnmp目錄下 docker-compose up -d ,啟動所有服務,再訪問http://lblog.com/
下面是laravel 配置mysql,DB_HOST要配置docker的ip 192.168.3.58,DB_PORT配置成mysql容器開放的3305端口其他的和普通laravel項目一致
swoole框架laravel-s項目下一章繼續,不然篇幅太多
http://www.lxweimin.com/p/05489e72ab4e
結束語
可以轉載,但需要說明出處。
我花了兩天摸出來的經驗,兩個小時的碼字,寫教程不容易。
部署過程中遇到問題歡迎留言,我不定時登錄回復