最新在线看的黄网|伊人久久久久久久网站|日本a视频专区二|欧美A级无码毛片|有扫五av在线播放|好屌日aV在线播放|内射福利视频导航|极品少妇一区二区视频|无吗在线一区播放|性爱黄色视频不卡

您的位置:首頁 > wordpress

Mac/Windows 系統(tǒng)中使用 Laradock 搭建基于 Docker 的 Laravel 開發(fā)環(huán)境
wordpress 2024-04-20編輯:深圳網(wǎng)站建設(shè)閱讀( WordPress 搭建 環(huán)境

簡(jiǎn)介

Laradock 是為 Docker 提供的完整 PHP 本地開發(fā)環(huán)境,和 Homestead 一樣提供了一系列打包好(包括配置)的 Docker Image。Laradock 早期專注為 Laravel 打造 Docker 開發(fā)環(huán)境,因而最早在 Laravel 社區(qū)中出名,后來隨著影響力的擴(kuò)大,逐漸被 PHP 社區(qū)接納和采用,目前支持的 PHP 項(xiàng)目除了 Laravel 之外,還有 Symfony、CodeIgniter、WordPress、Drupal 等等。

Docker 掃盲

在學(xué)習(xí)和使用 Laradock 之前,我們有必要先學(xué)習(xí)和了解 Docker,而在使用 Docker 之前,又有必要搞清楚下面兩個(gè)問題:

Docker 是什么

Docker 基于 Go 語言開發(fā),是一個(gè)基于 LXC 技術(shù)之上構(gòu)建的 Container 容器引擎。容器是一種以固定格式打包軟件的方式,以便讓軟件可以在共享的操作系統(tǒng)中運(yùn)行,不同于虛擬機(jī),容器并不需要捆綁這個(gè)操作系統(tǒng),只需要軟件正常工作所必須的庫和設(shè)置即可,這使得容器更加高效、輕量級(jí)、可以自成系統(tǒng)并且不管部署在什么地方都可以保證運(yùn)行結(jié)果一致。

Docker提供了一種在安全、可重復(fù)的環(huán)境中自動(dòng)部署軟件的方式,它的出現(xiàn)拉開了基于云計(jì)算平臺(tái)發(fā)布產(chǎn)品方式的變革序幕。開發(fā)者使用 Docker 可以解決當(dāng)需要和同事共享代碼時(shí)"只能在我的機(jī)器工作"的問題;操作者使用 Docker 可以在關(guān)聯(lián)容器中邊運(yùn)行邊管理以便獲取更好的計(jì)算密度;企業(yè)使用 Docker 可以用來構(gòu)建敏捷的軟件分發(fā)管道以便可以更快處理新特性。

為什么要使用 Docker

Docker 的出現(xiàn)就是為了解決以下問題:

  • 環(huán)境管理復(fù)雜: 從各種 OS 到各種中間件再到各種 App,一款產(chǎn)品能夠成功發(fā)布,作為開發(fā)者需要關(guān)心的東西太多,且難于管理,這個(gè)問題在軟件行業(yè)中普遍存在并需要直接面對(duì)。Docker 可以簡(jiǎn)化部署多種應(yīng)用實(shí)例工作,比如Web應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫應(yīng)用、大數(shù)據(jù)應(yīng)用比如 Hadoop 集群、消息隊(duì)列等等都可以打包成一個(gè) Image 部署。
  • 云計(jì)算時(shí)代的到來: AWS 的成功, 引導(dǎo)開發(fā)者將應(yīng)用轉(zhuǎn)移到云上, 解決了硬件管理的問題,然而軟件配置和管理相關(guān)的問題依然存在。Docker 的出現(xiàn)正好能幫助軟件開發(fā)者開闊思路,嘗試新的軟件管理方法來解決這個(gè)問題。
  • 虛擬化手段的變化: 云時(shí)代采用標(biāo)配硬件來降低成本,采用虛擬化手段來滿足用戶按需分配的資源需求以及保證可用性和隔離性。然而無論是 KVM 還是 Xen,在 Docker 看來都在浪費(fèi)資源,因?yàn)橛脩粜枰氖歉咝н\(yùn)行環(huán)境而非 OS, GuestOS 既浪費(fèi)資源又難于管理, 更加輕量級(jí)的 LXC 更加靈活和快速。
  • LXC的便攜性: LXC在 Linux 2.6 的 Kernel 里就已經(jīng)存在了,但是其設(shè)計(jì)之初并非為云計(jì)算考慮的,缺少標(biāo)準(zhǔn)化的描述手段和容器的可便攜性,決定其構(gòu)建出的環(huán)境難于分發(fā)和標(biāo)準(zhǔn)化管理。Docker就在這個(gè)問題上做出了實(shí)質(zhì)性的創(chuàng)新方法。

