centos7.9 源码编译安装php
准备
-
查看当前linux版本
命令
lsb_release -a
-
创建安装软件的目录,方便统一管理,在根目录下创建路径
/server
用来存放所有软件。命令
mkdir /server
-
选择下载php的版本,这里以7.3.13为例。下载地址:php版本
命令:
cd /server #切换到软件安装目录 wget https://www.php.net/distributions/php-7.3.13.tar.gz #下载到当前目录 tar -zxvf php-7.3.13.tar.gz #解压到当前位置 rm -rf nginx-1.18.0.tar.gz #删除压缩包
安装
-
执行
configure
,生成配置命令:
cd php-7.3.13/ #进入php的目录 ./configure \ --prefix=/server/php \ --with-config-file-path=/server/php/etc \ --with-mhash \ --with-openssl \ --with-mysqli \ --with-mysqli=mysqlnd \ --with-pdo-mysql=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-pcntl \ --enable-calendar \ --enable-exif \ --enable-sockets \ --with-xmlrpc \ --with-libxml-dir \ --enable-soap \ --with-gettext \ --enable-session \ --with-curl \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-bz2 \ --enable-opcache \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --enable-fast-install
编译一般都会缺少各种依赖而报错,解决依赖
-
configure: error: libxml2 not found. Please check your libxml2 installation.
解决办法:
yum install -y libxml2-devel
-
configure: error: Please reinstall the BZip2 distribution
解决办法:
yum install -y bzip2-devel
-
configure: error: cURL version 7.15.5 or later is required to compile php with cURL support
解决办法:
yum install -y curl-devel
-
configure: error: jpeglib.h not found.
解决办法:
yum install -y libjpeg-devel
-
configure: error: png.h not found.
解决办法:
yum install -y libpng-devel
-
configure: error: freetype-config not found.
解决办法:
yum install -y freetype-devel
-
configure: error: Please reinstall the libzip distribution
解决办法:
wget https://libzip.org/download/libzip-1.2.0.tar.gz #下载libzip tar -zxvf libzip-1.2.0.tar.gz #解压到当前目录 rm -rf libzip-1.2.0.tar.gz #删除压缩包 cd libzip-1.2.0/ #进去libzip目录 ./configure --bindir=/usr/sbin/ \ --sbindir=/usr/sbin/ \ --libexecdir=/usr/libexec \ --sysconfdir=/etc/ \ --localstatedir=/var \ --libdir=/usr/lib64/ \ --includedir=/usr/include/ \ --datarootdir=/usr/share \ --infodir=/usr/share/info \ --localedir=/usr/share/locale \ --mandir=/usr/share/man/ \ --docdir=/usr/share/doc/libzip-1.2.0 #生成配置 make && make install #编译安装
结果:
出现如上显示,则代表配置成功
-
-
编译源码
命令:
make #在当前路径下执行make命令进行编译
结果:
出现如上显示,则代表编译成功
-
编译安装
命令:
make install #在当前路径下执行编译安装
结果:
出现如上显示,则代表编译成功
-
配置PHP
-
复制php.ini:
cp -a php.ini-production /server/php/etc/php.ini #复制php.ini到etc目录下
-
复制php-fpm.conf
cd /server/php/etc/ #跳转到etc目录下 cp -a php-fpm.conf.default ./php-fpm.conf #复制php-fpm配置文件
-
复制www.conf
cd /server/php/etc/php-fpm.d #跳转到php-fpm.d目录下 cp -a www.conf.default ./www.conf #复制www.conf
-
配置php为环境变量
export PATH=$PATH:/server/php/bin
-
-
测试
命令:
php-v
结果:
安装完成