Complete Guide on How to Install PHP Framework Slim using LAMP Stack on AlmaLinux 8
The PHP Slim framework is a lightweight, fast, and efficient micro-framework for building RESTful-based web applications and APIs. In this guide, we will discuss in a comprehensive, structured, and in-depth way how to install the Slim Framework using LAMP Stack (Linux, Apache, MySQL, PHP) on the AlmaLinux 8 operating system, an enterprise distro that is the successor to CentOS.
Prerequisites
- Full root access
- Domain (optional)
- Basic Linux Command Line
Preparation
Make sure the firewall and SELinux have been adjusted or temporarily disabled if you want to avoid problems during the initial installation.
Before starting the Slim installation, make sure your AlmaLinux 8 server is up to date and ready to install the LAMP Stack (Linux, Apache, MariaDB, PHP).
dnf update -y
dnf install epel-release -y
Install Apache
Apache is a reliable web server and is widely used in production environments. To install it, run the following command:
dnf install httpd -y
Once the installation is complete, enable and start the Apache service with the following command:
systemctl enable --now httpd
To allow access to the server via HTTP and HTTPS, allow the firewall:
firewall-cmd --permanent --add-service={http,https}
firewall-cmd --reload
Install PHP
PHP (Hypertext Preprocessor) is a server-side programming language that is crucial in this stack. We will install PHP 8 from the Remi Repository to use the latest version of PHP.
Run the following command to install the Remi Repository:
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Then list the available PHP using the following command:
dnf module list php
Output example:
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
php 8.0 common [d], devel, minimal PHP scripting language
php 8.2 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
php remi-8.3 common [d], devel, minimal PHP scripting language
php remi-8.4 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Enable the desired PHP module version. For example, for PHP 8.4, run the following command:
dnf module reset php -y
dnf module enable php:remi-8.4 -y
Once the repository is active, we can proceed with installing PHP along with the commonly used essential modules:
dnf install -y php php-cli php-common php-mysqlnd php-fpm php-opcache php-gd php-curl php-mbstring php-xml php-json php-soap php-bcmath
Check the installed PHP version with the following command:
php -v
Install MariaDB
MariaDB is a replacement for MySQL and is compatible with MySQL-based applications. Run the following command to install it:
dnf module list mariadb
Output example:
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
mariadb 10.3 [d] client, galera, server [d] MariaDB Module
mariadb 10.5 client, galera, server [d] MariaDB Module
mariadb 10.11 client, galera, server [d] MariaDB Module
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
The output above shows that the default version of MariaDB is 10.11 (the latest version from the OS). However, we'll use MariaDB version 11.4.7 using the official repository at https://mariadb.org/download/ and then reset MariaDB to remove it from the OS's default repository:
dnf module reset mariadb
Run the following command to add the MariaDB version 11.4.7 repository:
nano /etc/yum.repos.d/MariaDB.repo
Add the following parameters:
# MariaDB 11.4 RedHatEnterpriseLinux repository list - created 2025-07-31 14:04 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/11.4/rhel/$releasever/$basearch
baseurl = https://mirror.its.dal.ca/mariadb/yum/11.4/rhel/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirror.its.dal.ca/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
Then run the following command to install MariaDB:
dnf install MariaDB-server MariaDB-client
Enable and activate the MariaDB service:
systemctl enable --now mariadb
systemctl status mariadb
Before using it for production or testing, it is best to secure the MariaDB installation first by running the following command:
mariadb-secure-installation
Then follow the instructions that appear:
- Enter current password for root (enter for none) → [ENTER]
- Switch to unix_socket authentication → Y
- Change the root password? → Y
- Remove anonymous users? → Y
- Disallow root login remotely? Y
- Remove test database and access to it? Y
- Reload privilege tables now? Y
Install Slim
Before installing Slim, we'll first create a virtual host and database (to store Slim's content, configuration, and structure). Run the following command to create a virtual host:
Because the Slim Framework is minimalist, it doesn't have a built-in ORM or database connection like Laravel or Symfony.
Make sure you're using a valid domain (FQDN) and that the DNS A record is pointed to the server IP address used on your server.
nano /etc/httpd/conf.d/focusnic.biz.id.conf
Fill in the following parameters:
<VirtualHost *:80>
ServerAdmin webmaster@focusnic.biz.id
ServerName focusnic.biz.id
ServerAlias www.focusnic.biz.id
DocumentRoot /var/www/focusnic.biz.id/slimapp/public
<Directory /var/www/focusnic.biz.id>
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/focusnic.biz.id-error.log
CustomLog /var/log/httpd/focusnic.biz.id-access.log combined
</VirtualHost>
Then create a directory on the virtualhost above:
mkdir -p /var/www/focusnic.biz.id
Restart Apache to save changes:
apachectl configtest
systemctl restart httpd
Download Composer and install it with the following command:
Composer will be required for Slim management, such as installing dependencies and other requirements during development or production.
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Check composer version:
composer --version
Output example:
Composer version 2.8.10 2025-07-10 19:08:33
PHP version 8.4.11 (/usr/bin/php)
Download the Slim file and place it in the directory according to the virtualhost, we will download Slim and create a project with the name slimapp
using composer:
cd /var/www/focusnic.biz.id/
composer create-project slim/slim-skeleton slimapp
Adjust permissions on the Slim directory:
find /var/www/focusnic.biz.id/slimapp -type f -exec chmod 644 {} \;
find /var/www/focusnic.biz.id/slimapp -type d -exec chmod 755 {} \;
chown -R apache:apache /var/www/focusnic.biz.id
Access the Slim installation via a browser, for example: http://focusnic.biz.id
. If the installation is successful, the following default Slim page will appear.
Troubleshooting
-
404 Not Found
Ensure Apache'smod_rewrite
is enabled and.htaccess
is used. -
Slim Not Responding
Ensure theindex.php
file is written correctly and the dependency via Composer has been successfully installed. -
Permission Denied
Ensure the Apache user's directory isapache:apache
or has been chown to your user. -
Autoload Error
Rerun composer install if the vendor file is missing.
Conclusion
The Slim PHP Framework provides a fast, lightweight, and powerful solution for building web-based applications and APIs. By following this comprehensive guide, we successfully installed the Slim Framework using the LAMP Stack on AlmaLinux 8 with an optimal and secure configuration.
The step-by-step instructions, from installing LAMP and Composer to configuring the Apache virtual host, are explained in detail and systematically so that even beginners can follow along easily.
Q: Is the Slim Framework suitable for large applications?
A: Slim is designed as a micro-framework, but with its modular architecture, it is possible to use it for large applications with the addition of external components.
Q: Can it be used with Nginx?
A: Yes, Slim can run on top of Nginx, but this guide focuses on using Apache as part of a LAMP Stack.
Q: Is Composer mandatory?
A: It is mandatory. Composer is the primary dependency manager in the modern PHP ecosystem, including Slim.
Q: How do I deploy to production?
A: Use a valid domain, enable HTTPS, optimize the Apache configuration, and run the application in production mode.
Q: Is AlmaLinux suitable for production?
A: Absolutely. AlmaLinux is a stable successor to CentOS and is supported by the enterprise community.
Further References: