---
myst:
html_meta:
description: Install PHP scripting language with Apache2 and MySQL on Ubuntu Server for web development and dynamic HTML applications.
---
(install-php)=
# How to install and configure PHP
[PHP](https://www.php.net/) is a general-purpose scripting language well-suited for Web development since PHP scripts can be embedded into HTML. This guide explains how to install and configure PHP in an Ubuntu System with Apache2 and MySQL.
## Prerequisites
Before installing PHP you should install Apache (or a preferred web server) and a database service such as MySQL.
* To install the Apache package, please refer to {ref}`our Apache guide `.
* To install and configure a MySQL database service, refer to {ref}`our MySQL guide `.
## Install PHP
PHP is available on Ubuntu Linux, but unlike Python (which comes pre-installed), must be manually installed.
To install PHP -- and the Apache PHP module -- you can enter the following command into a terminal prompt:
```bash
sudo apt install php libapache2-mod-php
```
## Install optional packages
The following packages are optional, and can be installed if you need them for your setup.
* **PHP-CLI**
You can run PHP scripts via the Command Line Interface (CLI). To do this, you must first install the `php-cli` package. You can install it by running the following command:
```bash
sudo apt install php-cli
```
* **PHP-CGI**
You can also execute PHP scripts without installing the Apache PHP module. To accomplish this, you should install the `php-cgi` package via this command:
```bash
sudo apt install php-cgi
```
* **PHP-MySQL**
To use MySQL with PHP you should install the `php-mysql` package, like so:
```bash
sudo apt install php-mysql
```
* **PHP-PgSQL**
Similarly, to use PostgreSQL with PHP you should install the `php-pgsql` package:
```bash
sudo apt install php-pgsql
```
## Configure PHP
If you have installed the `libapache2-mod-php` or `php-cgi` packages, you can run PHP scripts from your web browser. If you have installed the `php-cli` package, you can run PHP scripts at a terminal prompt.
By default, when `libapache2-mod-php` is installed, the Apache2 web server is configured to run PHP scripts using this module. First, verify if the files `/etc/apache2/mods-enabled/php8.*.conf` and `/etc/apache2/mods-enabled/php8.*.load` exist. If they do not exist, you can enable the module using the `a2enmod` command.
Once you have installed the PHP-related packages and enabled the Apache PHP module, you should restart the Apache2 web server to run PHP scripts, by running the following command:
```bash
sudo systemctl restart apache2.service
```
## Test your setup
To verify your installation, you can run the following PHP `phpinfo` script:
```php
```
You can save the content in a file -- `phpinfo.php` for example -- and place it under the {term}`DocumentRoot` directory of the Apache2 web server. Pointing your browser to `http://hostname/phpinfo.php` will display the values of various PHP configuration parameters.
## Further reading
- For more in depth information see [the php.net documentation](https://www.php.net/docs.php).
- There are a plethora of books on PHP 7 and PHP 8. A good book from O'Reilly is "Learning PHP", which includes an exploration of PHP 7's enhancements to the language.
- Also, see the [Apache MySQL PHP Ubuntu Wiki](https://help.ubuntu.com/community/ApacheMySQLPHP) page for more information.