WordPress網站如何升級PHP

最近一段時間,我的WordPress後臺總提示有新版本的WordPress 5.4.1可用,但是它要求PHP 5.6.20或更高,而我目前的版本是PHP 5.5.7,所以決定升級PHP版本。
在這裏插入圖片描述
但自己對PHP瞭解不多,先在網上找了一圈文章,比較詳細的大都是單純的PHP升級流程,和WordPress相關的卻零零散散,親身填坑後發現它們區別很大,最後折騰了半天時間,總算升級成功,特此記錄下流程。

安裝前準備

我的WordPress使用的是阿里雲一鍵安裝包,PHP和Apache緊密相關,

  • PHP目錄:/alidata/server/php
  • Apache目錄:/alidata/server/httpd
  • Apache配置文件目錄:/alidata/server/httpd/conf

首先,cd ~進入工作目錄,lsb_release -a 查看系統版本,yum -y update 升級系統,php -v 查看php版本。

編譯PHP源碼

目前最新的PHP穩定版本是7.3.18,我採用的是源碼編譯方式(嘗試過7.3安裝包,但安裝後WordPress不認,依然提示我的PHP版本太低)。

下載源碼到工作目錄,解壓,進入PHP目錄。

wget http://cn2.php.net/get/php-7.3.18.tar.gz/from/this/mirror
tar -zxvf php-7.3.18.tar.gz
cd php-7.3.18

安裝依賴包

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

編譯PHP

./configure  --prefix=/alidata/server/php-7.3.18 --with-apxs2=/usr/bin/apxs --with-openssl --with-config-file-path=/alidata/server/php-7.3.18/etc --with-mysqli --with-pdo-mysql --with-gd --with-iconv=/usr/local/libiconv --with-zlib --enable-zip --enable-inline-optimization --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 --with-pcre-regex --with-png-dir --enable-fileinfo

這一步很關鍵,其中。

  • --prefix指定編譯後的PHP路徑,是/alidata/server/php-7.3.18
  • --with-apxs2指定要生成Apache加載的libphp7.so,如果提示apxs2未安裝,需要yum install httpd-devel解決,同時確認自己的apxs路徑,可以用which apxs來查找,此處我的參數是--with-apxs2=/usr/bin/apxs

安裝PHP

make && make install

這步執行時間較長,如果報錯,根據提示做相應處理。
我碰到以下兩個錯誤。

1 找不到 libzip

實際是因爲系統原有libzip太舊,按如下步驟解決。

cd ~
wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make && make install

2 fatal error: zipconf.h: No such file

解決方法

cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h

編譯完成後的配置

按前面配置,編譯完成後的輸出在/alidata/server/php-7.3.5。然後刪除舊的PHP軟鏈接,指向新版本的PHP。

cd /alidata/server
rm -fr php
ln -s /alidata/server/php-7.3.5 /alidata/server/php

配置Apache

生成的libphp7.so存放在PHP源碼目錄下,需要手動複製到Apache目錄下。

cp ~/php-7.3.18/libs/libphp7.so  /alidata/server/httpd/modules/libphp7.so

然後打開Apache配置文件

vim /alidata/server/httpd/conf/httpd.conf

註釋舊的php5,使加載新的php7模塊,保存。

#LoadModule php5_module        modules/libphp5.so
LoadModule php7_module        modules/libphp7.so

重啓Apache

service httpd restart

或者重啓服務器也行。

更新WordPress

升級到PHP7.3.18版本後,就可以讓WordPress自動更新了,成功!

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章