Linux(阿里云) php7.3编译安装步骤

本文详细介绍在Linux环境下安装和配置PHP 7.3的步骤。首先准备好Linux或虚拟机环境及所需插件,接着下载、解压、编译PHP,处理编译中可能出现的报错,最后进行安装和配置,确认php -fpm开启并将PHP写入环境变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、准备好自己的linux环境或者虚拟机环境

准备好需要的插件

yum -y install libxml2
yum -y install libxml2-devel
yum -y install openssl
yum -y install openssl-devel
yum -y install curl
yum -y install curl-devel
yum -y install libjpeg
yum -y install libjpeg-devel
yum -y install libpng
yum -y install libpng-devel
yum -y install freetype
yum -y install freetype-devel
yum -y install pcre
yum -y install pcre-devel
yum -y install libxslt
yum -y install libxslt-devel
yum -y install bzip2
yum -y install bzip2-devel

2、进入linux环境中,建立 mkdir www ====>切换成 cd /www

3、 进入主题
 

下载      wget http://cn2.php.net/distributions/php-7.3.3.tar.gz(其他版本自己选择下载)

 解压     tar -xzf php-7.3.3.tar.gz

 改名称  mv php-7.3.3 php73

 切换目录 cd php73

编译php

./configure --prefix=/usr/local/php73 \
--with-config-file-path=/usr/local/php73/etc \
--with-config-file-scan-dir=/usr/local/php7/etc/php.d \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache

执行以上命令

如果编译肯定报错出现 。system libzip must be upgraded to version >= 0.11
请卸载 yum  -y remove libzip-devel

wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -xzf libzip-1.2.0.tar.gz
./configure


make

/================================/

再去执行 ./configure.......

----------------------------end-------------------------

出现以下则表示编译成功

+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+

Thank you for using PHP.

然后执行:make 

中间出现问题自己百度解决,编译是个漫长的过程,这时间内请挂机处理其他事,偶尔切换界面看下是否编译完成

如果出现这问题

====================================================================================

/www/php73/ext/iconv/iconv.c:1135: undefined reference to `libiconv_close'
ext/xmlrpc/libxmlrpc/.libs/encodings.o: In function `convert':
/www/php73/ext/xmlrpc/libxmlrpc/encodings.c:65: undefined reference to `libiconv_open'
/www/php73/ext/xmlrpc/libxmlrpc/encodings.c:72: undefined reference to `libiconv'
/www/php73/ext/xmlrpc/libxmlrpc/encodings.c:88: undefined reference to `libiconv_close'
/www/php73/ext/xmlrpc/libxmlrpc/encodings.c:88: undefined reference to `libiconv_close'
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
不要慌

vim Makefile(最好提前检查这句,没有就加上去,免得重新编译等待)

EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可,

=====================================================================================

最后执行 make install

 

 

 

当前页面复制

 

cp php.ini-development /usr/local/php73/lib/php.ini

cp /usr/local/php73/etc/php-fpm.conf.default /usr/local/php73/etc/php-fpm.conf

ln -s /usr/local/php73/sbin/php-fpm /usr/local/bin

groupadd www

useradd -g www www

cp /usr/local/php73/etc/php-fpm.d/www.conf.default /usr/local/php73/etc/php-fpm.d/www.conf

vi /usr/local/php73/etc/php-fpm.d/www.conf

#修改如下内容

user=www

group=www

 

root@lib]# /usr/local/bin/php-fpm
[root@lib]# yum install net-tools

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package net-tools.x86_64 0:2.0-0.22.20131004git.el7 will be updated
---> Package net-tools.x86_64 0:2.0-0.25.20131004git.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================
 Package                                Arch                                Version                                                  Repository                         Size
=============================================================================================================================================================================
Updating:
 net-tools                              x86_64                              2.0-0.25.20131004git.el7                                 base                              306 k

Transaction Summary
=============================================================================================================================================================================
Upgrade  1 Package

