6

How to Upgrade PHP on WordPress Step by Step

 1 year ago
source link: https://www.pontikis.net/blog/how-to-upgrade-php-on-wordpress
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

How to Upgrade PHP on WordPress Step by Step

You are currently viewing How to Upgrade PHP on WordPress Step by Step

Upgrade PHP on WordPress is a common task when you run a WordPress server. Some essential plugins (for example RankMath SEO) may not run with the current Debian PHP version.

In this step-by-step tutorial, we will upgrade PHP 7.3 to PHP 7.4 on a Debian Buster WordPress server running Apache and PHP as an Apache module (the most common configuration).

Run the following commands as root or using sudo.

Current state:

php -v
PHP 7.3.31-1~deb10u2 (cli) (built: Dec 15 2022 09:39:10) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.31, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.31-1~deb10u2, Copyright (c) 1999-2018, by Zend Technologies
update-alternatives --config php
There is only one alternative in link group php (providing /usr/bin/php): /usr/bin/php7.3
Nothing to configure.
phpinfo 7.3 Debian
phpinfo 7.3 Debian

STEP1 – Backup your site

Back up your database with mysqldump and the document root with tar. Put these files in a safe place (usually using scp).

As an alternative, you may use WP Migrate Lite to export your database.

STEP2 – Add the SURY repository

SURY repository offers many PHP versions.

You can add it to your system using the official guidelines for Debian:

apt-get update
apt-get -y install apt-transport-https lsb-release ca-certificates curl
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt-get update

Remark: on Ubuntu, you may use

add-apt-repository -y ppa:ondrej/php

STEP3 – Setup PHP 7.4

apt-get install php7.4
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following additional packages will be installed:
libapache2-mod-php7.4 libpcre2-8-0 php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
Suggested packages:
php-pear
The following NEW packages will be installed:
libapache2-mod-php7.4 php7.4 php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
The following packages will be upgraded:
libpcre2-8-0
1 upgraded, 7 newly installed, 0 to remove and 37 not upgraded.
Need to get 3,991 kB of archives.
After this operation, 17.6 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Current state:

php -v
PHP 7.4.33 (cli) (built: Jan 13 2023 10:38:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
update-alternatives --config php
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.4   74        auto mode
1            /usr/bin/php7.3   73        manual mode
2            /usr/bin/php7.4   74        manual mode
Press <enter> to keep the current choice[*], or type selection number:

STEP4 – Setup PHP 7.4 extensions

These may vary depending on your WordPress configuration. However, the most common PHP extensions on a WordPress server are:

apt-get install php7.4-mysql
apt-get install php7.4-mbstring
apt-get install php7.4-memcached
apt-get install php7.4-gd
apt-get install php7.4-curl
apt-get install php7.4-zip
apt-get install php7.4-xml
apt-get install php7.4-imagick
apt-get install php7.4-bcmath
apt-get install php7.4-opcache
apt-get install php7.4-apcu

Find a list of Extensions suggested by WordPress here.

STEP5 – Add custom configuration (if any)

In my case:

cp /etc/php/7.3/apache2/conf.d/99_error_log.ini /etc/php/7.4/apache2/conf.d/99_error_log.ini
cp /etc/php/7.3/apache2/conf.d/99_security.ini /etc/php/7.4/apache2/conf.d/99_security.ini

STEP6 – Apply the new PHP 7.4 version to Apache

a2dismod php7.3
a2enmod php7.4
systemctl restart apache2.service

At this time, the changes are visible in phpinfo:

phpinfo 7.4 Sury
phpinfo 7.4 Sury

STEP7 – Switch PHP version

In case you need to change the configuration:

UPGRADE PHP 7.3 to PHP 7.4

systemctl stop apache2.service
a2dismod php7.3
a2enmod php7.4
update-alternatives --config php
update-alternatives --config phar
update-alternatives --config phar.phar
systemctl start apache2.service

DOWNGRADE PHP 7.4 to PHP 7.3

systemctl stop apache2.service
a2dismod php7.4
a2enmod php7.3
update-alternatives --config php
update-alternatives --config phar
update-alternatives --config phar.phar
systemctl start apache2.service

Entrepreneur | Full-stack developer | Founder of MediSign Ltd. I have over 15 years of professional experience designing and developing web applications. I am also very experienced in managing (web) projects.

Your comments are welcome!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK