Cara Install Laravel PHP Framework dengan Nginx di CentOS 8


Laravel adalah kerangka web berbasis PHP sumber terbuka, terkenal, dan modern dengan sintaksis yang ekspresif, elegan, dan mudah dipahami sehingga memudahkan pembuatan aplikasi web yang besar dan tangguh.

Fitur utamanya mencakup mesin perutean yang sederhana dan cepat, wadah injeksi ketergantungan yang kuat, beberapa back-end untuk penyimpanan sesi dan cache, ORM (Pemetaan Relasional Objek) database yang ekspresif dan intuitif, pemrosesan pekerjaan latar belakang yang kuat, dan penyiaran acara waktu nyata.

Selain itu, ia menggunakan alat seperti Composer – manajer paket PHP untuk mengelola dependensi dan Artisan – antarmuka baris perintah untuk membangun dan mengelola aplikasi web.

Pada artikel ini, Anda akan mempelajari cara menginstal versi terbaru kerangka web Laravel PHP pada distribusi Linux CentOS 8.

Persyaratan Server

Kerangka kerja Laravel memiliki persyaratan berikut:

  • PHP >= 7.2.5 dengan ekstensi PHP OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype, dan JSON.
  • Komposer – untuk menginstal dan mengelola dependensi.

Langkah 1: Menginstal LEMP Stack di CentOS 8

1. Untuk memulai, perbarui paket perangkat lunak sistem dan instal tumpukan LEMP (Linux, Nginx, MariaDB/MySQL, dan PHP) menggunakan perintah dnf berikut.

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. Ketika instalasi LEMP selesai, Anda perlu memulai PHP-PFM, Nginx dan Layanan MariaDB menggunakan perintah systemctl berikut.

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. Selanjutnya, Anda perlu mengamankan dan memperkuat mesin database MariaDB menggunakan skrip keamanan seperti yang ditunjukkan.

mysql_secure_installation

Jawab pertanyaan berikut untuk mengamankan instalasi server.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password 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

4. Jika Anda menjalankan layanan firewalld, Anda perlu membuka layanan HTTP dan HTTPS di firewall untuk mengaktifkan permintaan klien ke server web Nginx.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

5. Terakhir, Anda dapat mengonfirmasi bahwa tumpukan LEMP Anda berjalan menggunakan browser di alamat IP sistem Anda.

http://server-IP

Langkah 2: Mengonfigurasi dan Mengamankan PHP-FPM dan Nginx

6. Untuk memproses permintaan dari server web Nginx, PHP-FPM dapat mendengarkan pada soket Unix atau soket TCP dan ini ditentukan oleh Parameter listen dalam file konfigurasi /etc/php-fpm.d/www.conf.

vi /etc/php-fpm.d/www.conf

Secara default, ini dikonfigurasi untuk mendengarkan pada soket Unix seperti yang ditunjukkan pada tangkapan layar berikut. Nilai di sini nantinya akan ditentukan dalam file blok server Nginx.

7. Jika menggunakan soket Unix, Anda juga harus mengatur kepemilikan dan izin yang benar seperti yang ditunjukkan pada tangkapan layar. Batalkan komentar pada parameter berikut dan tetapkan nilainya ke pengguna dan grup agar sesuai dengan pengguna dan grup tempat Nginx dijalankan.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. Selanjutnya, atur juga zona waktu seluruh sistem di file konfigurasi /etc/php.ini.

vi /etc/php.ini

Cari baris “;date.timezone ” dan hapus komentarnya, lalu tetapkan nilainya seperti yang ditunjukkan pada tangkapan layar (gunakan nilai yang berlaku untuk wilayah/benua dan negara Anda).

 
date.timezone = Africa/Kampala

9. Untuk mengurangi risiko Nginx meneruskan permintaan dari pengguna jahat yang menggunakan ekstensi lain untuk mengeksekusi kode PHP ke PHP-FPM, batalkan komentar pada parameter berikut dan tetapkan nilainya menjadi < kode>0.

cgi.fix_pathinfo=1

10. Sehubungan dengan poin sebelumnya, batalkan juga komentar pada parameter berikut dalam file /etc/php-fpm.d/www.conf. Baca komentar untuk penjelasan lebih lanjut.

security.limit_extensions = .php .php3 .php4 .php5 .php7

Langkah 3: Menginstal Composer dan Laravel PHP Framework

11. Selanjutnya, instal paket Composer dengan menjalankan perintah berikut. Perintah pertama mendownload installer, lalu menjalankannya menggunakan PHP.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

12. Sekarang Composer telah terinstal, gunakan untuk menginstal file Laravel dan dependensi sebagai berikut. Ganti mysite.com dengan nama direktori tempat file Laravel akan disimpan, jalur absolut (atau jalur root dalam file konfigurasi Nginx) adalah /var/www/html/mysite .com.

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

Jika semuanya berjalan baik selama proses, aplikasi akan berhasil diinstal dan kunci akan dihasilkan seperti yang ditunjukkan pada gambar layar berikut.

13. Selama proses instalasi, file lingkungan .env telah dibuat dan aplikasi yang diperlukan juga telah dibuat, sehingga Anda tidak perlu membuatnya secara manual seperti sebelumnya. Untuk mengonfirmasi hal ini, jalankan daftar panjang direktori root laravel menggunakan perintah ls.

ls -la mysite.com/

14. Selanjutnya, Anda perlu mengonfigurasi kepemilikan dan izin yang benar pada direktori penyimpanan dan bootstrap/cache agar dapat ditulis oleh web Nginx server.

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. Jika SELinux diaktifkan di server Anda, Anda juga harus memperbarui konteks keamanan penyimpanan dan bootstrap/cache direktori.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

Langkah 4: Konfigurasikan Blok Server Nginx Untuk Laravel

16. Agar Nginx mulai melayani situs web atau aplikasi Anda, Anda perlu membuat blok server untuknya dalam file .conf di bawah /etc/nginx/conf.d/ seperti yang ditunjukkan.

vi /etc/nginx/conf.d/mysite.com.conf

Salin dan tempel konfigurasi berikut ke dalam file. Catat parameter root dan fastcgi_pass.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. Simpan file dan periksa apakah sintaks konfigurasi Nginx sudah benar dengan menjalankannya.

nginx -t

18. Kemudian restart layanan PHP-FPM dan Nginx agar perubahan terbaru diterapkan.

systemctl restart php-fpm
systemctl restart Nginx

Langkah 5: Mengakses Situs Web Laravel dari Browser Web

19. Untuk mengakses situs web Laravel di mysite.com, yang bukan merupakan nama domain yang sepenuhnya memenuhi syarat (FQDN) dan tidak terdaftar (hanya digunakan untuk tujuan pengujian) , kami akan menggunakan file /etc/hosts di mesin lokal Anda untuk membuat DNS lokal.

Jalankan perintah berikut untuk menambahkan alamat IP server dan domain pada file yang diperlukan (ganti nilainya sesuai pengaturan Anda).

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. Selanjutnya, buka browser web di komputer lokal dan gunakan alamat berikut untuk bernavigasi.

http://mysite.com

Anda telah berhasil menerapkan Laravel di CentOS 8. Anda sekarang dapat mulai mengembangkan situs web atau aplikasi web Anda menggunakan Laravel. Untuk informasi lebih lanjut, lihat Panduan Memulai Laravel.