前言

这篇文章主要讲了秃布在探索 macOS 的 PHP 集成环境时遇到了各类问题,由于咱对部分内容的了解不全面,所以部分内容可能不准确,欢迎大佬们帮咱纠出错误,分享解决办法hhh。

五种方法

当在搜索引擎中搜索“mac php集成开发环境”的时候,搜索出来的结果主要会告诉你 4 种解决办法,分别是使用 MAMPXAMPPMxSrvs系统自带的 PHP 环境PHPStudy。接下来我来一一简要说明一下这五种方法。

MAMP 的优点在于它不仅仅有 A (Apache)、M (MySQL)、P (PHP),它还有 Nginx、Redis 等服务,也支持更多语言,比如 Python、Perl 和 Ruby。比较大的难点就是 Pro 版本需付费,免费版能够支持的就没有上述的这么多了。不仅如此,它所支持的 PHP 版本有限,免费版目前来说似乎最多只能选 2 个。目前挺多破解软件的启用也需要用户关闭 macOS 的 SIP 功能,丧失部分安全性。如果是日常很简单的使用的话,免费版也能顶用,看个人需求啦。

系统自带的 PHP 环境 版本过低,需要自行使用 brew 进行更新。但是使用系统自带的话容易让系统污染,所以该方法不太推荐使用。

MxSrvsPHPStudy 我觉得能够满足大部分人的使用需求了,并且自带的后台和 UI 也能让很多人快速上手,但是 PHPStudy 的 Mac 版本已经长长长长长时间没有更新了啊啊啊啊啊,并且让我没有选择这两个方法的主要问题在于均还没有支持 PHP8 (moooooooooooooo)

尝试 Docker

因此经过上述的尝试之后,我发现可以使用 Docker 来搭建,因此就开始探索 Docker 搭建 PHP 集成开发环境之旅。由于这个秃布很(终究还是太懒了),想要一个带后台的,所以咱开始看向了宝塔和 PHPStudy For Linux。

当然,想象都是美好的,现实并非如此。我先是 docker pull centos:7 创建好了 CentOS 7 镜像,然后啪的一下很快啊输入了docker run -d -it -p 80:80 -p 888:888 -p 8888:8888 --name baota --privileged -v /Users/***/docker/www:/www -d centos:7 /usr/sbin/init ,就把容器给创建好了,接下来就是yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 一把梭,当开始安装的时候,我认为一切都是好的。之后就是疯狂弹出文件夹权限错误的问题,打破了一切。我最初通过面向搜索引擎认为是 macOS 的 SIP 导致的问题,但是尝试了之后发现也不对,他还是不工作!之后我修改为docker run -d -it -p 80:80 -p 888:888 -p 8888:8888 --name baota --privileged -v /Users/***/docker/wwwlogs:/wwwlogs -v /Users/***/docker/wwwroot:/wwwroot -d centos:7 /usr/sbin/init 才解决了文件夹权限的问题。但是新的问题又来了,如果我只是挂载了网站数据,那我宝塔面板岂不是重启一次就要重装一次(达咩哟!!!),因此我就放弃了这个想法,开始转头向 PHPStudy For Linux 奔去。但 PHPStudy For Linux 也跟宝塔一样,也会有重装的问题,所以我最终还是选择了 Docker 安装 Nginx、PHP 和 Mysql 来用。

最终方案

最后,咱开始面向百度探索直接装。在探索过程中发现了这样一个项目 DNMP ,它可以通过修改 docker-compose.sample.yml 来实现不同版本的安装,可以自由的选择 PHP 版本,咱认为是一种比较傻瓜式的解决办法,挺方便的hhh(再次突出布好的懒)。通过项目里面的 README 就可以快速的安装上手使用力!但是在容器内搭建 Typecho 的时候需要注意数据库地址不是 127.0.0.1哦,你需要通过docker inspect mysql 在输出内容中找到 IPAddress 才是数据库地址哦!目前咱还在不断探索的路上,如果还遇到啥有趣的事咱会继续在这里更新的!