CodeIgniter

CodeIgniter

CodeIgniter adalah framework PHP yang ringan dan cepat, dirancang untuk membantu pengembang membangun aplikasi web dengan arsitektur MVC (Model-View-Controller). CodeIgniter terkenal karena kemudahan penggunaannya, dokumentasi yang lengkap, dan performa yang tinggi. Framework ini sangat cocok untuk pengembang yang membutuhkan solusi cepat dalam membuat aplikasi web tanpa memerlukan konfigurasi yang rumit.

1. Persyaratan Sistem

System requirements untuk CodeIgniter v4:

  • PHP 8.1+ dengan extension intl, mbstring, json
  • Database MySQL/MariaDB, PostgreSQL, SQLite3, MS SQL, atau Oracle Database
  • Apache atau Nginx web server

Sebelum memulai deploy, siapkan:

  • VPS atau server dengan OS Ubuntu 24.04
  • Akses SSH ke server
  • Domain yang sudah diarahkan ke server

2. Persiapan Server

Update sistem

sudo apt update
sudo apt upgrade -y

Install Apache

sudo apt install apache2 -y

Install MariaDB

sudo apt install mariadb-server -y

Tambah repository PPA ondrej/php

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update 
sudo apt upgrade -y

Install PHP 8.3 dan extension yang dibutuhkan

sudo apt install libapache2-mod-php8.3 php8.3 php8.3-cli php8.3-common \
  php8.3-apcu php8.3-mbstring php8.3-gd php8.3-intl \
  php8.3-xml php8.3-soap php8.3-bcmath php8.3-mysql php8.3-zip \
  php8.3-curl php8.3-tidy php8.3-imagick -y

Install Composer

sudo wget https://getcomposer.org/download/latest-stable/composer.phar -O /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

3. Buat Database

Login ke MariaDB

sudo mysql

Buat database dan user

CREATE DATABASE codeigniter;
GRANT ALL PRIVILEGES ON codeigniter.* TO 'codeigniter'@'localhost' IDENTIFIED BY 'rahasia';
FLUSH PRIVILEGES;
exit

4. Install CodeIgniter

Install CodeIgniter sebagai sample aplikasi yang akan di-deploy.

Jika sudah ada aplikasi CodeIgniter yang siap deploy, lompat ke pengaturan konfigurasi .env.

sudo apt install unzip -y
composer create-project codeigniter4/appstarter contoh.com

Masuk ke direktori dan copy file env

cd contoh.com
cp env .env

Buka file .env

nano .env

Atur konfigurasi URL dan database

CI_ENVIRONMENT = production
database.default.hostname = localhost
database.default.database = codeigniter
database.default.username = codeigniter
database.default.password = rahasia
database.default.DBDriver = MySQLi
database.default.DBPrefix =
database.default.port = 3306

Jalankan migrate untuk pembuatan struktur database

php spark migrate

Jalankan seeding jika menyiapkan seed data

php spark db:seed NamaSeeder

atau import dari file dump .sql

mysql -u codeigniter -p codeigniter < backup-db.sql

Untuk production, hapus paket development

composer install --no-dev

5. Konfigurasi Apache

Pindahkan direktori CodeIgniter ke /var/www

sudo mv contoh.com /var/www

Ubah user-group direktori

sudo chown -R www-data:www-data /var/www/contoh.com

Buat konfigurasi virtual host untuk contoh.com

sudo nano /etc/apache2/sites-available/contoh.com.conf	

Masukkan konfigurasinya

<VirtualHost *:80>
    ServerName contoh.com
    DocumentRoot /var/www/contoh.com/public
    <Directory /var/www/contoh.com/public>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/apache2/contoh.com_error.log
    CustomLog /var/log/apache2/contoh.com_access.log combined
</VirtualHost>

Aktifkan modul rewrite, virtual host, dan restart apache2

sudo a2enmod rewrite
sudo a2ensite contoh.com
sudo systemctl restart apache2	

6. Install SSL

Install certbot

sudo apt install certbot python3-certbot-apache -y	

Request sertifikat SSL

sudo certbot --non-interactive \
    -m [email protected] \
    --agree-tos \
    --no-eff-email \
    --apache -d contoh.com -d www.contoh.com \
    --redirect	

Deploy CodeIgniter telah selesai. Lakukan pengujian akses dan fungsi aplikasi.