How to install Craft CMS with Nginx on Ubuntu 24.04

This article guides the installation of Craft CMS with Nginx support on Ubuntu 24.04. Nginx enhances performance and reliability. Install Nginx, MariaDB, PHP-FPM, and Craft files. Configure Nginx server block, and optionally set up Let’s Encrypt SSL/TLS. An admin account is created through the Craft installation command wizard, and the setup is complete.

This article explains installing Craft CMS with Nginx support on Ubuntu 24.04.

Craft CMS offers a wide array of website creation and management features. Installing Craft CMS with Nginx support on Ubuntu is a reliable way to enhance your web applications’ performance, scalability, and security.

Nginx, known for its high performance and low resource usage, is a trusted choice for serving web content. When combined with Craft CMS, Nginx can significantly improve your website’s speed and reliability.

This setup provides a robust framework for caching, load balancing, and handling of static files, ensuring an efficient and responsive web application.

The steps below walk you through installing Craft CMS with Nginx support on Ubuntu 24.04.

Install Nginx HTTP server on Ubuntu

Craft CMS requires a web server. This post will install and use the Nginx web server to run Craft.

To do that, open the Ubuntu terminal and run the commands below to install the Nginx web server.

sudo apt update
sudo apt install nginx

Once Nginx is installed, the commands below can start, stop, and enable the Nginx web server to start automatically when your server boots up.

sudo systemctl stop nginx
sudo systemctl start nginx
sudo systemctl enable nginx

You can test the Nginx web server by opening your web browser and browsing to the server’s localhost or IP address.

http://localhost

When you see the “Welcome to nginx!” page, it means the Nginx HTTP server is successfully installed.

Additional help on installing Nginx on Ubuntu is in the link below.

How to install Nginx on Ubuntu

Install the MariaDB database server on Ubuntu

The next component required to run Craft is a database server. This post will install and use the MariaDB database server.

To install and use the MariaDB database server, use the instructions below.

Open the Ubuntu terminal and run the commands below to install the MariaDB database server.

sudo apt update
sudo apt install mariadb-server

Once the MariaDB database server is installed, use the commands below to stop, start, and enable the MariaDB server to start automatically when the server boots.

sudo systemctl stop mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb

Run the following commands to validate and test if the MariaDB database server is installed successfully.

sudo mariadb

Once you run the commands above, it will log you onto the MariaDB console and display a message similar to the one below.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.11.2-MariaDB-1 Ubuntu 23.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

The message tells you that the server is installed successfully.

Additional help on installing MariaDB.

Create a Craft database

Upon successfully installing the MariaDB database server, create a blank database on the server specifically for the Craft application.

As part of the setup, we will create a craftdb database and a user account called craftdbuser.

Finally, we’ll grant the craftdbuser full access to the craftdb database.

All the database steps above can be done using the commands below:

But first, log on to the MariaDB database server:

sudo mariadb

Then run the commands below to complete the steps:

CREATE DATABASE craftdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER craftdbuser@localhost IDENTIFIED BY 'type_your_password_here';
GRANT ALL ON craftdb.* TO craftdbuser@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Ensure to replace ‘type_your_password_here ‘with your password.

Install PHP-FPM on Ubuntu Linux

The last component you will need to run Craft is PHP. The Craft application is PHP-based and supports the latest versions of PHP-FPM.

Then, run the commands below to install the latest PHP version.

sudo apt install php-fpm php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip

Additional help on installing PHP-FPM

How to install PHP on Ubuntu Linux

Download Craft files

Let’s begin downloading and configuring the Craft files on Ubuntu Linux.

First, install Composer, Curl, and other dependencies.

sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Next, create a craftcms folder in the /var/www/ directory. Then, make Nginx the owner of the craftcms folder. Finally, change to the craftcms folder and clone Craft files using Composer.

sudo mkdir -p /var/www/craftcms
sudo chown -R www-data:www-data /var/www/craftcms
cd /var/www/craftcms
sudo -u www-data composer create-project craftcms/craft .

Craft installation command wizard will appear. Enter the correct info for the database and account created above. You will also be prompted to create an admin account.

Welcome to Craft CMS!

Are you ready to begin the setup? (yes|no) [no]:yes
Which database driver are you using? (mysql or pgsql) [mysql]
Database server name or IP address: [127.0.0.1]
Database port: [3306]
Database username: [root] craftdbuser
Database password:
Database name: craftdb
Database table prefix:
success!
Saving database credentials to your .env file ... done

Install Craft now? (yes|no) [yes]:

Username: [admin]
Email: [email protected]
Password:
Confirm:
Site name: My Craft CMS
Site URL: craftcms.example.com
Site language: [en-US]

*** installed Craft successfully (time: 3.716s)

Once you have completed all the above steps, continue configuring the Nginx web server below to serve the Craft content.

Run the commands below to create an Nginx server block file for Craft.

sudo nano /etc/nginx/sites-available/craftcms.conf

Then, copy and paste the content block below into the Nginx server block.

server {
listen 80;
listen [::]:80;
root /var/www/craftcms/web;
index index.php;
server_name craftcms.example.com;

location / {
try_files $uri $uri/ @rewrites;
}
location @rewrites {
rewrite ^(/en_gb|de|fr|es)?/(.*)$ $1/index.php?p=$2&$args? last;
}

location / {
try_files $uri $uri/ @rewrites;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Save the file.

Then, run the commands below to enable the virtual host and restart the Nginx server.

sudo ln -s /etc/nginx/sites-available/craftcms.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx.service

Setup Let’s Encrypt SSL/TLS for Craft

You may want to install an SSL/TLS certificate to secure your Craft site. Secure your Craft installation with HTTPS from Let’s Encrypt.

Please read the post below for additional resources on installing and creating Let’s Encrypt SSL certificates for Nginx.

How to set up Let’s Encrypt SSL certificate for Nginx on Ubuntu Linux

Once you have restarted the Nginx web server, open your browser and browse to the server hostname or IP address defined in the Nginx server block.

http://craftcms.example.com/

Your Craft site should be set up and ready to use.

That should do it!

Conclusion

  • Installing Craft CMS with Nginx support on Ubuntu 24.04 provides a reliable framework for enhancing web applications’ performance, scalability, and security.
  • The combined use of Nginx, MariaDB, and PHP-FPM delivers high performance, efficient handling of static files, and support for the latest PHP-based Craft application.
  • Creating a Craft database, downloading Craft files, and configuring the Nginx server block are essential steps in the installation process.
  • Securing the Craft site with Let’s Encrypt SSL/TLS certificates is recommended for added protection and trustworthiness.
  • Upon successful completion of the installation, the Craft site should be fully set up and ready for use, offering a wide array of website creation and management features.
Richard Avatar

Comments

Leave a Reply

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