How to Upgrade PHP on Bitnami WordPress in AWS Lightsail

I have an old Bitnami WordPress server on the Amazon Lightsail server. Bitnami does not support upgrading the PHP version. The recommended solution is to create a new bitnami WordPress instance and migrate the website to the new lightsail instance. Since this server had many websites configured, I do not want to migrate the websites to the new bitnami WordPress instance. Here is how I upgraded the PHP version on bitnami Debian 10 server from PHP 7.3 to PHP 8.1

What we do is install the PHP version provided by the OS. Then update php.ini to use the non-defult MySQL socket location used by the Bitnami server. Create a php-fpm pool that runs as the “daemon” user. After that, we update the Apache configuration to use the new PHP version.

First, enable PHP repository

apt -y install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

Install PHP 8.1

apt update
apt install -y  php8.1-bcmath php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-imap php8.1-intl php8.1-mbstring php8.1-mysql php8.1-readline php8.1-soap php8.1-xml php8.1-xmlrpc php8.1-zip php8.1-fpm

If you need a different version of PHP, change 8.1 with whatever version you need.

Edit php.ini file

vi /etc/php/8.1/fpm/php.ini

Find

[Pdo_mysql]
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
pdo_mysql.default_socket=

Replace with

[Pdo_mysql]
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
pdo_mysql.default_socket= "/opt/bitnami/mysql/tmp/mysql.sock"

Find

mysqli.default_socket =

Replace with

mysqli.default_socket = "/opt/bitnami/mysql/tmp/mysql.sock"

Create a php-fpm pool file

vi /etc/php/8.1/fpm/pool.d/wp.conf

add

[wordpress]
listen=/opt/bitnami/php/var/run/ww2.sock
user=daemon
group=daemon
listen.owner=daemon
listen.group=daemon
pm=dynamic
pm.max_children=5
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3
pm.max_requests=5000

This pool will listen on unix socket “/opt/bitnami/php/var/run/ww2.sock”.

Enable and restart PHP 8.1 fpm service

systemctl enable php8.1-fpm
systemctl restart php8.1-fpm

Edit file

vi /opt/bitnami/apache2/conf/bitnami/php-fpm.conf

For some installations, file is located at

vi /opt/bitnami/apache2/conf/php-fpm-apache.conf

Inside you file find


  
  
  
    
      SetHandler "proxy:fcgi://www-fpm"
    
  

Find

www.sock

Replace With

www2.sock

Restart Apache

sudo /opt/bitnami/ctlscript.sh restart apache

See Bitnami

Need help with Linux Server or WordPress? We can help!

Leave a Reply

Your email address will not be published. Required fields are marked *