代码先锋网 代码片段及技术文章聚合

从源代码编译安装PHP8

技术标签: php

如此文无法正常查看,可查看博客园

此处以Ubuntu 21.04 为例。
此文仅描述编译安装过程,不含配置等过程。

  1. 安装必要的依赖
    sudo apt install libsystemd-dev libacl1-dev libapparmor-dev valgrind libdmalloc-dev systemtap-sdt-dev krb5-multidev libkrb5-dev libssl-dev libsqlite3-dev libbz2-dev libcurl4-openssl-dev libenchant-2-dev libgmp-dev libc-client2007e-dev libldap2-dev libsasl2-dev libonig-dev unixodbc-dev libpspell-dev libedit-dev libsnmp-dev libsodium-dev libargon2-dev libtidy-dev libzip-dev libwebp-dev
    
  2. 配置、编译、安装

    注意:由于—enable-mm和—enable-zts冲突,两者无法同时使用。下方为启用zts但为启用mm的配置方法。关于mm的安装可以参照3.16。

    ./configure --prefix=/usr/local/php/$(basename $(pwd)) --enable-re2c-cgoto --enable-fpm --with-fpm-systemd --with-fpm-acl --with-fpm-apparmor --enable-fuzzer-msan --enable-phpdbg --enable-phpdbg-webhelper --enable-phpdbg-debug --enable-phpdbg-readline --with-valgrind --enable-gcov --enable-debug --enable-debug-assertions --enable-zts --enable-rtld-now --enable-sigchild --enable-libgcc --enable-dtrace --enable-fd-setsize=1024 --with-openssl --with-kerberos --with-system-ciphers --with-external-pcre --with-pcre-jit --with-zlib --enable-bcmath --with-bz2 --enable-calendar --with-curl --enable-dba --with-enchant --enable-exif --with-ffi --enable-ftp --enable-gd --with-external-gd --with-webp --with-jpeg --with-xpm --with-freetype --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --with-imap --with-kerberos --with-imap-ssl --enable-intl --with-ldap --with-ldap-sasl --enable-mbstring --with-mysqli --with-mysql-sock --with-unixODBC --enable-pcntl --with-pdo-mysql --with-zlib-dir --with-pspell --with-libedit --with-readline --enable-shmop --with-snmp --enable-soap --enable-sockets --with-sodium --with-password-argon2 --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-tidy --with-expat -with-xsl --enable-zend-test --with-zip --enable-mysqlnd --with-pear --with-gnu-ld
    make -j$(nproc)
    sudo make install
    
  3. 编译或配置过程中遇到的依赖解决:
    1. configure: error: Cannot find sys/sdt.h which is required for DTrace support
      sudo apt install systemtap-sdt-dev
      
    2. configure: error: Package requirements (krb5-gssapi krb5) were not met
      sudo apt install krb5-multidev libkrb5-dev 
      
    3. configure: error: Package requirements (openssl >= 1.0.1) were not met
      sudo apt install libssl-dev
      
    4. configure: error: Package requirements (sqlite3 > 3.7.4) were not met
      sudo apt install libsqlite3-dev
      
    5. configure: error: Please reinstall the BZip2 distribution
      sudo apt install libbz2-dev
      
    6. configure: error: Package requirements (libcurl >= 7.29.0) were not met
      sudo apt install libcurl4-openssl-dev
      
    7. configure: error: Package requirements (enchant >= 1.4.2) were not met
      sudo apt install libenchant-2-dev
      
    8. configure: error: GNU MP Library version 4.2 or greater required
      sudo apt install libgmp-dev
      
    9. configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information
      sudo apt install libc-client2007e-dev
      
    10. configure: error: Cannot find ldap.h
      sudo apt install libldap2-dev
      
    11. configure: error: Package requirements (libsasl2) were not met
      sudo apt install libsasl2-dev
      
    12. configure: error: Package requirements (oniguruma) were not met
      sudo apt install libonig-dev
      
    13. configure: error: Package requirements (odbc) were not met
      sudo apt install unixodbc-dev
      
    14. configure: error: Cannot find pspell
      sudo apt install libpspell-dev
      
    15. configure: error: Package requirements (libedit) were not met
      sudo apt install libedit-dev
      
    16. configure: error: cannot find mm library
      1. 从 ftp://ftp.ossp.org/pkg/lib/mm/mm-1.4.2.tar.gz 下载文件,可通过uget等工具进行下载。或从下方下载。
      2. 编译安装mm
        tar -C ~/builds -zxvf mm-1.4.2.tar.gz
        cd ~/builds/mm-1.4.2
        ./configure
        make -j$(nproc)
        sudo make install
        
      3. mm-1.4.2.tar.gz附件:
        mm-1.4.2.tar.gz
    17. configure: error: Could not find net-snmp-config binary. Please check your net-snmp installation
      sudo apt install libsnmp-dev
      
    18. configure: error: Package requirements (libsodium >= 1.0.8) were not met
      sudo apt install libsodium-dev
      
    19. configure: error: Please ensure the argon2 header and library are installed
      sudo apt install libargon2-dev
      
    20. configure: error: Cannot find libtidy
      sudo apt install libtidy-dev
      
    21. configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met
      sudo apt install libzip-dev
      
    22. configure: error: Package requirements (libwebp) were not met
      sudo apt install libwebp-dev
      
