So have installed PHP8.1 from ondrej PPA
1 | sudo add-apt-repository ppa:ondrej /php |
Install PHP8.1
1 2 3 4 5 6 7 8 9 10 11 | sudo apt install php8.1-fpm sudo apt install php8.1 sudo apt install php8.1-intl sudo apt install php8.1-mbstring sudo apt install php8.1-mysql sudo apt install php8.1-xml sudo apt install php8.1-zip sudo apt install php8.1-opcache sudo apt install php8.1-curl sudo apt install php8.1-mailparse sudo apt install php8.1-imagick |
1 2 3 | # or for greater brevity with bash shell sudo apt install php8.1-{fpm,intl,mbstring,curl,mailparse,imagick,zip,xml,mysql} |
The first thing I found is that /etc/php/8.1/fpm/php-fpm.conf
is missing when I try to start the php8.1-fpm.service
1 2 3 4 5 6 | # copy it from 8.0 and edit cp /etc/php/8.0/fpm/php-fpm.conf /etc/php/8.1/fpm/php-fpm.conf # find and replace all instances of 8.0 with 8.1 then systemctl enable php8.1-fpm.service systemctl start php8.1-fpm.service |
The next challenge is when trying to enable the needed extensions. I get these errors
1 2 3 | phpenmod - v 8.1 intl WARNING: Module intl ini file doesn't exist under /etc/php/8 .1 /mods-available WARNING: Module intl ini file doesn't exist under /etc/php/8 .1 /mods-available |
The fix is copying the ini
files to the mods-available directory to make them available to php8.1-fpm
Find and enable the PHP extensions you need
WordPress docs has a list of recommended extensions => https://make.wordpress.org/hosting/handbook/server-environment/
1 2 3 4 5 6 7 8 9 10 11 12 13 | cp /usr/share/php8.1-mysql/mysql/*.ini /etc/php/8.1/mods-available phpenmod -v 8.1 mysqli phpenmod -v 8.1 mysqlnd phpenmod -v 8.1 pdo_mysql cp /usr/share/php8.1-opcache/opcache/opcache.ini /etc/php/8.1/mods-available/ phpenmod -v 8.1 opcache cp /usr/share/php8.1-common/common/* /etc/php/8.1/mods-available/ phpenmod -v 8.1 ctype # repeat for all your needed modules & restart systemctl restart php8.1-fpm.service |
To find out what is missing browse your WordPress site and trigger errors. You might see error screens like the following:

The emails sent to your site admin email address will contain hints as to what's missing. The following says I'm missing the ctype
extension

To see the PHP extensions you have enabled
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ls -1 /etc/php/8 .1 /fpm/conf .d/ 10-mysqlnd.ini 10-opcache.ini 20-ctype.ini 20-curl.ini 20-gd.ini 20-imagick.ini 20-intl.ini 20-mbstring.ini 20-mysqli.ini 20-pdo_mysql.ini 20-soap.ini 20-tidy.ini 20-zip.ini |
0 Comments