macos编译安装php74

# 地址加速下载一下
wget https://hub.fastgit.org/php/php-src/archive/php-7.4.11.tar.gz
# 解压
tar xvf php-7.4.11.tar.gz
cd php-src-php-7.4.11/
  • 生成 configure 文件

./buildconf --force
/path/to/autoconf ./buildconf --force
# 如果提示
buildconf: Checking installation
buildconf: autoconf not found.
           You need autoconf version 2.68 or newer installed
           to build PHP from Git.
# 安装依赖构建工具
apt sou automake
apt sou autoconf


# 如果提示
autom4te: m4sugar/m4sugar.m4: no such file or directory
# 查找
find /usr -name m4sugar.m4
# /usr/local/axe/bottle/lib/autoconf/2.69/share/autoconf/m4sugar/m4sugar.m4
# 修正 ./buildconf 文件末尾几行, -I 来进行指定刚才安装的依赖位置
echo "buildconf: Rebuilding configure"

$PHP_AUTOCONF $autoconf_flags -I /usr/local/axe/bottle/lib/autoconf/2.69/share/autoconf

echo "buildconf: Rebuilding main/php_config.h.in"

$PHP_AUTOHEADER $autoheader_flags -I /usr/local/axe/bottle/lib/autoconf/2.69/share/autoconf

echo "buildconf: Run ./configure to proceed with customizing the PHP build."
  • 初始化

./configure \
--prefix=/usr/local/php74 \
--exec-prefix=/usr/local/php74 \
--bindir=/usr/local/php74/bin \
--sbindir=/usr/local/php74/sbin \
--includedir=/usr/local/php74/include \
--libdir=/usr/local/php74/lib/php \
--mandir=/usr/local/php74/php/man \
--with-config-file-path=/usr/local/php74/etc \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mhash \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-iconv=/usr/local/axe/opt/libiconv \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--with-pear \
--with-gettext=/usr/local/axe/opt/gettext \
--enable-session \
--enable-opcache \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www


# 注意 --enable-pcntl 不支持 macos

# 常见依赖安装
# bison --version 可能是版本不够
# 安装高版本
apt sou bison
# 删除之前的版本
sudo mv /usr/bin/bison /usr/bin/bison_back

# re2c
apt sou re2c

# checking for libxml-2.0 >= 2.7.6... no
apt sou libxml++
apt sou libxml2
apt sou pkg-config

# error: Please specify the install prefix of iconv with --with-iconv=<DIR>
apt sou libiconv
# 指定刚才安装的位置
--with-iconv=/usr/local/axe/opt/libiconv

# error: Cannot locate header file libintl.h
apt sou gettext
--with-gettext=/usr/local/axe/opt/gettext

# error: Package requirements (oniguruma) were not met:
# oniguruma.h not found
apt sou oniguruma
export ONIG_LIBS="-L/usr/local/axe/opt/oniguruma/lib"
export ONIG_CFLAGS="-I/usr/local/axe/opt/oniguruma/include"

# bison: /usr/local/Cellar/bison/3.6.4/share/bison/m4sugar/m4sugar.m4: cannot open: No such file or directory
# 其实在这个位置
sudo mkdir -p /usr/local/Cellar/
sudo ln -s /usr/local/axe/bottle/lib/bison /usr/local/Cellar

# sqlite3
apt sou sqlite
export SQLITE_LIBS="-L/usr/local/axe/opt/sqlite/lib"
export SQLITE_CFLAGS="-I/usr/local/axe/opt/sqlite/include"

# openssl
export OPENSSL_LIBS="-L/usr/local/axe/opt/[email protected]/lib"
export OPENSSL_CFLAGS="-I/usr/local/axe/opt/[email protected]/include"
  • 编译

make -j4
  • 安装

make install