版权声明:本文为Annlix原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Annlix/article/details/119759752

智能推荐

安装Solidity编译器——从源代码编译

从源代码编译 克隆代码库 执行以下命令,克隆源代码: 如果你想参与 Solidity 的开发, 你可分叉 Solidity 源码库后,用你个人的分叉库作为第二远程源: Solidity 有 Git 子模块,需确保完全加载它们: 先决条件 - macOS 在 macOS 中,需确保有安装最新版的Xcode, Xcode 包含Clang C++编译器, 而 Xcode IDE 和其他苹果开发工具是 O...

Mac Silicon M1 编译安装 PHP8 & Swoole4.6 ARM64 全过程记录

最近搞了一台 M1 的 Mac mini 准备用这个开发 mixphp v3 版本,之前尝试了几次没有编译成功,今天再次尝试安装成功了,网络上很多人的文章存在问题(可能是系统环境不同),特此分享让后续的人闭坑。 面临的问题 由于最新版本的 macOS Big Sur 即便关闭安全模式 /usr/lib 也无法写入文件,因此导致 make install 无法安装任何 php 扩展,因此想装 Swo...

centos上PHP8安装fileinfo拓展失败

前段时间通过编译安装PHP8的时候因为内存的原因加了–disable-fileinfo禁用了fileinfo拓展 然而最近使用PHP8安装Laravel8的时候却因为部分包依赖fileinfo而无法安装。 想着我也不是头一次给编译后的PHP安装拓展了,装个fileinfo的拓展又有多难呢。 然而现实还是给了我一记响亮亮的耳光,make的时候不仅报错,还找不到解决办法。 网上找了半天也是...

Deepin20 安装 PHP8等环境

参考  Debian 10.7安装PHP7.4和PHP8.0 - MichaelShu's Homepage - OSCHINA - 中文开源技术交流社区 按前述参考资料操作,这里有问题,因为在 Deepin20 下, lsb_release -sc 得到的是 n/a,即无法获得发行版的代号,Deepin20 是有发行版代号的,这个可以 cat  /etc/lsb-r...

CentOS 自动安装PHP8的脚本

对于PHP开发或DevOP人来说,在Linux系统下安装PHP环境是必备基本技能。能做一些简单配置之后有个脚本自动安装PHP就能节省不少时间。该脚本我自己写的,可能不具备通用性哦。 话不多说,直接上代码。...

猜你喜欢

安装php8 Please reinstall the iconv library

虽然已经设置了,但还是报错,检查是否有重复项 思路 如果遇到安装问题中出行不能确定是哪个扩展导致的问题,那就一个一个的排除。...

CentOS - 从源代码编译安装版本控制Git

文章目录 一、查看已安装Git版本 二、删除旧版本Git 三、下载高版本Git 四、安装编译前依赖 四、解压编译并安装 六、验证版本 七、克隆项目   CentOS更改了国内的仓库源,sudo yum install git安装的版本过低,对于一些新版本的开发工具兼容性不是特别好,所以就照着Git官网教程,安装个高版本的。   若是条件允许,从源代码安装有很...

Ubuntu 18.04从源代码编译安装GDAL3.4.1

Ubuntu 18.04从源代码编译安装GDAL3.4.1 简要介绍 参考地址 编译代码 注意事项 1.configure: error: PROJ 6 symbols not found 2. 使用cmake时找不到库 3.可以用make -j4 加速 检查方法 简要介绍 参考地址 GDALGithub GDAL各版本下载地址 官方编译方法地址 编译代码 注意,3.5版本可以使用cmake进行编...

GO从源代码编译

2019独角兽企业重金招聘Python工程师标准>>>   此脚本适合在windows上运行 以下脚本适合在linux上运行,可以根据需求分拆执行,如果是树莓派平台下载arm的自举   转载于:https://my.oschina.net/raddleoj/blog/828477...

源代码编译构建LAMP(详细安装apache,MySQL,php)

文章目录 源代码编译构建LAMP 1.什么是LAMP平台 2.LAMP平台构建顺序 3.源代码编译安装的优点 4.源代码安装apache 5.源码编译安装mysql 6.编译安装PHP 源代码编译构建LAMP 1.什么是LAMP平台 2.LAMP平台构建顺序 3.源代码编译安装的优点 4.源代码安装apache 1.将三个源码文件添加到/opt目录下 2.解压apr跨平台组件包和httpd源码包到...