How to Install PHP 8.3 on Ubuntu 22.04
Tags: php, ubuntu, linux, tutorial
Published: 2023-11-23 05:30:25

PHP is a popular server scripting language known for creating dynamic and interactive web pages. Getting up and running with your language of choice is the first step in learning to program.

[PHP](https://www.php.net/) is a general-purpose scripting language suitable for web development. Most websites out there are programmed using PHP language because it is:

-   **Fast** – PHP is fast because it runs on its own memory space. Also, PHP has a Zend engine that parses PHP code and turns it into opcodes which are then interpreted.
-   **Flexible** – PHP is flexible because it allows for almost all databases. MySQL is the de-facto database to connect to because it is open source.
-   Free and open-source
-   **PHP is forgiving** – Why do we say PHP is forgiving? It is forgiving meaning its learning is not so hard and therefore suitable for almost all programmers starting out.
-   PHP supports major communication protocols i.e. LDAP, IMAP, and POP3.

## What's New Features in PHP 8.3

-   Typed Class Constants
-   Added  `json_validate`  function
-   Dynamic class constant and Enum member fetch support
-   `gc_status()`  returns additional GC information
-   `Random`  extension: New  `\Random\Randomizer::getBytesFromString`  method
-   `Random`  extension: New  `\Random\Randomizer::getFloat()`  and  `nextFloat()`  methods
-   Fallback value support for PHP INI Environment Variable syntax
-   PHP CLI Lint (`php -l`) supports linting multiple files at once
-   `class_alias()`  supports aliasing built-in PHP classes
-   New  `stream_context_set_options`  function

## Syntax/Functionality Changes in PHP 8.3

-   `unserialize()`: Upgrade  `E_NOTICE`  errors to  `E_WARNING`
-   `highlight_file`  and  `highlight_string`  output HTML changes
-   Granular  `DateTime`  Exceptions
-   Class constant type declarations in some PHP extension classes
-   Built-in CLI Server  `$_SERVER['SERVER_SOFTWARE']`  value changed for RFC3875 compliance

Explore the official PHP 8.3 release notes for an in-depth look at the latest features, enhancements, and changes. Visit the PHP 8.3 release page on php.net to gain a comprehensive understanding of the updates, bug fixes, and optimizations introduced in this version. Stay informed and make the most out of PHP 8.3 for your web development projects. Check out the release notes here:  [PHP 8.3 Release Notes](https://www.php.net/releases/8.3/en.php?ref=techvblogs.com).

This tutorial will guide you through installing PHP 8.3 on Ubuntu and setting up a local programming environment via the command line.

# Install PHP 8.3 on Ubuntu 22.04

### 1. Run system updates

The first thing to do in a new system is to update our repositories in order to make them up to date. Run upgrade command also.

```bash
sudo apt update && apt upgrade -y
```

### 2. Add Ondrej Sury PPA repository

To run PHP 8.3 on Ubuntu 22.04, we need to add Ondrej Sury PPA into our system. This is the maintainer of the PHP repository at the moment. This PPA is not currently checked so installing from it will not be guaranteed 100% results.

To add this PPA use the following command on our terminal.

```bash
sudo add-apt-repository ppa:ondrej/php
```

After installation is complete we need to update the repositories again for the changes to take effect.

```bash
sudo apt update
```

**Read Also:** [How to Install PHP 8.2 on Ubuntu 22.04](https://techvblogs.com/blog/install-php-8-2-ubuntu-22-04)

### 3. Install PHP 8.3 on Ubuntu 22.04

We should now be able to install PHP 8.3 on Ubuntu 22.04 Linux machine. The commands to run are as shared below:

```bash
sudo apt install php8.3 -y
```

Check for the currently active version of PHP with the following command:

```bash
php --version
```

### 4. Install PHP 8.3 Extensions

Besides PHP itself, you will likely want to install some additional PHP modules. You can use this command to install additional modules, replacing `PACKAGE_NAME` with the package you wish to install:

```
sudo apt-get install php8.3-PACKAGE_NAME
```

You can also install more than one package at a time. Here are a few suggestions of the most common modules you will most likely want to install:

```bash
sudo apt-get install -y php8.3-cli php8.3-common php8.3-fpm php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath
```

This command will install the following modules:

-   `php8.3-cli` - command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks
-   `php8.3-common` - documentation, examples, and common modules for PHP
-   `php8.3-mysql` - for working with MySQL databases
-   `php8.3-zip` - for working with compressed files
-   `php8.3-gd` - for working with images
-   `php8.3-mbstring` - used to manage non-ASCII strings
-   `php8.3-curl` - lets you make HTTP requests in PHP
-   `php8.3-xml` - for working with XML data
-   `php8.3-bcmath` - used when working with precision floats

PHP configurations related to Apache are stored in `/etc/php/8.3/apache2/php.ini`. You can list all loaded PHP modules with the following command:

```bash
php -m
```

You have installed PHP and verified the version you have running. You also installed any required PHP modules and were able to list the modules that you have loaded.

You could start using PHP right now, but you will likely want to use various libraries to build PHP applications quickly. Before you test your PHP environment, first set up a dependency manager for your projects.

**Thank you** for reading this blog.

**Read Also:** [Update Composer In Ubuntu](https://techvblogs.com/blog/update-composer-in-ubuntu)

If you want to manage your VPS / VM Server without touching the command line go and [Checkout this link](https://app.serveravatar.com/login/?affiliate_code=techvblogs&key=dCy9DLa6). [ServerAvatar allows](https://app.serveravatar.com/login/?affiliate_code=techvblogs&key=dCy9DLa6) you to quickly set up WordPress or Custom PHP websites on VPS / VM in a **matter of minutes.** You can host multiple websites on a single VPS / VM, configure SSL certificates, and monitor the health of your server **without ever touching the command line interface**.