CentOS7.6編譯安裝PHP 7.3.8


安裝步驟

PHP官網下載鏈接:https://www.php.net/downloads.php

1. 使用wget命令下載源碼安裝包

wget https://www.php.net/distributions/php-7.3.8.tar.gz --no-check-certificate

【說明】如果報SSL Certification錯誤信息的話,就加上 --no-check-certificate選項,一般不需要添加。

2. 解壓.tar.gz文件

tar -xzvf php-7.3.8.tar.gz

3. 進入php-7.3.8目錄下,執行./configure,即配置和構建PHP

  •  查看configure的用法以及配置選項: ./configure -h 或者 --help
  • php常用配置及其說明
--prefix=/usr/local/php7 # 配置安裝目錄
--with-config-file-path=/usr/local/php7 # 配置文件 php.ini 的路徑
--enable-sockets # 開啟 socket 
--enable-fpm # 啟用 fpm 擴展
--enable-cli # 啟用 命令行模式 (從 php 4.3.0 之后這個模塊默認開啟所以可以不用再加此命令)
--enable-mbstring # 啟用 mbstring 庫
--enable-pcntl # 啟用 pcntl (僅 CLI / CGI)
--enable-soap # 啟用 soap 
--enable-opcache # 開啟 opcache 緩存
--disable-fileinfo # 禁用 fileinfo (由於 5.3+ 之后已經不再持續維護了,但默認是開啟的,所以還是禁止了吧)(1G以下內存服務器直接關了吧)
--disable-rpath  #禁用在搜索路徑中傳遞其他運行庫。
--with-mysqli # 啟用 mysqli 擴展
--with-pdo-mysql # 啟用 pdo 擴展
--with-iconv-dir # 啟用 XMLRPC-EPI 字符編碼轉換 擴展
--with-openssl # 啟用 openssl 擴展 (需要 openssl openssl-devel)
--with-fpm-user=www #設定 fpm 所屬的用戶 
--with-fpm-group=www #設定 fpm 所屬的組別
--with-curl # 啟用 curl 擴展
--with-mhash # 開啟 mhash 基於離散數學原理的不可逆向的php加密方式擴展庫
# GD
--with-gd # 啟用 GD 圖片操作 擴展
--with-jpeg-dir # 開啟對 jpeg 圖片的支持 (需要 libjpeg)
--with-png-dir # 開啟對 png 圖片支持 (需要 libpng)
--with-freetype-dir # 開啟 freetype 
# 壓縮
--enable-zip # 啟用 zip
--with-zlib # 啟用對 zlib 支持 
# xml
--enable-simplexml # 啟用對 simplexml 支持
--with-libxml-dir # 啟用對 libxml2 支持

#一些不常用的配置
--enable-debug # 開啟 debug 模式

我執行configure的命令如下:

./configure --prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7 \
--enable-sockets \
--enable-fpm \
--enable-cli \
--enable-mbstring \
--enable-pcntl \
--enable-soap \
--enable-opcache \
--disable-fileinfo \
--disable-rpath \
--with-mysqli
--with-pdo-mysql \
--with-iconv-dir \
--with-fpm-user=www \
--with-fpm-group=www \
--with-curl=/usr/local/curl \
--with-mhash \
--with-gd=no \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-zip \
--with-zlib \
--enable-simplexml \
--with-libxml-dir \
--with-openssl=/usr/local/openssl

在執行過程中,可能會有報錯。我在執行過程中,遇到了curl和OpenSSL庫的安裝路徑沒有找到,因為不是安裝在/etc/bin和/etc/lib路徑下,所以需要手動設置這兩個庫的安裝路徑:

--with-curl=/usr/local/curl

--with-openssl=/usr/local/openssl

我關閉了GD圖片操作擴展,即:--with-gd=no,如果是:--with-gd ,則表示開啟。

4. 編譯和安裝

make && make install

5. 配置PHP環境變量

(1)vim /etc/profile //需要root權限
(2)在profile文件末尾添加如下內容:
export PATH=$PATH:/usr/local/php7/bin  #這一步可以讓我們全局使用php命令
(3) source /etc/profile                               #讓修改后的profile生效
(4) php -i //查看配置信息

如果第4步的執行成功打印了PHP information的話,表示PHP已經安裝成功了。

## 查看php的用法幫助

$ php -h

## 查看php的版本信息

$ php -v

6. 配置php.ini文件

$ php -i|grep php.ini

Configuration File (php.ini) Path => /usr/local/php7
Loaded Configuration File => /usr/local/php7/php.ini

配置文件在安裝包目錄下: php-7.3.8/
php.ini-development   //開發模式版本
php.ini-production      //生產模式版本
這里,我們選擇生產模式版本復制到指定路徑下

$ cp php.ini-production /usr/local/php7/php.ini

<注意> php.ini文件所在的目錄一定要與php -i里面查出的位置保持一致,不然修改php.ini文件是不會生效的。

7. 安裝composer

> wget https://getcomposer.org/composer.phar
> cp composer.phar /usr/bin/composer
> cd /usr/bin; chmod u+x composer
> composer -v

如果打印出composer的版本信息,即表示composer安裝成功了。

遇到的問題

【問題】error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

1. 下載證書。https://curl.haxx.se/ca/cacert.pem,存放路徑: /home/lbs/cert/cacert.pem(這個路徑自定義)
2. 修改php.ini配置文件
> cd /usr/local/php7/;ls
> vim php.ini
修改openssl.cafile= /home/lbs/cert/cacert.pem

【參考】

centos7 源碼編譯安裝 php  https://www.cnblogs.com/l5gw/p/10992958.html

編譯php7.1.4出現 undefined reference to isfinite    https://blog.csdn.net/letshi/article/details/71079677

Linux環境下composer的安裝  https://blog.csdn.net/lifei15731208550/article/details/91039823

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM