Menjalankan Aplikasi CI¶
Aplikasi CodeIgniter 4 dapat dijalankan dengan sejumlah cara berbeda: di hosting di server web, menggunakan virtualisasi, atau menggunakan alat baris perintah CodeIgniter untuk pengujian.
Dalam hal ini, kita akan membahas implementasi di hosting web-server
Konfigurasi Awal¶
Konfigurasikan untuk URI Situs¶
Buka file app/Config/App.php dengan editor teks (contoh nano)
- $baseURL
Tetapkan URL dasar Anda ke
$baseURL. Jika Anda memerlukan fleksibilitas lebih, baseURL dapat ditetapkan dalam file .env sebagaiapp.baseURL = 'http://example.com/'. Selalu gunakan garis miring di akhir URL dasar Anda!
- $indexPage
Jika Anda tidak ingin menyertakan index.php di URI situs Anda, tetapkan
$indexPageke''. Pengaturan ini akan digunakan saat framework membuat URI situs Anda.
Konfigurasikan Pengaturan Koneksi dataBase¶
Jika Anda ingin menggunakan database, buka file app/Config/Database.php dengan editor teks dan atur pengaturan database Anda. Atau, pengaturan ini dapat diatur dalam file .env Anda. Lihat Konfigurasi Database untuk detailnya.
Atur ke Mode Pengembangan¶
Jika tidak ada di server produksi, tetapkan CI_ENVIRONMENT ke development dalam file .env untuk memanfaatkan alat debugging yang disediakan. Lihat Menetapkan Mode Pengembangan untuk detailnya.
Tetapkan Writable Folder Permission¶
Jika Anda akan menjalankan situs Anda menggunakan server web (misalnya, Apache atau nginx), Anda perlu mengubah izin untuk folder writable di dalam proyek Anda, sehingga dapat ditulis oleh pengguna atau akun yang digunakan oleh server web Anda.
Hosting dengan Apache¶
Aplikasi web CodeIgniter4 biasanya dihosting di server web. Apache HTTP Server adalah platform “standar”, dan diasumsikan dalam sebagian besar dokumentasi ini.
Konfigurasikan File Konfigurasi Utama¶
Aktifkan mod_rewrite¶
Modul “mod_rewrite” mengaktifkan URL tanpa “index.php” di dalamnya, dan diasumsikan dalam panduan pengguna kami.
Pastikan modul penulisan ulang diaktifkan dengan perintah:
sudo a2enmod rewrite
Set Document Root¶
Pastikan juga bahwa elemen <Directory> dari root dokumen default mengaktifkan ini juga, dalam pengaturan AllowOverride:
<Directory "/var/www/html/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Hosting dengan VirtualHost¶
Kami merekomendasikan penggunaan "virtual hosting” untuk menjalankan aplikasi Anda. Anda dapat mengatur alias yang berbeda untuk setiap aplikasi yang Anda kerjakan,
Aktifkan vhost_alias_module¶
$ sudo a2enmod vhost_alias
Menambahkan Host Alias¶
Tambahkan alias host di file “hosts” Anda, biasanya /etc/hosts pada platform unix/linux.
127.0.0.1 myproject.local
Setting VirtualHost¶
Tambahkan elemen <VirtualHost> untuk aplikasi web Anda di dalam konfigurasi hosting virtual, misalnya, apache2/sites-available/myproject-vhost.conf:
<VirtualHost *:80>
DocumentRoot "/var/www/myproject/public"
ServerName myproject.local
ErrorLog "logs/myproject-error_log"
CustomLog "logs/myproject-access_log" common
<Directory "/var/www/myproject/public">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Konfigurasi di atas mengasumsikan folder proyek berada sebagai berikut:
/var/www/
├── myproject/ (Project Folder)
│ └── public/ (DocumentRoot for myproject.local)
└── html/
Restart Apache
Testing¶
Dengan konfigurasi di atas, aplikasi web Anda akan diakses dengan URL http://myproject.local/ di browser Anda.
Apache perlu di-restart setiap kali Anda mengubah konfigurasinya.
Hosting dengan Subfolder¶
Jika Anda menginginkan baseURL seperti http://localhost/myproject/ dengan subfolder, ada tiga cara.
Membuat Symlink¶
Tempatkan folder proyek Anda sebagai berikut, di mana html adalah akar dokumen Apache:
├── myproject/ (project folder)
│ └── public/
└── html/
Arahkan ke folder html dan buat tautan simbolis sebagai berikut:
cd html/
ln -s ../myproject/public/ myproject
Menggunakan Alias¶
Tempatkan folder proyek Anda sebagai berikut, di mana html adalah akar dokumen Apache:
├── myproject/ (project folder)
│ └── public/
└── html/
Add the following in the main configuration file, e.g., apache2/conf/httpd.conf:
Alias /myproject /var/www/myproject/public
<Directory "/var/www/myproject/public">
AllowOverride All
Require all granted
</Directory>
Restart Apache
Menambahkan .htaccess¶
Jalan keluar terakhir adalah menambahkan .htaccess ke root proyek.
Tidak disarankan untuk meletakkan folder proyek di root dokumen. Namun, jika Anda tidak punya pilihan lain, seperti di server bersama, Anda dapat menggunakan ini.
Letakkan folder proyek Anda sebagai berikut, di mana htdocs adalah root dokumen Apache, dan buat file .htaccess:
└── htdocs/
└── myproject/ (project folder)
├── .htaccess
└── public/
Dan edit .htaccess seperti:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
<FilesMatch "^\.">
Require all denied
Satisfy All
</FilesMatch>
And remove the redirect settings in public/.htaccess:
--- a/public/.htaccess
+++ b/public/.htaccess
@@ -16,16 +16,6 @@ Options -Indexes
# http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase
# RewriteBase /
- # Redirect Trailing Slashes...
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteCond %{REQUEST_URI} (.+)/$
- RewriteRule ^ %1 [L,R=301]
- - # Rewrite "www.example.com -> example.com"
- RewriteCond %{HTTPS} !=on
- RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
- RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
- # Checks to see if the user is attempting to access a valid file,
# such as an image or css document, if this isn't true it sends the
# request to the front controller, index.php
Removing the index.php¶
See CodeIgniter URLs.
Setting Environment¶
Bootstrapping the App¶
Dalam beberapa skenario, Anda mungkin ingin memuat kerangka kerja tanpa benar-benar menjalankan seluruh aplikasi. Hal ini khususnya berguna untuk pengujian unit proyek Anda, tetapi mungkin juga berguna untuk menggunakan alat pihak ketiga guna menganalisis dan mengubah kode Anda. Kerangka kerja dilengkapi dengan skrip bootstrap terpisah yang khusus untuk skenario ini: system/Test/bootstrap.php.
Sebagian besar jalur ke proyek Anda ditetapkan selama proses bootstrap. Anda dapat menggunakan konstanta yang telah ditetapkan sebelumnya untuk menggantinya, tetapi saat menggunakan default, pastikan jalur Anda selaras dengan struktur direktori yang diharapkan untuk metode instalasi Anda.