Install MongoDB on Ubuntu with Nginx and PHP

This post shows students and new users steps to install MongoDB on Ubuntu Linux with Nginx and PHP support. MongoDB, a free open source, NoSQL, High-performance, schema-free document-oriented database can be used to create powerful websites and applications.

For developers using Nginx and PHP with MongoDB database in the backend, MongoDB PHP drivers will be required to enable PHP support. Without the drivers, PHP based applications and website using MongoDB will be able to interact with the database.

MongoDB packages are included in Ubuntu default repositories, however, the versions in Ubuntu repositories aren’t the latest. In order to install the latest, you will have to install MongoDB package repository on Ubuntu Linux, and this tutorial will show you how.

Also, for students and new users learning Linux, the easiest place to start learning is on Ubuntu Linux. Ubuntu is the modern, open source Linux operating system for desktop, servers and other devices.

When you’re ready to get MongoDB setup on Ubuntu with Nginx and PHP support, continue with the steps below:

How to install Nginx on Ubuntu Linux

To install Nginx HTTP on Ubuntu server, 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 start up with the server boots.

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

To test Nginx setup, open your browser and browse to the server hostname or IP address and you should see Nginx default test page as shown below.

nginx default home page test

How to install MongoDB on Ubuntu Linux

We have written a great tutorial on how to install and configure MongoDB on Ubuntu Linux. To read that post, click on the link below:

How to install MongoDB on Ubuntu Linux

After reading the post above and installing MongoDB on Ubuntu, continue below with the setup.

How to install PHP on Ubuntu Linux

PHP 7.4 isn’t available on 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 7.4

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

Then update and upgrade to PHP 7.4

sudo apt update

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

sudo apt install php7.4-fpm php7.4-common php7.4-mongodb php-pear php7.4-dev

After installing PHP 7.4-FPM, run the commands below to open PHP default config file for Nginx…

How to install MongoDB PHP drivers

MongoDB PHP drivers provide exceptionally thin glue between MongoDB and PHP. run the commands below to install it.

sudo pecl install mongodb

After that, run the commands below to enable the drivers

sudo bash
sudo echo "" >> /etc/php/7.4/fpm/php.ini
sudo echo "" >> /etc/php/7.4/cli/php.ini

Configure Nginx to enable PHP support

If you have a custom site file, then edit it to enable Nginx PHP support. Or run the commands below to open Nginx’s default site configuration file.

sudo nano /etc/nginx/sites-available/default

Then uncomment or remove the # symbol on the highlighted lines below to enable Nginx PHP support.

Also add the highlighted index.php to the index line.

server {
    listen 80;
    listen [::]:80;
    root /var/www/html;
    index  index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;       

     # pass PHP scripts to FastCGI server
        location ~ \.php$ {
               include snippets/fastcgi-php.conf;
        #       # With php-fpm (or other unix sockets):
               fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass;

Restart Nginx and PHP-FPM services

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

To verify the MongoDB PHP driver is installed and enable, continue below.

Create a phpinfo.php file in Nginx root directory by running the commands below

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

Then type the content below and save the file.

<?php phpinfo( ); ?>

Save the file. then browse to your server hostname followed by /phpinfo.php


You should see PHP default test page…

MongoDB Ubuntu

That’s it!

This post showed you how to use MongoDB with Nginx and PHP support. If you find any error above or have something to add, please use the comment form below.