CodeIgniter is a free and open-source used as a development framework for PHP websites. This framework is so powerful that you can build a full-featured web application in the quickest way possible. This is made possible through a rich set of libraries available for common functions such as uploading files, managing sessions, email sending e.t.c.
The latest release version, CodeIgniter 4 offers the following features:
- Simple, Clear and easy to understand documentation.
- CI is an MVC framework with a small footprint.
- No need to learn about advanced concepts like PEAR.
- CI is not restricted to any naming convention or coding rules.
- Support for MySQL (5.1+) via the MySQLi driver, PostgreSQL via the Postgre driver and SqLite3 via the SQLite3 drive
- Can be used with command-line programs
- PHP 7.2 functionality and compatibility.
- It provides for a public folder, intended as the document root for your app
Install and use CodeIgniter 4 PHP Framework on Debian 11|10 using the steps below:
Getting Started
There are several dependencies required by CodeIgniter 4 namely;
- PHP
- Database – MySQL / MariaDB database server
- Web server – Apache / Nginx web server
We will begin by installing them as below:
Step 1 – Install PHP on Debian 11|10
Begin by installing the PHP dependency for CodeIgniter4 from the APT repository as below.
sudo apt update
sudo apt install php php-cli php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-intl vim
Verify the PHP installation.
$ php -v
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies
Step 2 – Install and Configure Database
We will now create a database for CodeIgniter. In this guide, we will use the MariaDB/MySQL database server that can be installed as below.
- MariaDB
sudo apt install mariadb-server mariadb-client
- MySQL
Use the dedicated guide below
Once installed, login to the shell using the root user, with the default password root.
sudo mysql -u root -p
Create a database for CodeIgniter as below.
CREATE USER 'codeigniter'@'localhost' IDENTIFIED BY 'Passw0rd';
CREATE DATABASE codeigniter;
GRANT ALL ON codeigniter.* to 'codeigniter'@'localhost';
FLUSH PRIVILEGES;
EXIT
Step 3 – Install CodeIgniter 4 PHP Framework on Debian 11|10
There are two methods one can use to install CodeIgniter 4 PHP Framework on Debian 11|10, namely;
- Using Composer
- Manually
Option 1 – Install CodeIgniter 4 PHP Framework on Debian 11|10 using Composer
Composer can be used to install CodeIgniter 4 PHP in several ways. First, composer on your system.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Move the composer.phar file to your path.
sudo mv composer.phar /usr/local/bin/composer
Run composer.
composer
Sample output:
For App Starters, who wish to create a new CodeIgniter4 based project with the name CodeIgniter.
composer create-project codeigniter4/appstarter CodeIgniter
Sample Output:
With this method, update Codeigniter to the latest release.
composer update
Now you can proceed and configure CodeIgniter4 by editing files in the CodeIgniter directory.
Option 2 – Install CodeIgniter 4 PHP Framework on Debian 11|10 Manually.
This is an alternative method to install CodeIgniter 4 PHP Framework on Debian 11|10. Download CodeIgniter4 from the official CodeIgniter release page. You can also use the below command to pull the CodeIgniter4 archive.
Install the required packages.
sudo apt install curl wget
Once installed, proceed as below
LATEST_VER=$(curl -s https://api.github.com/repos/codeigniter4/CodeIgniter4/releases/latest|grep tag_name | cut -d '"' -f 4)
wget https://github.com/codeigniter4/CodeIgniter4/archive/refs/tags/${LATEST_VER}.tar.gz -O CodeIgniter-${LATEST_VER}.tar.gz
Once downloaded, extract and move the file to the CodeIgniter directory as below.
tar xvf CodeIgniter-${LATEST_VER}.tar.gz && rm -f CodeIgniter-${LATEST_VER}.tar.gz
mv CodeIgniter4-*/ CodeIgniter
Step 4 – Configure CodeIgniter4 on Debian 11|10
Configure CodeIgniter4 by editing the .env file.
cp CodeIgniter/env CodeIgniter/.env
vim CodeIgniter/.env
Begin by setting the environment:
#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
CI_ENVIRONMENT = development
Now add the database details.
#--------------------------------------------------------------------
# DATABASE
#--------------------------------------------------------------------
database.default.hostname = localhost
database.default.database = codeigniter
database.default.username = codeigniter
database.default.password = Passw0rd
database.default.DBDriver = MySQLi
Also, configure the URL to access the CodeIgniter4 web UI.
app.baseURL = 'http://codeigniter.example.com'
Replace codeigniter.example.com with your actual domain name.
Once adjustments have been made, move the file to /srv as below.
sudo mv CodeIgniter /srv
Step 5 – Install and Configure Apache Web server
We will use Apache as the webserver for CodeIgniter4 on our system. Install Apache using the command:
sudo apt -y install apache2 libapache2-mod-php
Set the correct permissions for the /srv/CodeIgniter directory.
sudo chown -R www-data:www-data /srv/CodeIgniter
sudo chmod -R 755 /srv/CodeIgniter
Create the virtual host file for CodeIgniter4.
sudo vim /etc/apache2/sites-enabled/codeigniter.conf
in the file, add the lines below, while replacing codeigniter.example.com with your real domain name.
<VirtualHost *:80>
ServerName codeigniter.example.com
ServerAlias www.codeigniter.example.com
ServerAdmin [email protected]
DocumentRoot /srv/CodeIgniter/public
ErrorLog /var/log/apache2/codeigniter-error_log
CustomLog /var/log/apache2/codeigniter-access_log combined
<Directory /srv/CodeIgniter/public>
Require all granted
AllowOverride All
Options +Indexes
</Directory>
</VirtualHost>
Save the file and enable the rewrite module.
sudo a2enmod rewrite
Move the default apache file to a backup file.
sudo mv /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/000-default.conf.bak
Now restart the Apache service.
sudo systemctl restart apache2
Step 6 – Access the CodeIgniter4 Web UI
With Apache configured, we can access the CodeIgniter4 web interface using the set URL http://example.com. You should be able to see the below page.
Step 7 – Run an Application with CodeIgniter 4
CodeIgniter 4 has an inbuilt local development server that can be launched using the php spark serve
command in the main directory. But since we have the server already running, and displaying the welcome message page, we will create a simple app as below.
First, create the app in the Views folder as below
sudo vim /srv/CodeIgniter/app/Views/hello_world.php
In the file, add your code as below.
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World form Nairobi, Kenya!</h1>
</body>
</html>
Next, create the controller. We will edit the existing controller for our Welcome message to display our application
sudo vim /srv/CodeIgniter/app/Controllers/Home.php
Replace welcome_message with the created application name hello_world
<?php
namespace App\Controllers;
class Home extends BaseController
{
public function index()
{
return view('hello_world');
}
}
Save the file and reload the page.
Conclusion.
That is it!
We have successfully installed and configured CodeIgniter 4 PHP Framework on Debian 11|10. Furthermore, we have demonstrated how to create a simple web page using the CodeIgniter 4 PHP Framework. I hope this guide was valuable. In case you have any feedback, let us know in the comments.
See more:
- Install CodeIgniter 4 PHP Framework on Ubuntu
- How To Install PHPMyAdmin on Kali Linux
- How To Install PHP 8.0 on Debian
- How To Install PHP 8.0 on Ubuntu