摘要:已經集成需要使用的環境,只需要簡單修改配置就能搭建環境提供開發,對開發及管理來說真是一味良方。目前能正常訪問文件。
為何用docker?
在電腦還是window系統的時候,經常需要基于vm服務搭建一套環境才能更好地(應該是更貼近線上環境)進行開發,而現在在docker的神秘光環底下已經能實現用最小的資源搭建本地開發環境,同時能更好地遷移到其他地方。
前置知識了解docker安裝及使用
了解docker-compose命令行的使用
了解laravel安裝及使用
本文主要使用laradock進行本地的docker配置。laradock已經集成laravel需要使用的環境,只需要簡單修改配置就能搭建環境提供開發,對開發及管理來說真是一味良方。
簡單說明一下,在docker環境下我們需要運行laravel項目,實際會建立下幾個容器(container):
workspace (開發環境)
php-fpm (php支持)
nginx (web服務)
mysql (數據庫)
這些都是基于laradock再處理后的生成的容器,可參考laradock目錄下相應名字的目錄,里面包含Dockerfile及相關配置,感興趣的同學可以盡情閱讀學習 :)
更加深入的內容建議移步至laradock官方文檔。
準備在window系統下先安裝docker
等多次重啟后運行docker命令測試一下。
然后在你項目的平級目錄使用git拉取https://github.com/laradock/laradock.git這個包。
# 平級目錄 D:/www/ - /laradock - /my-project
這樣準備就緒進入下一步。
配置這里配置的環境按常用環境進行配置
nginx
php-fpm 5.6
mysql 5.6
接著需要修改laradock/.env文件
/www/laradock - .env
進入laradock目錄會發現并不存在.env文件,這里需要我們從env-example復制一份進行修改。
# /www/laradock $ cp env-example .env修改PHP版本
進入.env文件找到 PHP_VERSION 修改php版本為56(默認71,可選71, 70, 56)。
# /www/laradock/.env ### PHP Version PHP_VERSION=56修改Mysql版本及配置
進入.env文件找到 MYSQL 修改mysql版本為56(默認8,可選8, 5, 5.6, 5.5)。
其他的設置根據個人需要填寫,一般情況下需要修改MYSQL_USER, MYSQL_PASSWORD, MYSQL_ROOT_PASSWORD 來確保鏈接。
# /www/laradock/.env ### MYSQL MYSQL_VERSION=5.6 # MYSQL_DATABASE 可選,填寫后會默認創建同名數據庫 MYSQL_DATABASE=default # MYSQL_USER 用戶,填寫后會創建用戶,默認為 default MYSQL_USER=packy # MYSQL_PASSWORD 密碼,填寫后作為新建用戶的密碼,默認為 secret MYSQL_PASSWORD=123456- # MYSQL_PORT 訪問端口,默認是3306,建議不要修改 MYSQL_PORT=3306 # MYSQL_ROOT_PASSWORD root用戶密碼,建議使用嚴謹的密碼,默認為 root MYSQL_ROOT_PASSWORD=23333- MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d關于Mysql版本選擇
mysql使用的是官方鏡像,所以我們可以使用hub.docker.com查詢mysql官方鏡像包含哪些版本。具體如何選擇得看各自的需求。
修改nginx配置一般情況下并不需要修改什么,使用默認的便可。關于網站的配置需要進入laradock/nginx/sites。
如需要修改端口可以進入.env文件找到 NGINX進行修改。
# /www/laradock/.env ### NGINX NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 # NGINX_HOST_LOG_PATH log存放位置,默認位置在laradock/logs/nginx/ NGINX_HOST_LOG_PATH=./logs/nginx/ # NGINX_SITES_PATH 網站配置, 默認位置在laradock/nginx/sites/ NGINX_SITES_PATH=./nginx/sites/ NGINX_PHP_UPSTREAM_CONTAINER=php-fpm NGINX_PHP_UPSTREAM_PORT=9000關于Nginx的配置
nginx的配置文件存放在laradock/nginx/sites下,需要新建網站的可通過復制對應的.example并重命名為.conf進行修改。注:只用.conf文件才會在nginx下加載。
這里我復制laravel.conf.example作為例子重命名為my-project.conf:
# laradock/nginx/sites/my-project.conf server { listen 80; listen [::]:80; # 域名,改為你的域名 server_name my-project.com; # 項目目錄,均以 /var/www/ 開頭。這個約定后續會說明 root /var/www/my-project; 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; include fastcgi_params; } location ~ /.ht { deny all; } location /.well-known/acme-challenge/ { root /var/www/letsencrypt/; log_not_found off; } error_log /var/log/nginx/laravel_error.log; access_log /var/log/nginx/laravel_access.log; }
同時修改宿主機(就是window本地機子)的hosts
# C:WindowsSystem32driversetchosts 127.0.0.1 my-project.com嘗試運行
到這步準備工作差不多完成了。
運行以下命令進行安裝及使用,因為是國外源拉取時間比較慢請耐心等待。
docker-compose up -d nginx mysql
完成后輸入docker ps參看容器運行情況。一切正常!!!
嘗試訪問http://my-project.com看看效果。目前能正常訪問php文件。
運行laravel這里就不得說workspace這個容器,它作為工作區提供各類工具使用(包含:PHP CLI, Composer, Git, Linuxbrew, Node, V8JS, Gulp, SQLite, xDebug, Envoy, Deployer, Vim, Yarn等)。
那如何使用這些功能呢?
首先進入workspace容器# /www/laradock docker-compose exec workspace bashcomposer換國內源
進到容器后默認就是項目目錄/var/www,由于composer用的是國外源比較慢,這里需要切換成國內源。
composer config -g repo.packagist composer https://packagist.phpcomposer.com安裝laravel
這里我們需要在my-project目錄安裝laravel。
*注:需要提前把my-project里的所有內容清空
composer create-project laravel/laravel my-project2 "5.2.*" && cd my-project && php artisan key:generate配置并重啟nginx
安裝完成后,把laradock/nginx/sites/my-project.conf文件下的網站目錄地址稍微改一下
server { listen 80; listen [::]:80; server_name my-project.com; # 加上public目錄 root /var/www/my-project/public; index index.php index.html index.htm; ... }
重啟nginx容器
# /www/laradock docker-compose restart nginx關于數據庫服務
# .env DB_CONNECTION=mysql # mysql的容器網絡已經解析至"mysql"域,所以這里配置"mysql"域便能訪問 DB_HOST=mysql # 默認3306,一般不需要改動,如要改動端口應該與laradock/.env中的MYSQL_PORT一致 DB_PORT=3306 # 數據庫 DB_DATABASE=default # 用戶 DB_USERNAME=packy # 密碼 DB_PASSWORD=123456-一些問題:
Q:運行失敗,提示ERROR: for laradock_mysql_1 Cannot create container for service mysql: Drive sharing seems blocked by a firewall
A:先暫停你本機殺毒程序的防御進程。
Q:運行失敗,提示ERROR: for laradock_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (6e4f4761d30f4cd80c44c6b0fddfbd4ef0324529099aace02bee6a6653ce453a): Error starting userland proxy: Bind for 0.0.0.0:443 failed: port is already allocated
A:建議你切換端口,我已嘗試改為1443能正常運行,目前只能以這種方式處理。
# .env ### NGINX NGINX_HOST_HTTPS_PORT=1443
Q:為何網站目錄必須以/var/www開頭?
A:網站訪問進入的是nginx容器,/var/www目錄就是容器內網站目錄存放的位置。由于配置在創建容器時,會將本地目錄掛載至/var/www目錄,所以就能訪問到本地的代碼。這塊設置在laradock/.env中找到APPLICATION可自行設置。
Q:Windows下開啟了Hyper-v后安卓模擬器及VMware均不能用了?
A:對的,貌似是因為Hyper-v獨占硬件虛擬化,使用其他虛擬化技術(如:VMware, virtualbox)均不能使用(開啟可能藍屏),目前并沒有共存手段。這里博主建議需要模擬安卓系統的可以直接在Hyper-v上安裝,關于GUI渲染的性能方面聽說還行。(博主并沒嘗試,考慮最近嘗試一波)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/28031.html
摘要:本文就介紹如何使用搭建本地環境。講座介紹是現在火熱的一個容器技術,作為開發人員有必要掌握它的使用,無論你是用來搭建本地環境,還是部署應用。 (原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作為本地開發環境,Homestead 是一個官方預封裝的 Vagrant Box,也就是一個虛擬機,但是跟...
摘要:本文就介紹如何使用搭建本地環境。講座介紹是現在火熱的一個容器技術,作為開發人員有必要掌握它的使用,無論你是用來搭建本地環境,還是部署應用。 (原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作為本地開發環境,Homestead 是一個官方預封裝的 Vagrant Box,也就是一個虛擬機,但是跟...
摘要:基于快速搭建服務根據自定義配置文件快速搭建環境。目錄此項目能做什么地址視頻教程包含軟件項目目錄結構快速運行運行服務運行項目運行前端服務此項目能做什么搭建開發生產環境。搭建開發生產環境。 基于Docker快速搭建Web服務 根據自定義配置文件快速搭建Web環境。 目錄 此項目能做什么 GItHub地址、視頻教程 包含軟件 項目目錄結構 快速運行KFKDock 運行PHP服務 運行L...
摘要:基于快速搭建服務根據自定義配置文件快速搭建環境。目錄此項目能做什么地址視頻教程包含軟件項目目錄結構快速運行運行服務運行項目運行前端服務此項目能做什么搭建開發生產環境。搭建開發生產環境。 基于Docker快速搭建Web服務 根據自定義配置文件快速搭建Web環境。 目錄 此項目能做什么 GItHub地址、視頻教程 包含軟件 項目目錄結構 快速運行KFKDock 運行PHP服務 運行L...
閱讀 1387·2021-10-08 10:04
閱讀 2710·2021-09-22 15:23
閱讀 2733·2021-09-04 16:40
閱讀 1185·2019-08-29 17:29
閱讀 1504·2019-08-29 17:28
閱讀 3001·2019-08-29 14:02
閱讀 2230·2019-08-29 13:18
閱讀 856·2019-08-23 18:35