Centos 編譯安裝 PHP7.4.7

邢闖洋發表於2021-02-24

一、安裝相關依賴

yum -y install gcc gcc-c++

yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel freetype-devel openldap-devel openldap openldap-devel oniguruma-devel libxslt-devel

二、下載壓縮包並解壓

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

tar -zxvf php-7.4.7.tar.gz

cd php-7.4.7

三、生成配置

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-fpm-user=www \
--with-fpm-group=www \
--with-curl \
--with-MySQL=/usr/local/mysql \
--with-freetype-dir=/usr/local/freetype \
--enable-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir=/usr/local/libpng \
--with-jpeg-dir=/usr/local/libjpeg \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-zlib-dir=/usr/local/zlib \
--with-bz2 \
--with-mhash \
--with-zip \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-xml \
--enable-zip \
--enable-fpm

上面執行沒問題的話就會出現這樣

Centos 編譯安裝 PHP7.4.7

四、make && make install

接下來執行 make

make && make install

這一步當顯示如下時則表示安裝成功了

Centos 編譯安裝 PHP7.4.7

五、簡化PHP執行命令

編輯 .bash_profile 檔案

vim ~/.bash_profile

然後插入如下圖中的程式碼片段

Centos 編譯安裝 PHP7.4.7

接著重新整理這個檔案

source ~/.bash_profile

這個時候就可以直接用 php 命令了

Centos 編譯安裝 PHP7.4.7

六、將 PHP.ini 檔案放到安裝目錄

cp /root/php7.4.7/php.ini-production /usr/local/php/etc/php.ini

七、複製 php-fpm 配置檔案

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

八、複製 php-fpm 下的 www.conf 配置檔案

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

九、用個例子測試PHP是否可用

在任意目錄新建一個 test.php,插入如下內容

<?php
echo("測試PHP是否可用, 
現在的時間是:".date("Y-m-d H:i:s"));

執行該檔案

php test.php

顯示如下表示可用

Centos 編譯安裝 PHP7.4.7

QA:以下為安裝過程中記錄下的問題及解決辦法

1、執行 ./configure 報錯 No package ‘libzip’ found

Centos 編譯安裝 PHP7.4.7
這一步使用 yum install libzip-devel 不管用,因為版本低,我們直接原始碼安裝

#解除安裝老版本的libzip
yum remove libzip
#下載安裝libzip-1.2.0
wget 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

安裝完成後,檢視是否存在/usr/local/lib/pkgconfig目錄,如果存在,執行如下命令來設定PKG_CONFIG_PATH:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

2、make 這一步時報錯如下

Centos 編譯安裝 PHP7.4.7
這個報錯具體原因未找到,因為我在自己的機器上是沒有這個報錯的,但是公司的機器上有,有想過重灌 sqlite,但是不知道這個 sqlite 在這臺機器上其他地方有沒有用到,怕影響其他,所以換了一種思路,就是在編譯 PHP 的時候不編譯 sqlite,修改後的 ./configure 編譯引數如下

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-fpm-user=www \
--with-fpm-group=www \
--with-curl \
--with-freetype-dir \
--enable-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pear \
--with-png-dir=/user/local/libpng \
--with-jpeg-dir=/user/local/libjpeg \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-zlib-dir=/user/local/zlib \
--with-bz2 \
--with-mhash \
--with-zip \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-xml \
--enable-zip \
--enable-fpm \
--without-sqlite3 \
--without-pdo-sqlite

參考文章

去除php7編譯安裝的模組sqlite3
解決 yum install oniguruma oniguruma-devel 安裝不生效問題
centos8安裝php7.4.10時的各類錯誤
centos7 編譯安裝php7.4.7
在CentOS7.6裡編譯安裝PHP7.4(最新版),很詳細
關於編譯安裝php的php.ini找不到
PHP設定預設時區
linux中編譯安裝php7 用systemctl啟動
Linux 安裝並啟用 PHP-FPM
php-fpm 啟動引數及重要配置詳解

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章