1.下载一下php安装包。我这边是下载到本地,然后用sftp传到服务器上的。
put 本地文件完整目录 目标服务器完整目录
2.解压
tar -zxvf php-7.3.30.tar.gz

3.进入文件夹
cd php-7.3.30
4.配置
./configure --prefix=/usr/local/php7.3 --with-config-file-path=/usr/local/php7.3/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-openssl --with-pcre-regex --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-openssl --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-mbstring --enable-mysqlnd --with-pdo-mysql=mysqlnd解析一下,这里就是开启常用的扩展,指定一些配置文件的位置
指定php安装目录
–prefix=/usr/local/php7.3
指定php.ini位置
–with-config-file-path=/usr/local/php7.3/etc
打开curl浏览工具的支持
–with-curl
打开对freetype字体库的支持
–with-freetype-dir
打开gd库的支持
–with-gd
打开gnu 的gettext 支持,编码库用到
–with-gettext
选项指令 --with-iconv-dir 用于 PHP 编译时指定 iconv 在系统里的路径,否则会扫描默认路径。
–with-iconv-dir
打开libxml2库的支持
–with-libxml-dir
object code libraries [EPREFIX/lib]
–with-libdir=lib64
openssl的支持,加密传输https时用到的
–with-openssl
OPENSSL: Include Kerberos support
–with-kerberos
fpm
–enable-fpm
Include Perl Compatible Regular Expressions support.
–with-pcre-regex
PDO: MySQL支持
–with-pdo-mysql
–with-pdo-sqlite
打开pear命令的支持,PHP扩展用的
–with-pear
打开对png图片的支持
–with-png-dir
打开对jpeg图片的支持
–with-jpeg-dir
打开对XMLRPC-EP支持
–with-xmlrpc
打开对XSL的支持. DIR is the libxslt base install directory (libxslt >= 1.1.0 required)
–with-xsl
打开对ZLIB的支持 (requires zlib >= 1.2.0.4)
–with-zlib
打开bc精确数学函数
–enable-bcmath
打开LIBXML支持
–enable-libxml
优化线程
–enable-inline-optimization
–enable-mbregex
多字节,字符串的支持
–enable-mbstring
开启Zend OPcache支持
–enable-opcache
freeTDS需要用到的,可能是链接mssql 才用到
–enable-pcntl
可以处理相关的IPC函数
–enable-shmop
–enable-sysvsem
开启SOAP支持
–enable-soap
打开 sockets 支持
–enable-sockets
–enable-xml
打开对zip的支持
–enable-zip
这个过程中如果有报错的话,就根据报错提示安装一下相关的扩展即可,比如我这边报的是libxm12

解决办法是安装一下即可
重新安装libxml2和libxml2-devel包
yum install libxml2
yum install libxml2-devel -y再比如openssl的报错

yum install openssl-devel
类似的还有一下这么多:
yum install curl-devel
yum -y install libjpeg-devel
yum install libpng
yum install libpng-devel
yum install freetype-devel
常见的问题,我找到一篇文章,大家可以去参考一下
补充几个文章里面没有但是我遇到的
报错信息
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
解决办法
yum install -y libxslt-devel*
报错信息
configure: error: xslt-config not found.
Please reinstall the libxslt >= 1.1.0 distribution
这个特殊的地方就是安装了之后还是会这么提示。根据各种攻略找到了一个成功的解决方案
解决办法:安装低版本libzip
curl -O https://libzip.org/download/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0/
./configure
make && make install
反正最后看到下图就代表配置成功了

5 make && make install
这个阶段基本上不会报错。
但是最近发现可能会提示cc1
cc: fatal error: Killed signal terminated program cc1
对于make编译,如果是阿里云centos主机内存小于2G的,可能会在make编译到45%、63%时报错;如果是腾讯云centos主机内存为1G时,可能会在make编译到64%时报错。
既然是由于虚拟机内存不够引起的,可以尝试添加swap分区解决,如果添加之后依然报错,那就只能升配置了。
添加swap的命令:
获取要增加的2G的SWAP文件块
dd if=/dev/zero of=/swapfile bs=1k count=2048000
创建SWAP文件
mkswap /swapfile
激活SWAP文件
swapon /swapfile
查看SWAP信息是否正确
swapon -s
添加到fstab文件中让系统引导时自动启动
echo “/var/swapfile swap swap defaults 0 0” >> /etc/fstab
删除交换分区:
swapoff /swapfile
rm -rf /swapfile
free -m 即可看见swap信息
6.copy一下配置文件
cp /usr/local/php7.3/etc/php-fpm.conf.default /usr/local/php7.3/etc/php-fpm.conf
cp /usr/local/php7.3/etc/php-fpm.d/www.conf.default /usr/local/php7.3/etc/php-fpm.d/www.conf
cp php.ini-development /usr/local/php7.3/etc/php.ini
这里php.ini文件在安装目录里面~
7.配置一下fpm命令访问
cd php-7.3.30/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm
8.PHP命令访问
PATH=PATH:/usr/local/nginx/sbin
export PATH
PATH=/usr/local/bin:$PATH
export PATH
配置好之后可以直接使用一下命令操作php-fpm了
service php-fpm reload
service php-fpm start
service php-fpm stop
















