一、安裝相關依賴
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
上面執行沒問題的話就會出現這樣
四、make && make install
接下來執行 make
make && make install
這一步當顯示如下時則表示安裝成功了
五、簡化PHP執行命令
編輯 .bash_profile 檔案
vim ~/.bash_profile
然後插入如下圖中的程式碼片段
接著重新整理這個檔案
source ~/.bash_profile
這個時候就可以直接用 php 命令了
六、將 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
顯示如下表示可用
QA:以下為安裝過程中記錄下的問題及解決辦法
1、執行 ./configure 報錯 No package ‘libzip’ found
這一步使用 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 這一步時報錯如下
這個報錯具體原因未找到,因為我在自己的機器上是沒有這個報錯的,但是公司的機器上有,有想過重灌 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
3、修改 php-fpm.conf 或 www.conf 配置檔案時,兩個檔案內的配置項要唯一,不能同一個配置項在兩個檔案內都存在,否則會報錯起衝突
4. 編譯PHP報錯:configure: error: Please reinstall the BZip2 distribution
# 原連結:https://blog.csdn.net/qq_35202206/article/details/81126025
yum -y install bzip2-devel
參考文章
去除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 協議》,轉載必須註明作者和本文連結