Laravel adalah framework PHP open source yang mengikuti pola desain MVC (Model-View-Controller). Ini telah dibuat oleh Taylor Otwell pada tahun 2011 sebagai upaya untuk memberikan alternatif lanjutan untuk kerangka CodeIgniter (CI). Pada tahun 2011, proyek Laravel merilis versi 1 dan 2, tahun ini versi 5.4 telah dirilis dengan banyak peningkatan seperti dukungan Command-Line (CLI) bernama 'artisan', dukungan bawaan untuk lebih banyak tipe database dan perutean yang ditingkatkan.
Dalam tutorial ini, saya akan menunjukkan cara menginstal Laravel Web Framework dengan server web Nginx, PHP-FPM 7.1 dan MariaDB pada sistem CentOS 7. Saya akan menunjukkan langkah demi langkah cara menginstal dan mengonfigurasi Laravel di bawah tumpukan LEMP di server CentOS 7.
Tutorial ini juga tersedia untuk Laravel di Ubuntu.
Prasyarat:
- Server CentOS 7.
- Keistimewaan Root.
Langkah 1 - Instal Repositori EPEL
EPEL atau Paket Ekstra untuk Enterprise Linux adalah repositori paket tambahan yang menyediakan paket perangkat lunak berguna yang tidak termasuk dalam repositori resmi CentOS. Itu dapat diinstal pada distribusi Linux berbasis RPM seperti CentOS dan Fedora.
Dalam tutorial ini, kita memerlukan repositori EPEL untuk instalasi Nginx karena paket Nginx tidak ada di repositori CentOS resmi. Instal repositori EPEL dengan perintah yum di bawah ini.
yum -y install epel-release
Repositori EPEL telah diinstal.
Langkah 2 - Instal Nginx
Dalam tutorial ini, kita akan menjalankan Laravel di bawah LEMP Stack. Nginx adalah bagian server web dari tumpukan LEMP dan dapat diinstal dari repositori EPEL.
Instal Nginx 1.10 dari repositori EPEL dengan yum.
yum -y install nginx
Ketika instalasi selesai, mulai Nginx dan tambahkan untuk memulai saat boot.
systemctl start nginx
systemctl enable nginx
Nginx berjalan di port 80, periksa dengan perintah netstat di bawah.
netstat -plntu
Jika Anda mendapatkan 'Perintah tidak ditemukan' sebagai hasilnya, instal paket net-tools seperti yang ditunjukkan di bawah ini.
yum -y install net-tools
Langkah 3 - Instal dan Konfigurasi PHP-FPM 7.1
Laravel dapat diinstal pada server dengan versi PHP>=5.6.4. Dalam tutorial ini, kita akan menggunakan versi terbaru PHP 7.1 yang didukung oleh Laravel.
PHP 7.1 tidak ada di repositori dasar CentOS, kita perlu menginstalnya dari repositori pihak ketiga bernama 'webtatic'.
Instal repositori webtatic dengan perintah rpm ini.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Sekarang kita dapat menginstal PHP-FPM dengan semua ekstensi yang dibutuhkan oleh Laravel dengan satu perintah yum.
yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip
PHP 7.1 telah diinstal pada sistem CentOS 7 kami.
Selanjutnya konfigurasikan PHP dengan mengedit file konfigurasi php.ini dengan vim.
vim /etc/php.ini
Batalkan komentar pada baris di bawah dan ubah nilainya menjadi 0.
cgi.fix_pathinfo=0
Simpan file dan keluar dari editor.
Sekarang edit file PHP-FPM www.conf.
vim /etc/php-fpm.d/www.conf
PHP-FPM akan berjalan di bawah pengguna dan grup 'nginx ', ubah nilai dari dua baris di bawah ini menjadi 'nginx '.
user = nginx
group = nginx
Alih-alih menggunakan port server, PHP-FPM akan berjalan di bawah file soket. Ubah nilai 'listen' menjadi path '/run/php-fpm/php-fpm.sock ' seperti yang ditunjukkan di bawah ini.
listen = /run/php-fpm/php-fpm.sock
Pemilik file soket akan menjadi pengguna 'nginx', dan mode izinnya adalah 660. Batalkan komentar dan ubah semua nilai seperti ini:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Untuk variabel lingkungan, batalkan komentar pada baris ini dan atur nilainya seperti yang ditunjukkan di bawah ini.
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Simpan file dan keluar dari vim, lalu mulai PHP-FPM dan aktifkan untuk dijalankan saat boot.
systemctl start php-fpm
systemctl enable php-fpm
PHP-FPM berjalan di bawah file socket, periksa dengan perintah di bawah ini.
netstat -pl | grep php-fpm.sock
Instalasi dan konfigurasi PHP dan PHP-FPM 7.1 telah selesai.
Langkah 4 - Instal Server MariaDB
Anda dapat menggunakan MySQL atau PostgreSQL untuk proyek Laravel Anda. Saya akan menggunakan server database MariaDB untuk tutorial ini. Ini tersedia di repositori CentOS. Instal MariaDB-server dengan perintah yum di bawah ini.
yum -y install mariadb mariadb-server
Ketika instalasi selesai, mulai 'mariadb' dan aktifkan untuk memulai saat boot.
systemctl start mariadb
systemctl enable mariadb
MariaDB telah dimulai dan berjalan pada port 3306, periksa dengan perintah netstat.
netstat -plntu
Selanjutnya, konfigurasikan kata sandi root untuk MariaDB dengan 'mylsq_secure_installation ' perintah di bawah.
mysql_secure_installation
Ketik kata sandi root mariadb Anda, hapus pengguna anonim, dll.
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Instalasi dan konfigurasi MariaDB telah selesai.
Langkah 5 - Instal PHP Composer
Komposer PHP adalah manajer paket untuk bahasa pemrograman PHP. Ini telah dibuat pada tahun 2011 dan terinspirasi oleh penginstal 'npm' Node.js dan 'bundler' Ruby. Instal composer dengan perintah curl.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Saat penginstalan selesai, coba gunakan 'komposer ' dan Anda akan melihat hasilnya seperti di bawah ini.
composer
Komposer PHP diinstal pada CentOS 7.
Langkah 6 - Konfigurasikan Virtual Host Nginx untuk Laravel
Pada langkah ini, kita akan membuat konfigurasi virtual host nginx untuk proyek Laravel. Kita perlu menentukan direktori root web untuk instalasi Laravel ini, saya akan menggunakan '/var/www/laravel ' sebagai direktori root web.
Buat dengan perintah mkdir di bawah ini:
mkdir -p /var/www/laravel
Selanjutnya, masuk ke direktori nginx dan buat file konfigurasi virtual host baru laravel.conf di direktori conf.d.
cd /etc/nginx
vim conf.d/laravel.conf
Rekatkan konfigurasi di bawah ini ke dalam file:
server {
listen 80;
listen [::]:80 ipv6only=on;
# Log files for Debugging
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
# Webroot Directory for Laravel project
root /var/www/laravel/public;
index index.php index.html index.htm;
# Your Domain Name
server_name laravel.hakase-labs.co;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Simpan file dan keluar dari vim.
Uji konfigurasi nginx dan pastikan tidak ada kesalahan, lalu mulai ulang layanan nginx.
nginx -t
systemctl restart nginx
Konfigurasi virtual host nginx untuk Laravel telah selesai.
Langkah 7 - Instal Laravel
Sebelum menginstal Laravel, kita perlu menginstal unzip di server.
yum -y install unzip
Sekarang buka direktori root web laravel '/var/www/laravel'.
cd /var/www/laravel
Laravel menyediakan dua cara untuk instalasi framework di server. Kita dapat menginstal Laravel dengan installer laravel, dan kita dapat menginstalnya dengan komposer PHP. Dalam tutorial ini, saya akan menginstal Laravel dengan membuat proyek baru dengan perintah composer.
Jalankan perintah di bawah ini untuk menginstal Laravel.
composer create-project laravel/laravel .
Tunggu hingga instalasi Laravel selesai. Ini mungkin memakan waktu.
Setelah instalasi selesai, ubah pemilik direktori root web Laravel menjadi pengguna 'nginx', dan ubah izin direktori penyimpanan menjadi 755 dengan perintah di bawah ini.
chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage
Instalasi Laravel telah selesai.
Langkah 8 - Konfigurasi SELinux
Dalam tutorial ini, Laravel akan berjalan dalam mode SELinux 'Enforcing'. Untuk memeriksa status SELinux, jalankan perintah di bawah ini.
sestatus
Hasilnya adalah SELinux berjalan di 'Enforcing ' modus.
Selanjutnya, kita perlu menginstal alat manajemen SELinux untuk CentOS 7.
Instal 'policycoreutils-python' di server.
yum -y install policycoreutils-python
Sekarang kita perlu mengubah konteks direktori Laravel dan kemudian menerapkan perubahan dengan perintah restorecon. Jalankan perintah manajemen SELinux seperti yang ditunjukkan di bawah ini.
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'
Konfigurasi SELinux untuk Laravel selesai.
Langkah 9 - Menguji Laravel
Buka browser web Anda dan ketik URL Laravel server Anda. Kami telah mendefinisikan nama domain untuk Laravel di file host virtual Nginx. Milik saya adalah laravel.hakase-labs.co .
Saat Anda mengunjungi nama domain, Anda akan melihat halaman beranda Laravel.
Instalasi Laravel dengan Nginx, PHP-FPM7, dan MariaDB di CentOS 7 telah berhasil.