zoukankan      html  css  js  c++  java
  • CentOS裸机环境下安装php-7.3.1

    安装步骤如下

    安装必要的软件

        yum install -y autoconf automake libtool re2c libxml* openssl* BZip2* libcurl* libjpeg* libpng* libXpm* libzip* zlib* freetype* pcre* flex bison tar get
    

    获取源码

        wget -O /data1/source/php-7.3.1.tar.gz http://cn2.php.net/get/php-7.3.1.tar.gz/from/this/mirror
        cd /data1/source/
        tar zxf php-7.3.1.tar.gz
        cd php-7.3.1
    

    编译安装

        // php根目录设置为/data1/install/php
        // php的配置文件目录为/data/config/php
        // php-fpm的配置文件目录为/data/install/php/etc
        // php-fpm的可运行文件在源码目录的sapi/fpm下
        // php的可执行文件目录为/usr/local/bin
        ./configure --prefix=/data1/install/php --with-config-file-path=/data1/config/php/ --bindir=/usr/local/bin --sbindir=/user/local/sbin --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-libxml-dir --enable-debug --with-zlib --disable-rpath --enable-sysvsem --with-curl --enable-mbregex --enable-mbstring --enable-zip --enable-soap --with-pear --disable-phar --disable-tokenizer --enable-ftp --with-mysqli --with-pdo-mysql --with-openssl --with-bz2 --with-jpeg-dir --with-webp-dir --with-png-dir --with-xpm-dir --with-freetype-dir --with-mhash --with-iconv-dir --enable-gd-jis-conv --with-gd --enable-sockets --with-pcre-dir --enable-bcmath --enable-pdo
        make
        make install
    

    安装过程可能遇到的一些问题

        如果提示libzip版本需要升级,则安装新版的,
        以下是安装1.2.0版本libzip的步骤
        yum remove libzip
        cd ~
        wget https://nih.at/libzip/libzip-1.2.0.tar.gz
        tar -zxvf libzip-1.2.0.tar.gz
        cd libzip-1.2.0
        ./configure && make && make install
    
        如果出现"off_t undefined; check your library configuration"这个错误
        在运行一下命令
        echo '/usr/local/lib64
        /usr/local/lib
        /usr/lib
        /usr/lib64'>>/etc/ld.so.conf&&ldconfig -v
    

    编译参数详解

        []内的路径表示默认路径
        安装目录:
            --prefix=PREFIX         指定 php 安装目录 [/usr/local]
            --exec-prefix=EPREFIX   指定 php 用户可执行文件安装目录 [PREFIX]
            --bindir=DIR            用户可执行文件 [EPREFIX/bin]
            --sbindir=DIR           系统管理员可执行文件 [EPREFIX/sbin]
            --libexecdir=DIR        程序可执行文件 [EPREFIX/libexec]
            --sysconfdir=DIR        只读的单一机器数据目录DIR ,用于存放php.ini之类的服务器配置文件 [PREFIX/etc]
            --sharedstatedir=DIR    可改写的体系无关数据目录DIR [PREFIX/com]
            --localstatedir=DIR     可改写的单一机器数据目录DIR [PREFIX/var]
            --runstatedir=DIR       可改写的每个进程数据目录DIR [LOCALSTATEDIR/run]
            --libdir=DIR            对象代码库目录DIR [EPREFIX/lib]
            --includedir=DIR        PHP的C头文件目录DIR [PREFIX/include]
            --oldincludedir=DIR     非gcc的C头文件目录DIR [/usr/include]
            --datarootdir=DIR       PHP服务器只读的体系无关数据根目录DIR [PREFIX/share]
            --datadir=DIR           PHP服务器只读的体系无关数据目录DIR [DATAROOTDIR]
            --infodir=DIR           信息文档目录DIR [DATAROOTDIR/info]
            --localedir=DIR         地区相关数据DIR [DATAROOTDIR/locale]
            --mandir=DIR            手册文档目录DIR [DATAROOTDIR/man]
            --docdir=DIR            文档根目录 [DATAROOTDIR/doc/PACKAGE]
            --htmldir=DIR           html文档目录DIR [DOCDIR]
            --dvidir=DIR            dvi文档目录DIR [DOCDIR]
            --pdfdir=DIR            pdf文档目录DIR [DOCDIR]
            --psdir=DIR             ps文档目录DIR [DOCDIR]
        交叉编译选项:
            --build=BUILD           指定编译工具所在系统的系统类型BUILD [guessed]
            --host=HOST             指定HTTP服务器将要进行交叉编译时运行的目标系统类型HOST [BUILD]
            --target=TARGET         指定交叉编译所产生的目标代码类型 [HOST]
        可选功能和包:
            --disable-option-checking   忽略无法识别的--enable/--with选项
            --disable-FEATURE           关闭特征选项
            --enable-FEATURE[=ARG]      启用特征选项
            --with-PACKAGE[=ARG]        使用封装
            --without-PACKAGE           禁用封装
            --with-libdir=NAME          库文件查找路径设置…/XXX/lib/
            --disable-rpath             禁用传递其他运行库搜索路径
            --enable-re2c-cgoto         启用-g标志到re2c以使用计算的goto-gcc扩展
            --disable-gcc-global-regs   是否启用GCC全局寄存器变量
        SAPI模块:
            --with-apxs2=FILE           编译共享的apache2.0处理程序的模块。参数是apache apxs工具的路径文件
            --disable-cli               编译禁用CLI的PHP版本。这个参数需要–without-pear (this forces –without-pear)
            --enable-embed=TYPE         实验性:建立内嵌的SAPI库。参数为shared、static。
            --enable-fpm                启用执行FPM的SAPI可执行文件
            --with-fpm-user=USER        设置php-fpm运行用户,此处最好和Nginx服务用户统一 [nobody]
            --with-fpm-group=GRP        设置php-fpm运行用户组,对于系统用户,此通常应设置为与fpm用户名匹配,此处最好和Nginx服务用户统一 [nobody]
            --with-fpm-systemd          激活SystemD集成
            --with-fpm-acl              使用POSIX访问控制列表
            --with-litespeed            将PHP构建为LiteSpeed模块
            --enable-phpdbg             构建PHPDBG
            --enable-phpdbg-webhelper   构建phpdbg web sapi支持
            --enable-phpdbg-debug       在调试模式下生成phpdbg
            --disable-cgi               禁用生成PHP的CGI版本
            --with-valgrind=DIR         启用Valgrind支持
        普通参数设置:
            --enable-gcov                       请用GCOV代码覆盖率(仅用于开发人员使用)
            --enable-debug                      带调试符号的编译
            --with-layout=TYPE                  显示安装文件的布局。参数为PHP或GNU [PHP]
            --with-config-file-path=PATH        php.ini文件位置 [PREFIX/lib]
            --with-config-file-scan-dir=PATH    扫描配置文件的路径
            --enable-sigchild                   使用PHP自带的SIGCHLD处理器
            --enable-libgcc                     启用libgcc的精确链接
            --disable-short-tags                默认禁用短形式的<?作为php代码的开始标记
            --enable-dmalloc                    启用dmalloc(dmalloc是Linux C编程侦测记忆体溢出工具)
            --disable-ipv6                      禁用IPv6支持
            --enable-dtrace                     启用dtrace支持
            --enable-fd-setsize                 设置描述符集的大小
        扩展参数:
            语法: --with-EXTENSION=[shared[,PATH]]   (注:并非所有模块都可编译成共享方式)
            下面的例子显示了把foobar编译成共享方式,并指定安装路径为/usr/local/foobar/
            例如: –with-foobar=shared,/usr/local/foobar/
        
            --disable-all                               关闭默认为启用的所有扩展功能
            --disable-libxml                            禁用LIBXML支持
            --with-libxml-dir=DIR                       LIBXML安装目录
            --enable-ftp                                启用ftp支持
            --with-openssl=DIR                          启用openssl支持
            --with-openssl-dir=DIR                      指定openssl的安装目录
            --with-kerberos=DIR                         OpenSSL的支持:包括Kerberos
            --with-system-ciphers                       openssl:使用系统默认密码列表而不是硬编码值
            --with-pcre-regex=DIR                       启用pcre(perl兼容正则表达式)支持
            --with-pcre-jit                             启用PCRE JIT功能(仅捆绑)
            --with-pcre-valgrind=DIR                    启用PCRE Valgrind支持。仅限开发人员!
            --without-sqlite3=DIR                       不包括sqlite3支持。dir是sqlite3安装目录的前缀。
            --with-zlib=DIR                             启用zlib支持
            --with-zlib-dir=<DIR>                       定义zlib安装所在的目录
            --enable-bcmath                             启用bcmatch
            --with-bz2=DIR                              包含BZip2支持
            --enable-calendar                           启用日历转换支持
            --disable-ctype                             禁用ctype功能
            --with-curl=DIR                             启用cURL支持
            --enable-dba                                构架捆绑模块的DBA。要建立扩展的共享模块使用–enable-dba=shared参数。
            --with-qdbm=DIR                             启用QDBM支持
            --with-gdbm=DIR                             启用GDBM支持
            --with-ndbm=DIR                             启用NDBM支持
            --with-db4=DIR                              启用Berkeley DB4支持
            --with-db3=DIR                              启用Berkeley DB3支持
            --with-db2=DIR                              启用Berkeley DB2支持
            --with-db1=DIR                              启用Berkeley DB1支持
            --with-dbm=DIR                              启用DBM支持
            --with-tcadb=DIR                            启用TCADB支持
            --with-lmdb=DIR                             启用LMDB支持
            --without-cdb=DIR                           启用CDB支持(捆绑方式)
            --disable-inifile                           启用INI支持(捆绑方式)
            --disable-flatfile                          启用QDBM支持(捆绑方式)
            --disable-dom                               禁用DOM支持
            --with-libxml-dir=DIR                       启用libxml2并指定其安装目录
            --with-enchant=DIR                          包括Enchant支持.gnu Aspell 1.1.3版或更高版本。
            --enable-exif                               启用exif(来自图像的元数据)支持
            --disable-fileinfo                          禁用文件信息支持
            --disable-filter                            禁用输入过滤支持
            --with-pcre-dir                             支持及其安装目录    
            --with-gd=DIR                               启用GD支持并指定GD库的安装目录
            --with-webp-dir=DIR                         指定libwebp的安装目录
            --with-jpeg-dir=DIR                         指定libjpeg的安装目录
            --with-png-dir=DIR                          指定libpng的安装目录
            --with-zlib-dir=DIR                         指定libz的安装目录
            --with-xpm-dir=DIR                          指定libXpm的安装目录
            --with-freetype-dir=DIR                     指定FreeType2的安装目录
            --enable-gd-jis-conv                        启用JIS-mapped日语字体支持
            --with-gettext=DIR                          包含GNU gettext支持
            --with-gmp=DIR                              启用GNU MP支持
            --with-mhash=DIR                            启用mhash支持
            --disable-hash                              禁用hash支持
            --without-iconv=DIR                         禁用iconv支持
            --with-imap=DIR                             包含IMAP支持。指定c-client安装目录
            --with-kerberos=DIR                         启用kerberos支持并指定其目录
            --with-imap-ssl=DIR                         启用ssl支持并指定openssl目录
            --with-interbase=DIR                        启用interbase支持并指定其目录
            --enable-intl                               支持国际化
            --with-icu-dir=DIR                          指定可以在哪里找到ICU库和头文件
            --disable-json                              禁用JavaScript对象顺序话支持
            --with-ldap=DIR                             包含LDAP支持
            --with-ldap-sasl=DIR                        包含Cyrus SASL支持
            --enable-mbstring                           启用多字节字符串的支持
            --with-onig=DIR                             mbstring:使用外部Oniguruma。dir是oniguruma安装前缀。如果未设置dir,将使用捆绑的oniguruma
            --disable-mbregex                           禁用多字节正则表达式的支持
            --disable-mbregex-backtrack                 禁用多字节正则表达式回溯检查
            --with-mysqli=FILE                          包含MySQLi支持。参数为mysql_config的位置。如果没有值或mysqlnd作为文件传递,则将使用mysql本机驱动程序
            --enable-embedded-mysqli                    启用embedded支持。注意:不适用于MySQL本机驱动程序!
            --with-mysql-sock=SOCKPATH                  定位mysql的unix 套接字指针。如果未指定,则按默认位置搜索。
            --with-oci8=DIR                             包含Oracle支持。如果使用Oracle客户端安装则使用–with-oci8=instantclient,/path/to/oic /lib
            --with-odbcver=HEX                          强制支持传递的ODBC版本。应为十六进制数,默认值为0x0350。使用特殊值0可防止定义显式ODBCver。
            --with-adabas=DIR                           包含Adabas D支持 [/usr/local]
            --with-sapdb=DIR                            包含SAP DB支持 [/usr/local]
            --with-solid=DIR                            包含Solid支持 [/usr/local/solid]
            --with-ibm-db2=DIR                          包含IBM DB2支持 [/home/db2inst1/sqllib]
            --with-empress=DIR                          包含empress支持
            --with-empress-bcs=DIR                      包含Empress本地访问支持。
            --with-custom-odbc=DIR                      包括用户自定义的ODBC的支持。目录是ODBC安装的主目录。确定定义了CUSTOM_ODBC_LIBS并且在include目录下有 odbc.h的头文件你要在QNX上为Sybase SQL Anywhere定义如下:运行此之前,配置脚本CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc"
            --with-iodbc=DIR                            包含iODBC支持 [/usr/local]
            --with-esoob=DIR                            包含Easysoft OOB支持 [/usr/local/easysoft/oob/client]
            --with-unixODBC=DIR                         包含unixODBC支持 [/usr/local]
            --with-dbmaker=DIR                          包含DBMaker支持
            --disable-opcache                           禁用Zend Opcache支持
            --disable-opcache-file                      禁用基于文件的缓存
            --disable-huge-code-pages                   禁止将PHP代码页复制到大页中
            --enable-pcntl                              启用pcntl支持(仅用于CLI和CGI)
            --disable-pdo                               禁用PHP数据对象支持
            --with-pdo-dblib=DIR                        启用DBLIB-DB支持,目录为FreeTDS主目录。
            --with-pdo-firebird=DIR                     启用Firebird支持 [/opt/firebird]
            --with-pdo-mysql=DIR                        启用PDO:mysql支持
            --with-zlib-dir=DIR                         设置PDO:MySQL的zlib安装目录
            --with-pdo-oci=DIR                          设置PDO:Oracle OCI支持。为Oracle安装客户端SDK使用–with-pdo-oci=instantclient,prefix,version参数
            --with-pdo-odbc=flavour,dir                 启用“flavour”ODBC支持。在dir目录的include和lib目录下查找。“flavour”参数值可以是ibm-db2, unixODBC, generic。如果dir省略,则使用默认值。如果你试图通过generic使用一个如若不支持的驱动程序。为generic ODBC提供的语法格式如下:–with-pdo-odbc=generic,dir,libname,ldflags,cflags。作为共享的编译 后的扩展文件的名一般为pdo_odbc.so
            --with-pdo-pgsql=DIR                        启用PDO:PostgreSQL支持
            --without-pdo-sqlite=DIR                    启用SQLite 3支持
            --with-pgsql=DIR                            启用PostgreSQL支持并指定其软件根目录或者pg_config的路径
            --disable-phar                              禁用phar支持
            --disable-posix                             禁用posix-like功能
            --with-pspell=DIR                           包含PSPELL支持GNU
            --with-libedit=DIR                          包含libedit readline更换(仅用于CLI和CGI)
            --with-readline=DIR                         (CLI/CGI only)包含readline支持(仅用于CLI和CGI)
            --with-recode=DIR                           包含recode支持
            --disable-session                           禁用session支持
            --with-mm=DIR                               为session存储启用mm支持。
            --enable-shmop                              启用shmop支持
            --disable-simplexml                         禁用simpleXML支持
            --with-libxml-dir=DIR                       启用simpleXML:libXML2支持。
            --with-snmp=DIR                             包含SNMP支持。
            --with-openssl-dir=DIR                      包含SNMP:openssl支持
            --enable-soap                               启用SOAP支持
            --with-libxml-dir=DIR                       启用SOAP:LIBXML2支持
            --enable-sockets                            启用sockets支持
            --with-sodium=DIR                           包含sodium支持
            --with-password-argon2=DIR                  在密码中包含argon2支持。dir是argon2共享库路径
            --enable-sysvmsg                            启用sysvmsg支持
            --enable-sysvsem                            启用系统V信号支持
            --enable-sysvshm                            启用系统V共享内存支持
            --with-tidy=DIR                             包含tidy支持
            --disable-tokenizer                         禁用tokenizer支持
            --enable-wddx                               启用WDDX支持
            --with-libxml-dir=DIR                       包含WDDX:libxml2支持
            --with-libexpat-dir=DIR                     为XMLRPC-EPI启用libexpat(不推荐)
            --disable-xml                               禁用XML支持
            --with-libxml-dir=DIR                       启用libxml2支持
            --with-libexpat-dir=DIR                     启用libexpat支持(不推荐)
            --disable-xmlreader                         禁用XMLreader支持
            --with-libxml-dir=DIR                       启用XMLreader的libxml2支持
            --with-xmlrpc=DIR                           包含XMLRPC-EPI支持
            --with-libxml-dir=DIR                       启用XMLRPC-EPI:libxml2支持
            --with-libexpat-dir=DIR                     启用XMLRPC-EPI:libexpat支持(不推荐)
            --with-iconv-dir=DIR                        启用XMLRPC-EPI:iconv支持
            --disable-xmlwriter                         禁用XMLWriter支持
            --with-libxml-dir=DIR                       启用XMLReader:libxml2支持
            --with-xsl=DIR                              启用XSL支持
            --enable-zend-test                          启动zend-test扩展
            --enable-zip                                包含zip读写支持
            --with-zlib-dir=DIR                         启用zip:zlib支持
            --with-pcre-dir                             ZIP: pcre安装目录
            --with-libzip=DIR                           ZIP: 使用libzip
            --enable-mysqlnd                            显式启用mysqlnd,将在其他扩展需要时隐式完成
            --disable-mysqlnd-compression-support       禁用对mysqlnd中mysql压缩协议的支持
            --with-zlib-dir=DIR                         mysqlnd:设置libz安装前缀的路径
        PEAR相关选项:
            --with-pear=DIR         安装PEAR目录 [PREFIX/lib/php]
            --without-pear        不安装PEAR
        ZEND相关选项:
            --enable-maintainer-zts         启用线程安全-仅限代码维护者!!
            --disable-inline-optimization   如果构建zend_execute.lo失败,请尝试此开关
            --disable-zend-signals          是否启用Zend信号处理
        Thread Safe Resource Manager线程安全资源管理器相关配置:
            --with-tsrm-pth=pth-config      使用GNU PTH
            --with-tsrm-st                  使用SGI的状态线程
            --with-tsrm-pthreads            使用POSIX线程(默认)
        Libtool相关配置:
            --enable-shared=PKGS            编译共享模块
            --enable-static=PKGS            编译静态模块
            --enable-fast-install=PKGS      启用快速安装优化方式
            --with-gnu-ld                   假设C编译器使用GNU ld
            --disable-libtool-lock          避免锁死(可能破坏并联的编译)
            --with-pic                      尝试仅使用PIC或non-PIC对象
            --with-tags=TAGS                包括额外的配置
        一些有影响的环境变量:
            CC          C编译器命令
            CFLAGS      C编译器标志
            LDFLAGS     链接器标志
            LIBS        要传递给链接器的库
            CPPFLAGS    C/C++预处理器标志
            CPP         C预处理器
            YACC        另一个编译的编译为使用
            YFLAGS      默认情况下将传递给$yacc的参数列表。此脚本将默认yFlags为空字符串,以避免一些make应用程序给出的默认值为“-d”。
            CXX         C++编译器命令
            CXXFLAGS    C++编译器标志
            CXXCPP      C++预处理器
    
  • 相关阅读:
    day 011总结
    day 010 总结
    day 10作业
    day 009总结
    day 008总结
    wireshark 解密tls消息
    js基础 数组slice
    js基础 数组splice
    js基础 Array.from
    js基础 Array.of
  • 原文地址:https://www.cnblogs.com/phonecom/p/10269950.html
Copyright © 2011-2022 走看看