Total download size: 306 k
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
net-tools-2.0-0.25.20131004git.el7.x86_64.rpm                                                                                                         | 306 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : net-tools-2.0-0.25.20131004git.el7.x86_64                                                                                                                 1/2 
  Cleanup    : net-tools-2.0-0.22.20131004git.el7.x86_64                                                                                                                 2/2 
  Verifying  : net-tools-2.0-0.25.20131004git.el7.x86_64                                                                                                                 1/2 
  Verifying  : net-tools-2.0-0.22.20131004git.el7.x86_64                                                                                                                 2/2 

Updated:
  net-tools.x86_64 0:2.0-0.25.20131004git.el7                                                                                                                                

Complete!
[root@ lib]# netstat -tln | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN    

 

[root@ lib]# netstat -tln | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN     
[root@izuf62e8zcq06j5cywzpsuz lib]# ps -aux | grep php
root     31853  0.0  0.6 224960  6448 ?        Ss   15:35   0:00 php-fpm: master process (/usr/local/php73/etc/php-fpm.conf)
www      31854  0.0  0.5 224960  6004 ?        S    15:35   0:00 php-fpm: pool www
www      31855  0.0  0.5 224960  6004 ?        S    15:35   0:00 php-fpm: pool www
root     31935  0.0  0.0 112708   980 pts/0    S+   15:36   0:00 grep --color=auto php

确认开启了php-fpm

[root@localhost ~]# vi /etc/profile export

PATH="$PATH:/usr/local/php73/bin"

[root@localhost ~]# source /etc/profile

[root@ lib]# php -v
PHP 7.3.12 (cli) (built: Jan  9 2021 15:13:53) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.12, Copyright (c) 1998-2018 Zend Technologies

 

出现这种现象,说明你的php已经写进了环境变量,助你ok!!
 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

编译 ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr /include --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --enable-fastcgi --with-fpm-user=www --with-fpm-group=www --without-gdbm --with-mcrypt=/usr/local/apps/libmcrypt --disable-fileinfo 报错:1, **configure: error: system libzip must be upgraded to version >=**0.11。 使用Yum最新版只到0.10,不足以达到要求。 一、先删除libzip yum remove libzip -y SSH执行以上命令,先删除libzip 和 libzip-devel 二、下载安装并手动编译 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 三、(可忽略)另外最新版本请参考官网:https://nih.at/libzip/ 1.5.0的libzip需要cmake wget https://libzip.org/download/libzip-1.5.0.tar.gz tar -zxvf libzip-* cd libzip* mkdir build && cd build && cmake .. && make && make install 报错2: error: off_t undefined; check your library configuration 根据报错信息分析 configure: error: off_t undefined; check your library configuration 未定义的类型 off_t。 off_t 类型是在 头文件 unistd.h中定义的,在32位系统 编程成 long int ,64位系统则编译成 long long int ,这里题主的系统应该是 64位的吧,在进行编译的时候 是默认查找64位的动态链接库,但是默认情况下 centos 的动态链接库配置文件/etc/ld.so.conf里并没有加入搜索路径,这个时候需要将 /usr/local/lib64 /usr/lib64 这些针对64位的库文件路径加进去。 采用下面的方法。 添加搜索路径到配置文件 echo '/usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64'>>/etc/ld.so.conf 然后 更新配置 ldconfig -v 再次执行 编译 成功 执行安装: make && make install 报错: /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or directory 解决: cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h 1 安装成功: 复制配置文件: cp php.ini-production /usr/local/php/lib/php.ini cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf ln -s /usr/local/php/sbin/php-fpm /usr/local/bin 修改配置: cd /usr/local/php/etc/php-fpm.d vim www.conf [www] //池子名 (pool) 设置 ;listen = /tmp/php-fcgi.sock // 监听的地址,可以监听socket ,也可以监听端口 listen = 127.0.0.1:8089 或者这样写,php-fpm 通常在本地使用,php和nginx 通常在一台机器,所以可写127.0.0.1,别的机器 连接,需用本机ip listen.mode = 666 //sock 文件的权限 listen.owner = nobody listen.group = nobody user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024 加入 systemtl 服务: cd /usr/local/src/php-7.3.0beta1/sapi/fpm cp php-fpm.service /usr/lib/systemd/system/ 启动: systemctl start php-fpm systemctl status php-fpm -l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值