Setup Lighttpd Web Server with PHP Supports on Ubuntu Servers

If you’re going to be developing any PHP application, you’re mostly going to need PHP server scripts installed. PHP is an open source server scripting language use for creating dynamic, powerful web applications and websites.

PHP is a widely-used, free, and efficient alternative to competitors such as Microsoft’s ASP.

This brief tutorial is going to show students and new users how to setup Lighttpd web server environment with PHP support. Most popular content management systems like WordPress, Joomla, Drupal use PHP.

PHP is a big deal!

When you’re ready to setup Lighttpd environment with PHP support, follow the steps below:

Step 1: Install Lighttpd Web Server

sudo apt install lighttpd

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

sudo systemctl stop lighttpd.service
sudo systemctl start lighttpd.service
sudo systemctl enable lighttpd.service

Step 2: Install PHP FastCGI  and Related Modules

After installing Lighttpd above, run the commands below to install PHP-FastCGI and related PHP modules. PHP-FastCGI is a version for Lighttpd web servers while PHP is Apache2. Nginx is PHP-FPM. There are many PHP modules that perform different functions. however, there are some important ones that are always needed when developing PHP based websites.

sudo apt-get install php-cgi php-mcrypt php-cli php-mysql php-gd php-imagick php-recode php-tidy php-xmlrpc

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

After installing PHP-FastCGI, you can enable PHP-FastCGI modules by running the commands below

sudo sudo lighttpd-enable-mod fastcgi 
sudo lighttpd-enable-mod fastcgi-php

If  the commands above fail, install the package below.

sudo apt install libterm-readline-gnu-perl

Then run the commands to enable the modules again, this time they should work.

Step 3: Configure Lighttpd PHP-FastCGI Settings

Now that Lighttpd and PHP0-FastCGI are installed, you may want to configure Lighttpd to use PHP server scripting properly. The default Lighttpd PHP-FastCGI configuration file is located at /etc/php/7.x/cgi/php.ini

The x in the location will be 0 or 1 depending on the php version installed.

Open PHP Lighttpd configuration file by running the commands below

sudo nano /etc/php/7.1/cgi/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

Next, open the Lighttpd site configuration file. by default it’s stored at /etc/lighttpd/lighttpd.conf

Use the main configuration file to setup advanced server global settings.

Lighttpd PHP-FastCGI configuration file is stored at /etc/lighttpd/conf-available/15-fastcgi-php.conf

Run the commands below to open Lighttpd PHP-FastCGI default site configuration file

sudo nano /etc/lighttpd/conf-available/15-fastcgi-php.conf

Then confirm that PHP-FastCGI is configured as shown in the highlighted portion below.

# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz 
# 

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
        ((
                "bin-path" => "/usr/bin/php-cgi",
                "socket" => "/var/run/lighttpd/php.socket",
                "max-procs" => 1,
                "bin-environment" => (
                        "PHP_FCGI_CHILDREN" => "4",
                        "PHP_FCGI_MAX_REQUESTS" => "10000"
                ),
                "bin-copy-environment" => (
                        "PATH", "SHELL", "USER"
                ),
                "broken-scriptfilename" => "enable"
        ))
)

Restart Lighttpd services

sudo systemctl restart lighttpd.service

Step 4: Test PHP-CGI Setup

At this point, Lighttpd and PHP-FastCGI should be installed and ready. to test your Lighttpd PHP settings, create a blank file with the line below:

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!

lighttpd php ubuntu

Enjoy!

Congratulations! You’ve successfully installed and configured Lighttpd and PHP on Ubuntu servers

You may also like the post below: