centos编译安装php7.3详解(附完整命令)

一直以来开发都是使用的集成环境,对于环境的安装没有细致了解,近期细致安装记录下

关于各环境下使用PHP集成开发环境

博主一致以来都是使用的集成 PHP开发环境

从一开始的windows下的phpstudy

到服务器端使用的宝塔面板

以及mac下使用的mdserver

对于个人而言,以上都是在使用过程中相对于其他集成工具比较好用的

现因趋于docker 的使用,为更好的理解并集成合适自己的环境,于是乎现在着重熟悉下环境的搭建

CentOS 编译安装PHP7.3

首先本次使用的CentOS版本为:

CentOS Linux release 7.7.1908 (Core)

编译安装PHP基本步骤

  • 下载一个php的安装包,并进行解压缩
  • 下载并安装php所需依赖
  • 设置编译前配置
  • 开始编译与安装
  • 配置相关参数文件等

实操

1.下载一个php的安装包,并进行解压缩

在用户目录下新建临时文件夹'php',并进入(本示例目录为/root/php)。用于临时存放安装包

mkdir php && cd php

安装wget下载工具

yum -y install wget

下载php-7.3.12安装包, 更多版本访问->https://www.php.net/downloads.php

wget https://www.php.net/distributions/php-7.3.12.tar.gz

解压缩,并进入解压后的目录

tar zxvf php-7.3.12.tar.gz && cd php-7.3.12

2.下载并安装php所需依赖

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel

3.设置编译前配置

现计划将php7.3安装在 '/usr/local/php73'目录下,指定php的配置目录为'/usr/local/php73/etc'

则简单配置命令为:在解压出的文件夹下执行命令:./configure --prefix=/usr/local/php73 --with-config-file-path=/usr/local/php73/etc

但由于后期开发常常会用到PHP自带的扩展,所以在编译之前也要加载进去,最终的配置命令如下

./configure \
    --prefix=/usr/local/php73 \
    --exec-prefix=/usr/local/php73 \
    --bindir=/usr/local/php73/bin \
    --sbindir=/usr/local/php73/sbin \
    --includedir=/usr/local/php73/include \
    --libdir=/usr/local/php73/lib/php \
    --mandir=/usr/local/php73/php/man \
    --with-config-file-path=/usr/local/php73/etc \
    --with-mysql-sock=/tmp/mysql.sock \
    --with-mhash \
    --with-openssl \
    --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-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 \
    --with-fpm-user=nginx \
    --with-fpm-group=nginx \
    --without-gdbm \
    --enable-fast-install \
    --disable-fileinfo

在上一步中解压出的文件夹'php-7.3.12'下,执行上命令 './configure......'

configure

命令执行后发现错误:

Please reinstall the libzip distribution

Please reinstall the libzip distribution

重新安装libzip,那就重新安装呗

# wget https://libzip.org/download/libzip-1.5.2.tar.gz
# tar -zxf libzip-1.5.2.tar.gz
# cd libzip-1.5.2
# mkdir build 
# cd build 
# cmake ..    (#注:后面有两个小数点,若没有cmake命令,如下安装cmake)
# make -j4
# make test
# make install

安装cmake

wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz
tar -zxvf cmake-3.13.2.tar.gz
cd cmake-3.13.2 && ./bootstrap && make && make install

安装完成cmake即可返回安装libzip

安装完成libzip后即可返回第三步一开始重新运行命令 './configure......',注意运行的目录

完成后如下信息:

编译PHP7.3

4.开始编译与安装

执行如下命令

make && make install

等待安装完成后,即可在目录'/usr/local/php73'中看到安装的文件

5.配置相关参数文件等

5.1添加php配置文件

在之前的压缩包解压出的目录中执行如下,将默认配置文件复制到安装好的配置目录

cp php.ini-production /usr/local/php73/etc/php.ini

编写刚才复制的配置文件'php.ini',修改php扩展目录位置

首先进入'/usr/local/php73/lib/php/extensions'库扩展目录查看其下的具体扩展路径,如图为:'/usr/local/php73/lib/php/extensions/no-debug-non-zts-20180731'

找到扩展目录路径

将扩展目录路径写入php.ini配置文件,使用vi命令编辑'vi /usr/local/php73/etc/php.ini'

