I already added Ondřej Surý PPA repository. So Just install php8.4
|
1 |
~$ sudo apt-get install libapache2-mod-php8.4 |
The apache module and cli for php8.4 is included
|
1 2 3 4 5 6 7 8 |
... he following additional packages will be installed: php8.4-cli php8.4-common php8.4-opcache php8.4-readline php8.4-soap The following NEW packages will be installed: libapache2-mod-php8.4 The following packages will be upgraded: php8.4-cli php8.4-common php8.4-opcache php8.4-readline php8.4-soap ... |
Check it on CLI Terminal
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
~$ sudo update-alternatives --config php There are 8 choices for the alternative php (providing /usr/bin/php). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/bin/php8.4 84 auto mode 1 /usr/bin/php5.6 56 manual mode 2 /usr/bin/php7.2 72 manual mode 3 /usr/bin/php7.4 74 manual mode 4 /usr/bin/php8.0 80 manual mode 5 /usr/bin/php8.1 81 manual mode * 6 /usr/bin/php8.2 82 manual mode 7 /usr/bin/php8.3 83 manual mode 8 /usr/bin/php8.4 84 manual mode Press <enter> to keep the current choice[*], or type selection number: 8 update-alternatives: using /usr/bin/php8.4 to provide /usr/bin/php (php) in manual mode ~$ php -v PHP 8.4.24 (cli) (built: Jul 30 2026 15:23:13) (NTS) Copyright (c) The PHP Group Built by Ubuntu Zend Engine v4.4.24, Copyright (c) Zend Technologies with Zend OPcache v8.4.24, Copyright (c), by Zend Technologies |
Then install the extensions.
|
1 |
sudo apt install php8.4-{bcmath,xml,fpm,mysql,zip,intl,ldap,gd,bz2,curl,mbstring,pgsql,cgi} |
Install XDebug
|
1 |
sudo apt-get install php8.4-xdebug |
Check
|
1 2 3 4 5 6 7 |
~$ php -v PHP 8.4.24 (cli) (built: Jul 30 2026 15:23:13) (NTS) Copyright (c) The PHP Group Built by Ubuntu Zend Engine v4.4.24, Copyright (c) Zend Technologies with Zend OPcache v8.4.24, Copyright (c), by Zend Technologies with Xdebug v3.5.3, Copyright (c) 2002-2026, by Derick Rethans |
PHP8.4 On Apache2
Disable the old PHP
|
1 |
sudo a2dismod php8.2 |
Enable PHP8.4
|
1 |
sudo a2enmod php8.4 |
Also need to run
|
1 |
sudo a2enmod proxy_fcgi setenvif && sudo a2enconf php8.4-fpm |
Restart Apache server
|
1 |
sudo systemctl restart apache2 |
Check on the browser
|
1 |
http://localhost/phpinfo.php |
Should show like PHP Version 8.4.24
CHANGE THE PHP8.4 SETTING
MODIFY SOME INI FILES IN:
/etc/php/8.4/fpm/php.ini –> PHP-FPM AS MAIN
/etc/php/8.4/apache2/php.ini –>APACHE
/etc/php/8.4/cli/php.ini –> CLI
|
1 2 3 4 5 6 7 8 |
upload_max_filesize = 4000M -> (default 2M) max_file_uploads = 4000 -> (default 20) post_max_size = 4000M -> (default 8M) max_execution_time = 6000 -> (default 30) in second max_input_time = 6000 -> (default 60) in second max_input_vars = 10000 memory_limit = 5120M -> (default 128M) memory_limit = -1 -> (FOR CLI) |
RESTART
|
1 |
sudo systemctl restart apache2 |
CONFIG XDEBUG
|
1 |
sudo gedit /etc/php/8.4/apache2/conf.d/20-xdebug.ini |
SETTING
|
1 2 3 4 5 6 7 8 9 |
zend_extension=xdebug.so xdebug.mode= debug xdebug.start_with_request = yes xdebug.discover_client_host = true xdebug.max_nesting_level=512 xdebug.var_display_max_data = 1024 xdebug.var_display_max_children = 512 xdebug.var_display_max_depth = 6 xdebug.idekey = VSCODE |
FOR PHP FPM
|
1 |
sudo systemctl restart php8.4-fpm |
TO USE PHP8.1 WITHOUT FPM, PLS STOP PHP8.1 FPM
|
1 |
sudo systemctl stop php8.1-fpm |
ALSO DISABLE SOME FPM MODULES (mpm_event)
|
1 |
sudo a2dismod mpm_event proxy_fcgi |
IF NEEDED
|
1 |
sudo a2disconf php8.4-fpm |
THEN ENABLE mpm_prefork
|
1 |
sudo a2enmod mpm_prefork |
RELOAD
|
1 |
sudo systemctl reload apache2 |
NOW IT’D BE RUNNING