百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

PHP开发环境安装配置:Win10+Docker+Laradock(上篇)

toyiye 2024-08-24 00:31 3 浏览 0 评论

一、关于 PHP 开发环境的选择

1、操作系统的选择

?PHP 运行环境从操作系统上来说肯定是 Linux 最好,在生产环境的服务器中都是使用 Linux 系统。但是 Linux 日常使用软件不够丰富,只能做为开发使用,Linux 中的桌面版比如 Ubuntu、深度 deepin linux 做为软件开发使用时也有人称之为免费版的 MacOS,当然,反过来看用 Linux 做开发使用不能安装一些娱乐软件特别是游戏等软件,可以更好的把注意力集中在开发上,也可以算是优点吧。日常做开发 MacOS 系统软件丰富,对 PHP 支持友好,可以获得完整的开发体验,能很好的兼顾日常应用和软件开发。Windows 对 PHP 运行环境兼容性差,但是占用率高,学习成本低,软件丰富,日常办公等应用方便。

2、集成环境

(1)图形化管理界面的集成环境,常见有的 XAMPP 、phpStudy 等,推荐使用 宝塔面板(http://www.bt.cn),有Linux 版和 Windows 版,可用于线下,也可用于线上,安装成功后默认就会安装一个 apache 服务、端口888,运行 web 管理面板,可以很方便的管理 php 运行环境。

(2)集成了许多PHP相关软件包的安装脚本,在线下载编译安装,相对比较可靠,可用于生产环境。例如:OneinStack(https://oneinstack.com/),只能用于Linux 系统,安装时可自由选择各个软件及版本。

3、Laravel Homestead

Vagrant 是一个部署虚拟机环境的工具,使用Ruby开发,可以创建、配置、管理、自动安装、打包及分发虚拟机。常见的虚拟机有 VirtualBox、VMWare 以及 Micrsoft 的 Hyper-V,但是只有 VirtualBox 是开源的,并且是免费的。早期 Vagrant 只支持 VirtualBox,后来才加入了 VMWare,Parallels,Hyper-V 的支持,最常见的还是 Vagrant + VirtualBox 组合。Laravel Homestead 就是一个打包好各种 Laravel 开发所需软件和工具的 Vagrant 盒子,也是 Laravel 推荐的开发环境,具体安装见官方文档 中文文档 英文文档 。

4、Laradock

Laradock是 laravel + docker的缩写,最早是为 laravel 打造的,现在已成为广泛使用的一套基于 Docker 的 PHP 开发环境,提供了多个预先配置和打包的 Docker 镜像。

5、Vagrant 还是 Laradock ?

这个选择其实就是传统的虚拟机和 Docker 之间的选择,虚拟机是硬件级的,就像一台独立的计算机一样,可以实现完整的 Linux 系统体验,相比 Docker 而言兼容性较好。Docker 是服务容器,就像“沙箱”一样,是运行于操作系统之上的,系统隔离的,相对于虚拟机而言 Docker 性能损失较少。

在网络服务器中使用的那些 VPS、云主机基本都是虚拟机,在这些云主机中是可以部署 Docker 的,因此如果开发环境部署了 Docker ,很容易迁移到生产环境。


二、Win10中 Laradock 安装前的准备

1、确认软硬件环境满足要求:

  • 64位的Windows 10 Pro专业版,Enterprise企业版或Education教育版(1607周年更新,Build 14393或更高版本)
  • 在 BIOS 开启硬件虚拟化:Virtualization is enabled
  • CPU 支持 SLAT 功能
  • 4G以上的内存

官方文档见:https://docs.docker.com/docker-for-windows/install/

(1)在系统桌面“此电脑”上按右键,打开 属性,可以确认系统的版本、内存大小。要求系统必须是64位的 Win10,不能用家庭版,内存4G以上。如下图所示:


如果是 Win10 以下版本就需要下载 Docker Toolbox工具再安装,也就不能用 Hyper-V 虚拟机,而是使用 Oracle VirtualBox 虚拟机。

(2)打开 任务管理器 ,切换到 性能 ,查看 CPU ,如果在 虚拟化 旁显示 已启用 ,则说明 CPU 主板 BIOS 都是支持虚拟化的,并且已经开启,可以使用。

2、如果虚拟化未启用,进一步确认是 CPU不支持,还是主板 BIOS 中未开启。

(2.1)CPU是否支持 SLAT 功能,一般可用 CPU-Z 软件查看指令集,Intel 的 CPU 看有没有 VT-X 这个指令集,AMD 的 CPU 看有没有 AMD-V 指令集。或者 根据 CPU 型号,如果是 Intel 的访问 Intel ARK ,如果是AMD 的 CPU 访问 desktop CPU page ,查看自己的 CUP 型号,如果 INTEL 的具有 Intel? VT-x with Extended Page Tables (EPT) 功能,AMD的具有 AMD Virtualization Technology 功能,说明此CPU是具备 SLAT 虚拟化技术的。

(2.2)进入 BIOS 查看是否有 Virtualization Technology(VT) 虚拟化技术的相关选项,不同的主板略有差异,通常在电脑启动时按 F2 ,进入 bios 菜单中 advanced(高级)—— CPU configuration(处理器配置)—— Intel(R) Virtualization teachnology (虚拟化技术),设置为 Eenabled 即可。

完成了以上两步之后,再次打开 任务管理器 ,切换到 性能 ,查看 CPU 是否已开启虚拟化。

3、确认没有安装过虚拟机软件,如VMware Workstation 、Virtual Box 等,如果安装过一定要将其卸载,否则可能会出现冲突,因为 Win10 中安装 docker 时会启用Winn10 自带的 Hyper-V 虚拟机。

4、下载 Docker 进行安装,因网络问题,下载可能比较慢。

https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe


三、Win10中安装 Docker

1、运行下载的 Docker 安装程序,在如下界面中,默认会使用 Linux 容器。第二个选项是使用 windows 容器,一定不要勾选,因为我们安装 Docker的目的是为了使用 Laradock 配置 PHP 环境,Laradock需要在Linux 中安装,如果使用了 Windows 容器,那 Docker 中就只能安装 Windows 的软件了。


2、在安装过程中最好退出 360安全卫士 类软件,如果出现被拦截情况,要 允许操作。

3、安装完成,点 Close and log out ,会注销系统,然后重新登录系统。


4、重新进入桌面后,会出现如下提示,点击 OK ,系统重启并安装 Hyper-V 虚拟机。.................



5、系统重启之后,在右下角通知栏就会出现一个 Docker 的小图标,会显示 Docker desktop is runing,说明Docker 已成功运行了。在图标上按右键,选择 Settings ,切换到 Advanced ,如下图:


可以看到,Docker 实际上是启用了一个虚拟机,虚拟盘名称是:MobyLinuxVM.vhdx,宿主机CPU 一共4核,给虚拟机分配了 2核,内存分配了2G。现在打开 Hyper-V 管理器,能看到名称为 MobyLinuxVM 的虚拟机正在运行。也就是说,Docker 在 Windows 中,先运行了个定制的轻量的 Linux 虚拟机,再在这个虚拟机中运行各种功能的Docker容器。如图:


6、将 Docker 设置切换到 Daemon ,在 Registry mirrors 中填入国内的 Docker 镜像加速地址:https://registry.docker-cn.com 。如果有阿里云的账号,也可以申请一个阿里云的 Docker 容器加速器。


7、如下图,选择要共享的盘,挂载宿主机的目录。

挂载目录也可以使用 docker run -v 或 mount 命令。图中给出的 PowerShell 命令: docker run --rm -v c:/Users:/data alpine ls /data 只是示例,不明白意思的不要随便运行。


四、测试 Docker

1、在开始菜单图标上按右键,打开 Windows Shell ,输入以下命令查看Docker版本:

#查看docker版本信息
docker version

#检查Docker,Compose和Machine的版本
docker --version
docker-compose --version
docker-machine --version

2、在windows shell 中运行下面的命令,将镜像文件从仓库抓取到本地。hello-world 是官方的一个最基本的镜像,只有1.85kB

docker pull library/hello-world

#显示结果:
Using default tag: latest
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest

3、查看宿主机上的镜像

docker images

#显示结果
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        6 weeks ago         1.84kB

4、运行这个镜像,如能正常显示说明信息,表示 Docker 运行正常。

docker run hello-world

#显示结果
Hello from Docker!
This message shows that your installation appears to be working correctly.
...

5、查看容器 ,注意容器ID

docker ps -a

#显示结果
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
f657e13f1a25        hello-world         "/hello"            13 minutes ago      Exited (0) 13 minutes ago                       brave_morse

6、删除容器(如果要删除镜像先要删除容器)

docker rm f657e13f1a25

7、删除刚下载的镜像:

docker rmi  hello-world

#显示结果:
Untagged: hello-world:latest
......

至此,测试结束,Docker 运行正常。


五、安装 Laradock

参考官方文档:https://laradock-docs.linganmin.cn/zh/getting-started/

1、下载或克隆 Laradock 项目到本地,例如,打开 Windows Shell ,进入C:\WWW 目录中,运行git 命令:

git clone https://github.com/laradock/laradock.git

2、进入laradock文件夹并复制 env-example 为 .env,mysql 配置 账号密码在.env中,可修改。

cd laradock
cp env-example .env

3、修改 .env 文件,启用 xDebug。默认的 .env 文件没有启用 xDebug 。

(1)现在打开 .env 文件,搜索 XDEBUG ,将 WORKSPACE_INSTALL_XDEBUG 设置为 true ,将 PHP_FPM_INSTALL_XDEBUG 设置为 true 。

(2)打开 laradock/workspace/xdebug.ini 和 laradock/php-fpm/xdebug.ini 修改以下配置:

...
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.cli_color = 1
...

这样修改配置之后,在构建环境时就会在 php-fpm 和 workspace 两个容器中安装 XDEBUG ,详见官方文档:http://laradock.io/documentation/#install-xdebug

4、运行docker-compose来构建环境:

docker-compose up -d nginx mysql

以上命令就会构建 nginx mysql 两个容器,同时还会自动构建 php-fpm 和 workspace 两个容器。

由于网络原因,时间可能会比较长,因为 Laradock 中的 linux 软件源都是默认的,并没有为国内网络优化。在github 上也有国内做的修改版的,使用了国内的软件源。不过一般在云主机中网络条件都比较好,安装时会比本地安装要快。如果因为网络原因构建不成功,那就重新运行一次命令。我本人在本地安装时用了3个多小时。

5、构建其它可选容器

docker-compose up -d redis beanstalkd phpmyadmin

6、至此,laradoc环境已经构建完成,以后在win10系统每次开机重启后,会自动启动 docker ,只要打开 PowerShell 切换到 laradoc 目录,运行上述两条命令即可启动相应的容器服务。


-- 待续 --

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码