前提条件

确保你已经安装了 HomebrewXcode Command Line Tools。你可以通过以下命令安装它们:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

xcode-select --install

https://www.cnblogs.com/niuben/p/16109703.html

安装必要的依赖项

使用 Homebrew 安装 PHP 编译所需的依赖项:

brew install autoconf bison re2c libxml2 openssl@3 libiconv icu4c bzip2 readline krb5 curl

下载 PHP 源代码

PHP 官方网站下载源码包,或者使用 wget

wget https://www.php.net/distributions/php-8.3.9.tar.gz
tar -xvf php-8.3.9.tar.gz
cd php-8.3.9

编写配置脚本

创建一个名为 configure_php.sh 的脚本文件,并写入以下内容:

#!/bin/bash

# 清理之前的编译结果
make clean
rm -rf config.cache # 设置PKG_CONFIG_PATH
export PKG_CONFIG_PATH="/opt/homebrew/opt/krb5/lib/pkgconfig:/opt/homebrew/opt/openssl@3/lib/pkgconfig:/opt/homebrew/opt/libiconv/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH" # 设置CFLAGS和LDFLAGS,确保不重复
export CFLAGS="-I/opt/homebrew/opt/krb5/include -I/opt/homebrew/opt/bzip2/include -I/opt/homebrew/opt/libiconv/include -I/opt/homebrew/opt/icu4c/include -I/opt/homebrew/opt/readline/include"
export LDFLAGS="-L/opt/homebrew/opt/krb5/lib -L/opt/homebrew/opt/bzip2/lib -L/opt/homebrew/opt/libiconv/lib -L/opt/homebrew/opt/icu4c/lib -L/opt/homebrew/opt/readline/lib" # 运行配置脚本
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/php.d \
--enable-bcmath \
--enable-calendar \
--enable-exif \
--enable-fpm \
--enable-intl \
--enable-mbstring \
--enable-mysqlnd \
--enable-opcache \
--enable-pcntl \
--enable-soap \
--enable-sockets \
--with-bz2=/opt/homebrew/opt/bzip2 \
--with-curl \
--with-freetype \
--with-jpeg \
--with-kerberos=/opt/homebrew/opt/krb5 \
--with-libxml \
--with-mysqli \
--with-openssl=/opt/homebrew/opt/openssl@3 \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-readline=/opt/homebrew/opt/readline \
--with-xsl \
--with-zlib \
--with-iconv=/opt/homebrew/opt/libiconv

运行配置脚本

赋予脚本执行权限并运行它:

chmod +x configure_php.sh
./configure_php.sh

运行测试

建议在安装之前运行测试:

make test

编译和安装

运行以下命令进行编译和安装:

make -j$(sysctl -n hw.ncpu)
sudo make install

安装完成

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20230831/
Installing PHP CLI binary: /usr/local/php/bin/
Installing PHP CLI man page: /usr/local/php/php/man/man1/
Installing PHP FPM binary: /usr/local/php/sbin/
Installing PHP FPM defconfig: /usr/local/php/etc/
Installing PHP FPM man page: /usr/local/php/php/man/man8/
Installing PHP FPM status page: /usr/local/php/php/php/fpm/
Installing phpdbg binary: /usr/local/php/bin/
Installing phpdbg man page: /usr/local/php/php/man/man1/
Installing PHP CGI binary: /usr/local/php/bin/
Installing PHP CGI man page: /usr/local/php/php/man/man1/
Installing build environment: /usr/local/php/lib/php/build/
Installing header files: /usr/local/php/include/php/
Installing helper programs: /usr/local/php/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php/php/man/man1/
page: phpize.1
page: php-config.1
Installing PDO headers: /usr/local/php/include/php/ext/pdo/

验证安装

安装完成后,检查 PHP 的版本和已启用的扩展:

/usr/local/php/bin/php -v
/usr/local/php/bin/php -m

配置 PHP 环境

为了方便使用,将 PHP 二进制文件添加到系统的 PATH 中:

echo 'export PATH="/usr/local/php/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

验证 PATH

重新打开终端或运行 source 命令后,验证 PHP 是否在 PATH 中:

php -v

你应该能够看到 PHP 版本信息。

mac 源码编译安装php8.3.9的更多相关文章

  1. Linux 下源码编译安装 vim 8.1

    前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...

  2. 使用源码编译安装PHP7

    使用源码编译安装PHP7 2015年6月11日,PHP官网发布消息,正式公开发布PHP7第一版的alpha版本. PHP7特性: PHP 7.0.0 Alpha 1使用新版的ZendEngine引擎, ...

  3. SSH/SSL 源码编译安装简易操作说明

    环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...

  4. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  5. 烂泥:mysql5.5数据库cmake源码编译安装

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...

  6. Centos7.X 源码编译安装subversion svn1.8.x

    说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...

  7. centos6.5环境源码编译安装mysql5.6.34

    centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...

  8. centos 6.5源码编译安装subversion 1.8.10

    一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...

  9. Linux环境PostgreSQL源码编译安装

    Linux环境PostgreSQL源码编译安装 Linux版本: Red Hat 6.4 PostgreSQL版本: postgresql-9.3.2.tar.gz 数据存放目录: /var/post ...

  10. 总结源码编译安装mysql

    最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...

随机推荐

  1. Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)

    一.功能特点 支持各种本地视频文件和网络视频文件. 支持各种网络视频流,网络摄像头,协议包括rtsp.rtmp.http. 支持将本地摄像头设备推流,可指定分辨率和帧率等. 支持将本地桌面推流,可指定 ...

  2. Qt编写物联网管理平台(支持win/linux/mac/嵌入式linux/modbus等)

    一.前言 这个物联网综合管理平台前后迭代了五年,一点一滴慢慢积累起来,从最开始的只有modbus串口协议解析以及简单的表格显示数据,慢慢的逐渐增加了tcp_rtu支持,用户管理模块,地图监控模块,而后 ...

  3. Qt通用方法及类库7

    函数名 //int转字节数组 static QByteArray intToByte(int i); static QByteArray intToByteRec(int i); //字节数组转int ...

  4. Qt编写地图综合应用4-仪表盘

    一.前言 仪表盘在很多汽车和物联网相关的系统中很常用,最直观的其实就是汽车仪表盘,这个以前主要是机械的仪表,现在逐步改成了智能的带屏带操作系统的仪表,这样美观性和拓展性功能性大大增强了,上了操作系统的 ...

  5. [转]OpenLayers基于Vue项目的搭建

    主要内容上次介绍了什么是OpenLayers以及其他的可以GIS工具,这次说说如何基于Vue搭建OpenLayers的项目,并且实现地图的加载. 一.vue项目搭建1.全局安装vue-cil npm ...

  6. 即时通讯安全篇(十):IM聊天系统安全手段之通信连接层加密技术

    本文由融云技术团队分享,原题"互联网通信安全之端到端加密技术",内容有修订和改动. 1.引言 随着移动互联网的普及,IM即时通讯类应用几乎替代了传统运营商的电话.短信等功能.得益于 ...

  7. CDS标准视图:功能位置描述 I_FunctionalLocationText

    视图名称:功能位置描述 I_FunctionalLocationText 视图类型:基本视图 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location ...

  8. rpm与dpkg

    基本介绍 "dpkg "是"Debian Packager "的简写.为 Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian ...

  9. 2025春秋杯DAY2DAY3部分wp

    2025春秋杯DAY2DAY3部分wp DAY2 WEB easy_ser 源码如下 <?php //error_reporting(0); function PassWAF1($data){ ...

  10. 一个 .NET 开源、免费、功能强大的Windows应用卸载神器

    前言 今天大姚给大家分享一个基于 .NET 开源(Apache License).免费.功能强大的Windows应用卸载神器:Bulk Crap Uninstaller. 项目介绍 Bulk Crap ...