安装步骤如下

安装必要的软件

    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++预处理器

CentOS裸机环境下安装php-7.3.1的更多相关文章

  1. Centos 7环境下安装配置Hadoop 3.0 Beta1简记

    前言 由于以前已经写过一篇Centos 7环境下安装配置2.8的随笔,因此这篇写得精简些,只挑选一些重要环节记录一下. 安装环境为:两台主机均为Centos 7.*操作系统,两台机器配置分别为: 主机 ...

  2. Centos 7环境下安装配置MySQL 5.7

    安装步骤为: 1.由于Centos 7版中已经移除MySQL rpm,因此需要到其官方网站上下载rpm,下载完成后,使用以下命令,来安装MySQL的rpm配置. rpm -ivh *****[注释:* ...

  3. centos 7环境下安装jdk

    在此之前已经安装了xshell并能传输文件. 1.下载对应版本的jdk:jdk-8u191-linux-x64.tar.gz 2.上传到centos的目录下 3.解压jdk的gz包,命令: tar - ...

  4. centos,linux环境下安装JDK1.8完整

    进入oracle官网下载安装包,cetos一般选择xx-xx-linux-x64.tar.gz.获取到地址后可以点击下载,也可以使用wget命令下载. 在得到下载好的文件后下面就可以开始安装了.比如我 ...

  5. centos 7环境下安装rabbitmq

    以 前在windows 7下面成功安装过rabbitmq,但是在windows 10下面安装失败,各种问题,各种解决方法都试过,还是不成功,最终放弃治疗. 后来经人指点,在linux下安装rabbit ...

  6. CentOS 7+ 环境下安装MySQL

    在CentOS中默认安装有MariaDB,但是我们需要的是MySQL,安装MySQL可以覆盖MariaDB MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 ...

  7. Centos 7 环境下安装 RabbitMQ 3.6.10

    一.单机安装 在Centos7系统下部署(阿里云服务),使用yum安装 hostnamectl set-hostname rabbit01 #永久修改 1.1安装Erlang,因为RabbitMQ 是 ...

  8. centos 7环境下安装部署zookeeper

    近一直在看zookeeper的知识,有所收获,打算写些一些关于zookeeper的博客,也当做是自己的复习和笔记. 在上一篇 博客中简单地介绍了centos 7 下如何安装jdk,这一篇将介绍如何在c ...

  9. 转 CentOS 7 环境下安装Maven

    下载安装文件 wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3 ...

随机推荐

  1. Typora使用说明(记录总结)

    目录 区域元素 YAML FONT Matters 菜单 段落 标题 引注 序列 可选序列 代码块 数学块 表格 脚注 水平线 特征元素 链接 超链接 内链接 相关链 URLs 图片 斜体 加粗 删除 ...

  2. 第六节:SignalR完结篇之依赖注入和分布式部署

    一. SignalR中DI思想的应用 DI,即依赖注入,它是一种不负责创建其自己的依赖项对象的一种模式,通常用来降低代码之间的耦合性,广泛应用于架构设计,是必不可少的一种思想. 下面结合一个需求来说一 ...

  3. CSS盒模型深入理解

    前言 所有文档元素都生成一个矩形框,这称为元素框(element box),它描述了一个元素在文档布局中所占的空间大小.而且,每个框影响着其他元素框的位置和大小 宽高 宽度width被定义为从左内边界 ...

  4. 关于缓存和 Chrome 的“新版刷新”

    在读本文前你要确保读过我的上篇文章<扼杀 304,Cache-Control: immutable>,因为本文是接着上文写的.上文说到,在现代 Web 上,“条件请求/304 响应”绝大多 ...

  5. File Upload XSS

    A file upload is a great opportunity to XSS an application. User restricted area with an uploaded pr ...

  6. Linux中执行C++程序

    参考:https://blog.csdn.net/qq_31125955/article/details/79343498 https://blog.csdn.net/weixin_35477207/ ...

  7. MySql存储过程及函数

    存储过程和函数类似于Java中的方法. ⒈存储过程 一组预先编译好的sql语句的集合,理解成批处理语句. 好处: ①提高代码的重用性 ②简化操作 ③减少了编译次数并且减少了和数据库服务器的连接次数,提 ...

  8. 【原创】大数据基础之Oozie(3)Oozie从4.3升级到5.0

    官方文档如下: http://oozie.apache.org/docs/5.0.0/AG_OozieUpgrade.html 这里写的比较简单,大概过程如下:1 下载5.0代码并编译:2 解压5.0 ...

  9. Nginx location 正则篇

    location 前缀 没有前缀               匹配以指定模式开头的location =                          精准匹配,不是以指定模式开头 ~       ...

  10. Java——super 与 this 关键字

    super 与 this 关键字 super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类. this关键字:指向自己的引用. package ti; public ...