PHP 7.3 Released — Here’s How to Install / Upgrade on Ubuntu 16.04 | 18.04 | 18.10

The PHP development team has announced the release of PHP 7.3.0, which is the third update of the PHP 7 series and should be compatible with some PHP apps and scripts, including the latest WordPress….

PHP / PHP-FPM is a widely used, free, and efficient alternative to competitors such as Microsoft’s ASP…. Most popular content management systems like WordPress, Joomla, Drupal use PHP or PHP-FPM to function….

If you’re going to be developing any PHP application, you’re mostly going to need PHP or PHP-FPM and related modules installed…. PHP / PHP-FPM  is an open source server scripting language use for creating dynamic web applications and websites….

This brief tutorial shows students and new users how to install or upgrade to PHP 7.3 /  PHP 7.3-FPM on Ubuntu 16.04 | 18.04 LTS servers with Apache2 and Nginx support..

For more about this release, please check its homepage


PHP is used with Apache2 HTTP server
PHP-FPM is used with Nginx HTTP server


Here are some of the changes and bugs fixes mentioned in this release:

  • Improved PHP GC.
  • Redesigned the old ext_skel program written in PHP, run: ‘php ext_skel.php’ for all options. This means there are no dependencies, thus making it work on Windows out of the box.
  • Removed support for BeOS.
  • Add PHP_VERSION to phpinfo() <title/>.
  • Add net_get_interfaces().
  • Implemented flexible heredoc and nowdoc syntax, per RFC https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes.
  • Added support for references in list() and array destructuring, per RFC https://wiki.php.net/rfc/list_reference_assignment.
  • Improved effectiveness of ZEND_SECURE_ZERO for NetBSD and systems without native similar feature.
  • Added syslog.facility and syslog.ident INI entries for customizing syslog logging.
  • Memory leak in zend_register_functions() in ZTS mode
  • support append mode in temp/memory streams
  • Uncaught exceptions not being formatted properly when error_log set to “syslog”
  • Segfault when calling is_callable on parent
  • broken links and unused config items in distributed ini files
  • Composed class has fatal error with duplicate, equal const properties

When you’re ready to set up PHP with Apache2 or PHP-FPM with Nginx, follow the steps below:

Step 1: Setup PHP with Apache2 HTTP Server

To use PHP with Apache2 HTTP server, you should first install Apache2… To do that, run the commands below:

sudo apt update
sudo apt install apache2

After installing Apache2, the commands below can be used to stop, start and enable Apache2 service to always startup when the server boots up.

sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

Step 2: Install PHP 7.3 with Apache2 Support

PHP 7.3 may not be available in Ubuntu default repositories… in order to install it, you will have to get it from third-party repositories.

Run the commands below to add the below third-party repository to upgrade to PHP / PHP-FPM 7.3

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Then update and upgrade to PHP 7.3

sudo apt update

Next, run the commands below to install PHP 7.3 and related modules.

There are many PHP modules that perform different functions…. however, these are some popular ones that may be needed when developing PHP based websites…

sudo apt-get install php7.3 libapache2-mod-php7.3 php7.3-cli php7.3-mysql php7.3-gd php7.3-imagick php7.3-recode php7.3-tidy php7.3-xmlrpc

The line above will allow PHP to function with many popular PHP based websites and applications.

Step 3: Configure PHP 7.3 for Apache2

Now that Apache2 and PHP are installed, you may want to configure Apache2 to use PHP properly. The default Apache2 PHP configuration file is at /etc/php/7.3/apache2/php.ini

Open PHP Apache2 configuration file by running the commands below

sudo nano /etc/php/7.3/apache2/php.ini

Then edit the file to suit your environments. Some important lines to consider:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 64M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Next, lookup Apache2 dir.conf file and confirm the line below:

<IfModule mod_dir.c>
     DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

If you don’t see the index.php definition on the line, please add it and save the file.

Restart Apache2 and PHP services

sudo systemctl restart apache2.service

Step 1: Setup PHP 7.3-FPM with Nginx HTTP server

To use PHP 7.3-FPM with Nginx HTTP server, you should first install Nginx… To do that, run the commands below:

sudo apt update
sudo apt install nginx

After installing Nginx, the commands below can be used to stop, start and enable Nginx service to always startup when the server boots up.

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Step 2: Install PHP 7.3-FPM for Nginx

If you’re running Nginx then the commands below should get PHP-FPM and related modules installed….

There are many PHP-FPM modules that perform different functions…. however, these are some popular ones that may be needed when developing PHP based websites…

sudo apt-get install php7.3-fpm php7.3-cli php7.3-mysql php7.3-gd php7.3-imagick php7.3-recode php7.3-tidy php7.3-xmlrpc

The line above will allow PHP to function with many popular PHP based websites and applications.

Step 3: Configure PHP 7.3-FPM for Nginx

Now that Nginx and PHP 7.3-FPM are installed, you may want to configure Nginx to use PHP 7.3-FPM properly. The default Nginx PHP-FPM configuration file is at /etc/php/7.3/fpm/php.ini

Open PHP Apache2 configuration file by running the commands below

sudo nano /etc/php/7.3/fpm/php.ini

Then edit the file to suit your environments. Some important lines to consider:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 64M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Save the file and exit….

Restart Nginx and PHP-FPM

sudo systemctl restart nginx.service
sudo systemctl restart php7.3-fpm

At this point Apache2 or Nginx with PHP or PHP-FPM should be installed and ready to use.. you can test  PHP / PHP-FPM settings by creating a blank file…..

sudo nano /var/www/html/phpinfo.php

Then add the line in the file and save.

<?php phpinfo( ); ?>

Save the file and open your browser and browse to the server name or IP address followed by /phpinfo.php

You should see something similar to the image below… if you do, then you’re all good!

PHP 7.3 Ubuntu install

Enjoy!

Congratulations! You’ve successfully installed and configured Apache2 / Nginx with PHP / PHP-FPM support on Ubuntu servers

You may also like the post below:

Install Craft CMS v3.1 on Ubuntu 16.04 / 18.04 / 18.10 with Apache2, MariaDB and PHP 7.2

2 Replies to “PHP 7.3 Released — Here’s How to Install / Upgrade on Ubuntu 16.04 | 18.04 | 18.10

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: