博客列表 >Mac 如何编译 PHP 8.0 到 MxSrvs 工具

Mac 如何编译 PHP 8.0 到 MxSrvs 工具

谨言慎行
谨言慎行原创
2022年02月24日 21:57:021332浏览

前言

首先,十分感谢开发 MxSrvs 的作者,能让在 Mac 上开发 PHP 变得如此简单,并且不那么繁琐。
我手动编译有两条原因:

  1. 毕竟现在 PHP 8.1 都出很久了,再不使用一下 8 版本,好像要有亿点点?? 说不过去
  2. MxSrvs 提供的已编译好的最高版本仅到 PHP 7.4.6

因为以前想编译 PHP 7.2 的时候,跟作者发过邮件沟通,作者给的回复是正常编译就好。最后发现,作者提供了后续一些好用的版本编译,我也就没有自己实际操作过去编译到本地以及去适配到 Mxsrvs 这个工具。

开始准备工作

下载 PHP 8.0

PHP 官方下载
下载PHP 8.0.16 版本
进入到 MxSrvs 的主程序路径下的 /Applications/MxSrvs/bin ,根据 Mxsrvs 的命名规则,创建一个 php_8.0.16 文件夹,用来存放我们编译后的文件
进入目录有两种方法:

  1. 点击 MxSrvs 工具状态栏小图标 -> 定位目录 -> 主程序目录 -> 双击进入 bin 文件夹
    MxSrvs 主程序目录

  2. 打开访达 -> 应用程序 -> 右边搜索 MxSrvs -> 双击进入 MxSrvs -> 双击进入 bin 文件夹
    通过访达直接一步一步进入

编译开始

解压下载的文件,得到 [ php-8.0.16] 文件夹
开始编译
编译命令:

  1. ./buildconf --force
  2. ./configure --prefix=/Applications/MxSrvs/bin/php \
  3. --with-config-file-path=/Applications/MxSrvs/bin/php/etc \
  4. --with-mysqli=mysqlnd \
  5. --with-pdo-mysql=mysqlnd \
  6. --with-pear \
  7. --with-zlib \
  8. --with-curl \
  9. --enable-mysqlnd \
  10. --enable-pdo \
  11. --enable-fpm \
  12. --enable-cli \
  13. --with-openssl \
  14. --enable-gd \
  15. --enable-xml \
  16. --without-iconv
  17. sudo make && sudo make install
  18. sudo cp php.ini-development /Applications/MxSrvs/bin/php/etc/php.ini

等编译跑完,编译期间需要输入两次(电脑)密码,因为用了 sudo
一般安装的时候,也不会遇到太多的缺失的组件之类的。如果缺东西,基本是缺什么安装什么即可

  1. brew install xxxx

然后再次编译就行了。

适配 MxSrvs

我们重启 MxSrvs 工具,这个时候就可以看到我们编辑的 PHP 版本了,切换到 8.0.16 ,这个时候点击启动按钮是启动不了的。
中间的启动错误图,因为没有截图,所以…

第一步,把所有编译的时候,配置的文件夹名称 php_8.0.16 替换成 php ,因为 MxSrvs 会在你切换 PHP 版本的时候,会把当前切换版本目录改成 php

我是用 VScode ,把文件夹拖到编辑器,然后全局搜索替换的。

第二步,分别把 /Applications/MxSrvs/bin/php/etc 目录下的文件 php-fpm.conf.default 复制到当前目录并重命名为 php-fpm.conf,还有就是 /Applications/MxSrvs/bin/php/etc/php-fpm.d 下的 www.conf.default 复制到当前目录并重命名为 www.conf

第三步,也是比较重要的一步,需要把我们编辑的 PHP 版本的配置文件 /Applications/MxSrvs/bin/php/etc/php.ini 与 MxSrvs 提供的版本的 php.ini 逐行对比,然后修改成对应的相应配置。

这个时候基本那就可以说是做了所有的工作,可以享受成果了。
最终编译 PHP 8.0 适配 MxSrvs 完成

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议