找到'extension_dir'属性并修改为扩展目录路径,并保存

到此可测试PHP7.3是否安装成功

如下执行安装目录下的php命令文件,查看版本扩展等

PHP7.3编译安装成功

5.2 添加php到环境变量

//创建并打开文件php.sh
vi /etc/profile.d/php.sh
export PATH=$PATH:/usr/local/php73/bin/:/usr/local/php73/sbin/
//使用source立即生效刚刚添加的php环境变量
source /etc/profile.d/php.sh
添加到环境变量

5.3修改服务器所在时区

vi /usr/local/php73/etc/php.ini
//找到并修改:date.timezone = PRC
//PRC就是英文People's Republic of China, 中华人民共和国

安装配置成功后,即可删除第一步新建的临时的文件夹

rm -rf /root/php

编译安装php73完整命令

以下完整命令包含:

  • 创建零时目录'~/phpdir'
  • 安装wget、cmake、libzip为编译做准备
  • 安装gcc 、gcc、-c++、 autoconf等PHP依赖
  • 安装php73并配置
  • 清理目录'~/phpdir'、缓存
cd ~ && rm -rf ~/phpdir \
&& mkdir -p ~/phpdir/cmake && cd ~/phpdir/cmake \
&& yum -y install wget \
&& yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel \
&& wget -c https://shareb.oss-cn-beijing.aliyuncs.com/mirror/php/o/cmake-3.13.2.tar.gz \
&& tar -zxvf cmake-3.13.2.tar.gz && cd cmake-3.13.2 && ./bootstrap && make && make install \
&& mkdir -p ~/phpdir/libzip && cd ~/phpdir/libzip \
&& wget https://shareb.oss-cn-beijing.aliyuncs.com/mirror/php/o/libzip-1.5.2.tar.gz \
&& tar -zxf libzip-1.5.2.tar.gz && cd libzip-1.5.2 && mkdir build && cd build && cmake .. && make -j4 && make test && make install \
&& cd ~/phpdir \
&& wget -c https://shareb.oss-cn-beijing.aliyuncs.com/mirror/php/php-7.3.12.tar.gz -O php73.tar.gz && mkdir -p ~/phpdir/php73 \
&& tar zxvf php73.tar.gz -C php73 --strip-components=1 \
&& cd ~/phpdir/php73 \
&& 	echo '/usr/local/lib64
	/usr/local/lib
	/usr/lib
	/usr/lib64'>>/etc/ld.so.conf \
&& ldconfig -v \
&& ./configure \
    --prefix=/usr/local/php73 \
    --exec-prefix=/usr/local/php73 \
    --bindir=/usr/local/php73/bin \
    --sbindir=/usr/local/php73/sbin \
    --includedir=/usr/local/php73/include \
    --libdir=/usr/local/php73/lib/php \
    --mandir=/usr/local/php73/php/man \
    --with-config-file-path=/usr/local/php73/etc \
    --with-mysql-sock=/tmp/mysql.sock \
    --with-mhash \
    --with-openssl \
    --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-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 \
    --with-fpm-user=nginx \
    --with-fpm-group=nginx \
    --without-gdbm \
    --enable-fast-install \
    --disable-fileinfo \
&& make && make install \
&& cp php.ini-production /usr/local/php73/etc/php.ini \
&& sed -i 's#;extension_dir = "./"#extension_dir = "/usr/local/php73/lib/php/extensions/no-debug-non-zts-20180731"#g' /usr/local/php73/etc/php.ini \
&& sed -i 's#;date.timezone =#date.timezone = PRC #g' /usr/local/php73/etc/php.ini \
&& echo export PATH=$PATH:/usr/local/php73/bin/:/usr/local/php73/sbin/ >> /etc/profile.d/php.sh \
&& source /etc/profile.d/php.sh \
&& cd ~ && rm -rf ~/phpdir \
&& yum clean all

结束语

至此,centos编译安装php7.3详解已结束,回顾主要问题是安装过程中部分扩展或命令不存在,按提示解决即可

下一节编译安装PHP扩展

如有错误,请指正

其他

composer安装bootstrap的引用方法

php批量排重、批量查询判断

表白网源码|PHP

admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: