在使用 LNMP 架構搭建網站的過程中,可能會遇到需要升級 PHP 版本的情況,比如現在的網站使用的是 PHP 5.6,但是由于某些原因需要升級到 PHP 7.x 版本,那么該如何來進行升級呢?
首先,需要了解當前系統中 PHP 的安裝方式,如果是使用 yum 安裝的,則可以直接使用 yum 命令來升級 PHP,示例代碼如下:
```
# 查看當前系統中已經安裝的 php 版本
yum list installed | grep php
# 安裝 PHP 7.4
yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install php74
```
如果當前系統中的 PHP 是使用源碼安裝的,那么就需要通過源碼安裝新版本的 PHP,具體步驟如下:
1. 下載新版本的 PHP 源碼包,下載地址可以在 PHP 官網上找到;
2. 解壓源碼包,并且進入到解壓后的目錄,執行以下命令進行編譯安裝:
```
./configure \
--prefix=/usr/local/php \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysqli \
--with-pdo-mysql \
--with-iconv \
--with-zlib \
--with-gettext \
--with-curl \
--with-gd \
--with-openssl \
--with-mhash \
--with-xmlrpc \
--with-jpeg-dir=/usr/lib64 \
--with-png-dir=/usr/lib64 \
--without-pear \
--with-freetype-dir=/usr/include/freetype2/freetype \
--enable-bcmath \
--enable-calendar \
--enable-exif \
--enable-ftp \
--enable-gd-native-ttf \
--enable-inline-optimization \
--enable-mbstring \
--enable-opcache \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-tokenizer \
--enable-wddx \
--enable-zip \
--enable-debug \
--disable-ipv6
make && make install
```
其中,`./configure` 命令中的參數可以根據實際需要進行修改,常用的參數說明如下:
- `--prefix`:指定 PHP 的安裝目錄;
- `--enable-fpm`:開啟 PHP-FPM 支持;
- `--with-fpm-user` 和 `--with-fpm-group`:指定 PHP-FPM 運行的用戶和組;
- `--with-mysqli` 和 `--with-pdo-mysql`:開啟 MySQL 支持;
- `--with-iconv` 和 `--with-zlib`:開啟 iconv 和 zlib 支持;
- `--with-gettext`:開啟 gettext 支持;
- `--with-curl`、`--with-gd`、`--with-openssl`、`--with-mhash`、`--with-xmlrpc` 等參數:開啟相應擴展支持;
- `--without-pear`:不安裝 PEAR 擴展;
- `--with-freetype-dir`、`--with-jpeg-dir`、`--with-png-dir` 等參數:指定相關庫文件的路徑;
- `--enable-bcmath`、`--enable-calendar`、`--enable-opcache` 等參數:開啟相應功能;
- `--enable-debug`:開啟調試模式;
- `--disable-ipv6`:禁用 IPv6 支持。
安裝完成后,需要修改 Nginx 的配置文件,將舊的 PHP-FPM 配置修改為新版本的配置,示例代碼如下:
```
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
# 修改為以下內容
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
```
上述代碼中的 `fastcgi_pass` 參數需要根據 PHP-FPM 的實際配置進行修改,一般來說可以選擇使用本地的 Unix Socket 文件進行通信,可以提高性能和安全性。
最后,需要重啟 Nginx 和 PHP-FPM 服務,使配置生效,示例代碼如下:
```
systemctl restart php-fpm
systemctl restart nginx
```
至此,通過以上步驟,我們就成功升級了 PHP 的版本,可以在新的 PHP 環境下繼續運行網站了。
上一篇lnmp php降級
下一篇lnmp 修改php