
In this tutorial, we will explain in detail how to install Drupal on AlmaLinux 9 OS.
Drupal is an open-source Content Management System (CMS) written in PHP and used worldwide in over 10 thousand top-rated websites.
Its core supports a variety of modules, themes, languages, and features that can be easily enabled in the Drupal dashboard. In this blog post, we will install Drupal with the LAMP stack.
Installing Drupal on AlmaLinux 9 is straightforward and may take up to 15 minutes. Let’s get things done!
Table of Contents
Prerequisites
- A server with AlmaLinux 9 as OS
- Valid domain pointed to the servers IP address
- User privileges: root or non-root user with sudo privileges
Step 1. Update the System
Before we start with the installation of the LAMP stack, we will update the system packages to their latest version available.
sudo dnf update -y && sudo dnf upgrade -y
Step 2. Install LAMP stack
First, we will install the Apache web server. Execute the following command:
sudo dnf install httpd -y
Once installed, start and enable the service.
sudo systemctl enable httpd && sudo systemctl start httpd
Check if the service is up and running:
sudo systemctl status httpd
You should receive the following output:
[root@host ~]# sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
└─php-fpm.conf
Active: active (running) since Wed 2023-03-08 18:47:07 CST; 1 day 21h ago
Docs: man:httpd.service(8)
Main PID: 565 (httpd)
Status: "Total requests: 244; Idle/Busy workers 100/0;Requests/sec: 0.0015; Bytes served/sec: 3 B/sec"
Tasks: 278 (limit: 24796)
Memory: 45.7M
CPU: 2min 47.518s
CGroup: /system.slice/httpd.service
Then we will install PHP8 with its extensions. Execute the following command to install the PHP8:
sudo dnf install php php-cli php-fpm php-curl php-mysqlnd php-gd php-readline php-mbstring php-apcu php-xml php-dom php-opcache php-zip php-intl php-common php-bcmath php-json -y
Once installed, check the installed PHP version. Execute the php -v on the command line. You should receive the following output:
[root@host ~]# php -v
PHP 8.0.27 (cli) (built: Jan 3 2023 16:17:26) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.27, Copyright (c) Zend Technologies
with Zend OPcache v8.0.27, Copyright (c), by Zend Technologies
The last installation of the LAMP stack is the MySQL service. To install the MySQL server execute the following command:
sudo dnf install mysql-server mysql -y
Start and enable the mysqld.service with the following commands:
sudo systemctl start mysqld && sudo systemctl enable mysqld
Check the status of the mysqld.service
sudo systemctl status mysqld
You should receive the following output:
[root@host ~]# sudo systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-03-10 16:00:59 CST; 39s ago
Main PID: 7539 (mysqld)
Status: "Server is operational"
Tasks: 39 (limit: 24796)
Memory: 454.4M
CPU: 9.763s
CGroup: /system.slice/mysqld.service
└─7539 /usr/libexec/mysqld --basedir=/usr
Mar 10 16:00:46 host.test.vps systemd[1]: Starting MySQL 8.0 database server...
Mar 10 16:00:46 host.test.vps mysql-prepare-db-dir[7457]: Initializing MySQL database
Mar 10 16:00:59 host.test.vps systemd[1]: Started MySQL 8.0 database server.
Step 3. Create a Drupal Database and User
To create a MySQL database, database user and grant permissions to that user, log in to MySQL with the mysql command in your console and execute the commands below:
CREATE DATABASE drupal; CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'YourStrongPasswordHere'; GRANT ALL PRIVILEGES ON drupal.* TO 'drupal'@'localhost'; FLUSH PRIVILEGES; exit;
Step 4. Install Drupal
Before we install Drupal, we first need to download it in the default Apache document root:
cd /var/www/html wget https://ftp.drupal.org/files/projects/drupal-9.3.16.zip unzip drupal-9.3.16.zip mv drupal-9.3.16/ drupal/
Set the right permissions to files and folders.
chown -R apache:apache drupal/
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Step 5. Create Apache Virtual Host File
We need to create an Apache virtual host configuration file in order can access Drupal via the domain name:
sudo nano /etc/httpd/conf.d/drupal.conf
Paste the following lines of code:
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html/drupal
<Directory /var/www/html/drupal/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/yourdomain.com_error.log
CustomLog /var/log/httpd/yourdomain.com.log combined
</VirtualHost>
Save the file, close it check the syntax of the Apache configuration file.
httpd -t
You should get this output:
[root@host project]# httpd -t Syntax OK
Restart the httpd.service.
sudo systemctl restart httpd
Now you can access Drupal at http://yourdomain.com to finish the installation. You can choose different options while finishing the installation. Everything that is necessary for database information is in the previous Step 3.
That’s it. You successfully installed Drupal CMS on AlmaLinux 9. If you find any difficulties with installing Drupal, you can always contact our technical support. All you have to do is to sign up for one of our NVMe VPS plans and submit a support ticket. We are available 24/7
If you liked this about installing Drupal on AlmaLinux 9, please share it with your friends on social networks or simply leave a reply below.