Docker 通常用于如下場(chǎng)景:

  • Web 應(yīng)用的自動(dòng)化打包和發(fā)布;
  • 自動(dòng)化測(cè)試和持續(xù)集成、發(fā)布;
  • 在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺(tái)應(yīng)用;
  • 從頭編譯或者擴(kuò)展現(xiàn)有的 OpenShift 或 Cloud Foundry 平臺(tái)來搭建自己的 PaaS 環(huán)境。

本教程不將那么多高大上的東西了,我們專注于通過 Docker 構(gòu)建一個(gè)可移植的本地開發(fā)環(huán)境。

Docker 安裝使用

首先我們需要在系統(tǒng)安裝 Docker 的免費(fèi)社區(qū)版,官方提供 Windows、Mac 及 Linux 等版本下載:下載地址。下載操作系統(tǒng)對(duì)應(yīng)版本后,按照引導(dǎo)流程安裝,最后打開 Docker 應(yīng)用,即可在命令行檢查是否安裝成功:

Mac

Windows

注:Windows 系統(tǒng)下使用 Docker 需啟用 Hyper-V 組件(推薦在原生系統(tǒng)中使用,Windows 10 專業(yè)版默認(rèn)已啟用,另外,Windows 10 家庭版不支持 Docker for Windows 桌面版),如果是在 VMware 或 Parallels 虛擬機(jī)中使用 Windows,需要在設(shè)置里面啟用嵌套的虛擬化支持(設(shè)置->處理器和內(nèi)存->高級(jí)選項(xiàng)->啟用虛擬化管理程序),如果虛擬機(jī)不支持此配置或 Hyper-V,可以嘗試額外安裝 Docker ToolBox 來支持使用 Docker(詳情參考官方文檔)。我這里的環(huán)境就是 Mac + VMware Fusion + Windows 10(虛擬機(jī))。

配置鏡像加速器

在本地操作系統(tǒng)安裝好 Docker 后,需要為 Docker Hub 鏡像倉庫配置鏡像加速器以加速國(guó)內(nèi) Docker 鏡像下載速度,比如阿里云提供的鏡像加速器,Mac 系統(tǒng)點(diǎn)擊任務(wù)欄 Docker 圖標(biāo)選擇 Preferences->Docker Engine,Windows 系統(tǒng)通過 Settings->Docker Engine 即可進(jìn)入鏡像加速器配置界面(下圖是 Windows 示例,Mac 與之類似,只是入口為 Preferences 而已,阿里云 Docker 鏡像加速器獲取參考這篇教程:https://yq.aliyun.com/articles/29941):

然后點(diǎn)擊「Sign In」菜單通過 Docker ID/密碼登錄到 Docker Hub(注意是 Docker ID,非注冊(cè)郵箱),以免鏡像拉取過程中有認(rèn)證問題。

快速上手

深入了解 Laradock 之前讓我們先見識(shí)下如何在 Laradock 中快速安裝 Nginx、PHP、Composer、MySQL、Redis 吧,有了這些開發(fā) Laravel 必備的工具組件也就差不離了。

1、首先將 Laradock 項(xiàng)目代碼克隆到本地:











1















2、進(jìn)入?laradock?目錄將?env-example?重命名為?.env











1















然后在?.env?中修改鏡像構(gòu)建過程中 Linux 軟件源為國(guó)內(nèi)鏡像以免鏡像構(gòu)建過程中出現(xiàn)網(wǎng)絡(luò)超時(shí)問題:











1





2





3





4















3、構(gòu)建鏡像 & 啟動(dòng)容器:











1















nginx?鏡像構(gòu)建在?php-fpm?之上,php-fpm?構(gòu)建在?workspace?之上,所以啟動(dòng) nginx 會(huì)先啟動(dòng)?workspace?和?php-fpm。

如果指定端口已經(jīng)被占用,運(yùn)行上述命令會(huì)報(bào)錯(cuò),關(guān)閉相應(yīng)的服務(wù)再重新運(yùn)行上述命令即可。

如果在 Windows 系統(tǒng)中上述指令構(gòu)建鏡像過程中報(bào)錯(cuò):











1















可參考這個(gè) issue 解決:https://github.com/laradock/laradock/issues/2450。

4、打開 Laravel 項(xiàng)目的?.env?文件并添加如下配置:











1





2





3















5、要測(cè)試配置訪問域名指向 Docker 環(huán)境目錄,我們先在?laradock?父級(jí)目錄下創(chuàng)建一個(gè)與?laradock?同級(jí)的?wwwroot?目錄,然后在?wwwroot?目錄下運(yùn)行?composer create-project laravel/laravel blog --prefer-dist?命令創(chuàng)建一個(gè)新的 Laravel 應(yīng)用,相應(yīng)的層級(jí)目錄關(guān)系如下所示:

然后我們需要到?laradock?下編輯?.env?中的?APP_CODE_PATH_HOST?配置項(xiàng):











1















這樣就相當(dāng)于為?wwwroot?與 Docker 的?/var/www?目錄建立了軟鏈接,然后我們?cè)?laradock/nginx/sites?目錄下新增一個(gè)?blog.conf?配置,設(shè)置虛擬域名為?blog.test











1





2





3





4





5





6





7





8





9





10





11





12





13





14





15





16





17





18





19





20





21





22





23





24





25





26





27





28





29





30





31





32





33





34















接下來需要在?/etc/hosts?(Windows 下對(duì)應(yīng)文件路徑是?C:WindowsSystem32driversetchosts)文件中新增如下這行配置:











1















最后,需要重啟 Docker 的 Nginx:











1





2















這樣,我們就可以在瀏覽器中通過?http://blog.test?訪問這個(gè)應(yīng)用了:

以上就是 Laradock 的簡(jiǎn)單上手指南。這里我們?cè)O(shè)置的場(chǎng)景是新建一個(gè)應(yīng)用,如果是多個(gè)應(yīng)用的話要怎么辦呢?也很簡(jiǎn)單,就是在上述?wwwroot?目錄下創(chuàng)建多個(gè)應(yīng)用目錄,然后在?laradock/nginx/sites?下對(duì)應(yīng)創(chuàng)建多個(gè)配置文件,最后不要忘記在系統(tǒng)?/etc/hosts?中配置相關(guān)域名綁定 IP 即可。

注:更多使用細(xì)節(jié)請(qǐng)參考官方文檔:http://laradock.io/documentation/

功能特性

最后,我們來捋一下 Laradock 的功能特性:

  • 可輕松在不同版本 PHP 之間切換: 7.2、7.1、5.6 等
  • 自由選擇數(shù)據(jù)庫: MySQL、Postgres、MariaDB 等
  • 運(yùn)行自己的軟件: Memcached、HHVM、Beanstalkd 等
  • 每個(gè)軟件都運(yùn)行在隔離的容器中: PHP-FPM、NGINX、PHP-CLI 等
  • 輕松自定義容器,只需編輯?Dockerfile?文件即可
  • 所有的鏡像都擴(kuò)展自官方的鏡像
  • 預(yù)配置的 NGINX
  • 可以在每個(gè)項(xiàng)目中使用 Laradock, 也可以讓所有項(xiàng)目共享一個(gè) Laradock
  • 使用環(huán)境變量在容器中輕松安裝/卸載軟件
  • 干凈、結(jié)構(gòu)良好的?Dockerfile
  • 最新版本的?docker-compose?文件
  • 一切均可見、可編輯
  • 快速構(gòu)建鏡像

除此之外,目前為止,Laradock 支持的軟件包括但不限于:

  • 數(shù)據(jù)庫引擎: MySQL - MariaDB - Percona - MongoDB - Neo4j - RethinkDB - MSSQL - PostgreSQL - Postgres-PostGIS.
  • 數(shù)據(jù)庫管理工具: PhpMyAdmin - Adminer - PgAdmin
  • 緩存工具: Redis - Memcached - Aerospike
  • Web 服務(wù)器: NGINX - Apache2 - Caddy
  • PHP 編譯器: PHP-FPM - HHVM
  • 消息隊(duì)列: Beanstalkd - RabbitMQ - PHP Worker
  • 隊(duì)列管理器: Beanstalkd Console - RabbitMQ Console
  • 大國(guó)重器: HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Mailhog - Minio - Varnish - Swoole - Laravel Echo 等
  • Laradock 還引入了 Workspace 鏡像作為開發(fā)環(huán)境,里面包含了豐富且實(shí)用的工具集:PHP CLI - Composer - Git - Linuxbrew - Node - V8JS - Gulp - SQLite - xDebug - Envoy - Deployer - Vim - Yarn - SOAP - Drush 等

Docker 還是 Vagrant

最后,我們繞不開的話題是作為開發(fā)環(huán)境,選擇 Docker(Laradock) 還是 Vagrant(Homestead),Mac 系統(tǒng)上官方還提供了 Valet,嘗鮮的話、做Demo或者快速學(xué)習(xí)為目的當(dāng)然 Valet 還是不二之選,因?yàn)樗钚∏?、最輕量級(jí),上手最快,天下武功,唯快不破。

至于 Laradock 還是 Homestead,就是見仁見智了,Laradock 相對(duì) Homestead 而言更加輕量級(jí),因?yàn)檎缜懊嫠?,Homestead 是 VM 級(jí)別的虛擬化解決方案,依賴一個(gè)完整的操作系統(tǒng),雖然功能很全,但是很重,而 Laradock 是容器,只依賴那些它必需的軟件,更加靈活,更加高效。

還有一點(diǎn)需要提及的是 Docker 可以用于本地也可以用于線上,所謂 same environment everywhere,而 Vagrant 部署的開發(fā)環(huán)境只能用于本地,這一點(diǎn)也可以作為重要考量因素。

服務(wù)范圍:WordPress搭建、WordPress主題開發(fā)、WordPress二次開發(fā)、WordPress插件開發(fā)
其它服務(wù):網(wǎng)站建設(shè)、企業(yè)郵箱、數(shù)字證書ssl、400電話、
技術(shù)標(biāo)簽:企業(yè)網(wǎng)站、外貿(mào)網(wǎng)站、外貿(mào)商城、其它問題
聯(lián)系方式:電話:13714666846 微信同號(hào)

企業(yè)網(wǎng)站定制

企業(yè)網(wǎng)站定制 根據(jù)企業(yè)需求,量身定制設(shè)計(jì)

企業(yè)網(wǎng)站定制:2800元起
添加微信 請(qǐng)說明來意
聯(lián)系我們
站內(nèi)搜索 MORE+

24小時(shí)服務(wù)熱線 0755-29765948
  • 地址:深圳市羅湖區(qū)人民北路2033號(hào)206
  • 電話:0755-29765948 傳真:82256610
  • 手機(jī):13714666846 18948334877
  • 郵箱:gong@ew35.com 164761418@qq.com
  • 粵ICP備14049207號(hào)
創(chuàng)意化數(shù)字品牌整合網(wǎng)絡(luò)營(yíng)銷
營(yíng)銷網(wǎng)站讓你坐等商機(jī)坐傭客戶,Rss

版權(quán)所有:深圳市網(wǎng)商在線科技有限公司

版權(quán)所有:深圳市網(wǎng)商在線科技有限公司
友情連接link: