{"id":48870,"date":"2024-08-06T16:28:29","date_gmt":"2024-08-06T09:28:29","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=48870"},"modified":"2024-09-09T08:46:01","modified_gmt":"2024-09-09T01:46:01","slug":"mengatasi-http-error-500-laravel","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/mengatasi-http-error-500-laravel\/","title":{"rendered":"Cara Mengatasi HTTP Error 500 Pada Laravel"},"content":{"rendered":"\n<p>Setelah mengunggah script laravel ke hosting, seringkali website akan error dengan pesan &#8216;HTTP error 500&#8217;. Tentunya, hal ini akan menyebabkan kebingungan bagi pembuat website, terlebih pada localhost website dapat berjalan dengan baik. Namun tidak perlu khawati, Anda menemukan artikel yang tepat untuk mengetahui cara mengatasi Laravel http error 500. <\/p>\n\n\n\n\n\n<p>Namun, sebelum membahas tentang cara mengatasi laravel http error 500, terlebih dahulu kami akan menjelaskan tentang pengertian http error 500 hingga penyebabnya, agar Anda lebih memahami artikel yang kami buat. Simak informasi berikut ini.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pengertian HTTP Error 500<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"563\" height=\"272\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/08\/laravel-error-500.png\" alt=\"contoh HTTP Error 500 Pada Laravel\" class=\"wp-image-48871\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/08\/laravel-error-500.png 563w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/08\/laravel-error-500-300x145.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/08\/laravel-error-500-370x179.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/08\/laravel-error-500-270x130.png 270w\" sizes=\"auto, (max-width: 563px) 100vw, 563px\" \/><\/figure>\n<\/div>\n\n\n<p>Status http error 500 atau Internal server error 500 terjadi ketika server mengalami masalah internal, sehingga tidak dapat memproses permintaan Anda dengan baik. Pesan error ini juga menyatakan bahwa ada kesalahan konfigurasi pada akun hosting atau file website yang Anda akses. <\/p>\n\n\n\n<p>Sederhananya, ini seperti ketika Anda mencoba menelepon seseorang, namun telepon yang dituju mengalami gangguan. Pada akhirnya, panggilan Anda tidak tersambung.<\/p>\n\n\n\n<p>Pada umumnya, error ini berkaitan dengan konfigurasi pada website Anda. Seperti kesalahan konfigurasi file .htaccess, belum menyesuaikan versi php, hingga terjadi error pada <em>script<\/em> yang Anda upload. Pada <em>framework <\/em><a href=\"https:\/\/www.rumahweb.com\/journal\/laravel-adalah\/\" target=\"_blank\" rel=\"noopener\" title=\"laravel adalah\">laravel<\/a>, error ini dipengaruhi oleh banyak faktor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Penyebab Laravel Error 500<\/h2>\n\n\n\n<p>Ada beberapa faktor yang menyebabkan http error 500 pada Laravel, berikut diantaranya:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Directory masih belum sesuai<\/h3>\n\n\n\n<p>Framework Laravel menggunakan konsep MVC, dimana konsep penyusunan script berbeda dengan script php pada umumnya. Seringkali, http error 500 di Laravel disebabkan karena ketidaksesuaian antara folder pubic dengan file core Laravel. <\/p>\n\n\n\n<p>Hal ini menyebabkan laravel tidak dapat dibaca oleh server, dan akhirnya menampilkan kode http error 500. Berkaitan dengan directory, berikut beberapa faktor yang menyebabkan laravel mengalami error 500.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1.1 Struktur directory<\/h4>\n\n\n\n<p>Laravel memisahkan bagian public dari aplikasi (seperti aset public dan titik masuk aplikasi) dengan bagian internal yang mencakup logika aplikasi, konfigurasi, dan sumber daya lainnya yang tidak seharusnya diakses secara langsung oleh pengguna.<\/p>\n\n\n\n<p>Laravel mengikuti prinsip MVC (Model-View-Controller) dan memiliki struktur direktori yang tertata dengan baik, untuk memudahkan pengembangan dan pemeliharaan aplikasi. Berikut adalah struktur direktori dasar dari aplikasi Laravel:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>app: Berisi kode aplikasi, seperti model, controller, dan middleware.<\/li>\n\n\n\n<li>bootstrap: Berisi file yang digunakan untuk bootstrap aplikasi.<\/li>\n\n\n\n<li>config: Berisi file konfigurasi aplikasi.<\/li>\n\n\n\n<li>database: Berisi migrasi, seeder, dan file database.<\/li>\n\n\n\n<li>public: Berisi aset publik seperti gambar, CSS, JavaScript, dan file entry point aplikasi (index.php).<\/li>\n\n\n\n<li>resources: Berisi view dan aset mentah.<\/li>\n\n\n\n<li>routes: Berisi file definisi route.<\/li>\n\n\n\n<li>storage: Berisi log aplikasi dan file yang di-cache.<\/li>\n\n\n\n<li>vendor: Berisi dependensi yang diinstal oleh Composer.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">1.2 Keamanan<\/h4>\n\n\n\n<p>Struktur direktori laravel didesain untuk menjaga keamanan aplikasi. Direktori public adalah satu-satunya direktori yang harus dapat diakses oleh web server secara langsung. <\/p>\n\n\n\n<p>Direktori lainnya seperti app, config, database, resources, dan storage mengandung file sensitif yang tidak boleh diakses oleh pengguna umum. Menempatkan seluruh aplikasi di public_html dapat membuka celah keamanan karena file-file ini dapat diakses secara langsung oleh pengguna.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1.3 Akses file<\/h4>\n\n\n\n<p>Web server (seperti Apache atau Nginx) harus dikonfigurasi untuk hanya mengakses direktori public. File index.php yang berada di dalam direktori public bertindak sebagai entry point untuk semua permintaan web, dan ini mengarahkan semua permintaan ke controller yang sesuai dalam aplikasi Laravel. Dengan cara ini, file internal lainnya tetap aman dari akses langsung.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Kesalahan pada file .htaccess<\/h3>\n\n\n\n<p>Kesalahan dalam sintaks .htaccess adalah salah satu faktor penyebab dari error 500.&nbsp; File .htaccess digunakan untuk mengatur <em>routing <\/em>dan konfigurasi web server untuk aplikasi laravel, sehingga jika terdapat kesalahan pada file ini, laravel tidak akan dapat diakses dengan benar dan biasanya akan menampilkan Internal Server Error.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. <em>Permission <\/em>file dan folder tidak tepat<\/h3>\n\n\n\n<p>Izin atau permission file merupakan salah satu kesalahan umum yang sering ditemukan setelah upload laravel pada hosting. Dalam sistem operasi Linux, setiap file atau direktori mempunyai <em>privilege <\/em>tertentu untuk menentukan siapa yang bisa memeproses atau mengaksesnya. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Kesalahan setting database<\/h3>\n\n\n\n<p>Salah satu yang menyebabkan http error 500 pada laravel adalah kesalahan konfigurasi database, service database offline, atau user lupa mengupload database ke hosting.<\/p>\n\n\n\n<p>Ketika <em>script <\/em>Laravel berinteraksi dengan <em>query <\/em>database namun mengalami kegagalan, maka server tidak dapat memproses permintaan dari Anda. Secara otomatis, server akan mengembalikan respons ke browser anda dengan pesan kesalahan koneksi database atau pesan http error. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mengatasi http Error 500 di Laravel<\/h2>\n\n\n\n<p>Karena banyak faktor yang dapat menyebabkan http error 500, maka ada beberapa hal yang perlu Anda cek untuk mengetahui penyebab dan problem solvingnya. Namun secara umum, berikut beberapa cara yang dapat Anda lakukan untuk mengatasi http error di Laravel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Menyesuaikan konfigurasi file dan folder<\/h3>\n\n\n\n<p>Bagi Anda yang baru saja mengupload file Laravel ke hosting, Anda bisa menyesuaikan konfigurasi file dan folder Laravel dengan mengikuti panduan berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.rumahweb.com\/journal\/cara-upload-laravel-ke-hosting-cpanel\/\">Upload Laravel ke hosting pada domain utama<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.rumahweb.com\/journal\/cara-upload-laravel-di-subdomain-melalui-cpanel\/\">Upload laravel ke hosting pada Subdomain.<\/a><\/li>\n<\/ul>\n\n\n\n<p>Bagi Anda yang menggunakan frontend VueJS, ReactJS atau Mix, Anda bisa mengikuti panduan berikut: <a href=\"https:\/\/www.rumahweb.com\/journal\/cara-upload-laravel-dengan-frontend-reactjs-atau-vuejs\/\" title=\"\">Cara Upload Laravel dengan Frontend ReactJS atau VueJS<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Menyesuaikan file .htaccess<\/h3>\n\n\n\n<p>Sebagai pengatur <em>routing <\/em>dalam laravel, Anda harus memastikan file .htaccess berada pada directory yang benar. File .htaccess dalam aplikasi Laravel harus berada di dalam direktori root domainnya. Dalam konteks domain utama, file .htaccess harusnya ada di folder \/public_html. Sedangkan untuk subdomain, harus terdapat file .htaccess pada directory root subdomainnya.<\/p>\n\n\n\n<p>Lalu, jika sudah dipastikan penempatan directory .htaccess benar, perhatikan <em>script <\/em>pada file .htaccess, apakah sudah mengarah atau menunjukkan routing yang benar. Anda juga dapat menyesuaikan script .htaccess dengan <em>script <\/em>default berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;IfModule mod_rewrite.c&gt;\n    &lt;IfModule mod_negotiation.c&gt;\n        Options -MultiViews\n    &lt;\/IfModule&gt;\n\n    RewriteEngine On\n\n    # Handle Authorization Header\n    RewriteCond %{HTTP:Authorization} .\n    RewriteRule .* - &#091;E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]\n\n    # Redirect Trailing Slashes If Not A Folder...\n    RewriteCond %{REQUEST_FILENAME} !-d\n    RewriteRule ^(.*)\/$ \/$1 &#091;L,R=301]\n\n    # Handle Front Controller...\n    RewriteCond %{REQUEST_FILENAME} !-d\n    RewriteCond %{REQUEST_FILENAME} !-f\n    RewriteRule ^ index.php &#091;L]\n&lt;\/IfModule&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Melakukan pengecek log error<\/h3>\n\n\n\n<p>Untuk mengatasi error 500 pada Laravel, anda dapat membaca error log dengan mengikuti panduan berikut:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3.1 Periksa Log Laravel<\/h4>\n\n\n\n<p>Log Laravel biasanya terletak di <em>storage\/logs\/laravel.log<\/em>. Buka file ini untuk mencari pesan kesalahan yang lebih spesifik.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3.2 Aktifkan mode Debugging<\/h4>\n\n\n\n<p>Apabila tidak ada informasi yang Anda cari pada laravel.log, Anda dapat mengaktifkan mode debug di laravel agar browser menampilkan error secara langsung. Anda dapat mengaktifkan mode debugging di Laravel pada file <strong>.env<\/strong>, yaitu dengan mengubah status debug <em>false <\/em>menjadi <em>true<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>APP_DEBUG=true<\/code><\/pre>\n\n\n\n<p>Pengaturan ini akan menampilkan pesan kesalahan yang lebih rinci di browser saat error 500 terjadi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Menyesuaikan <em>permission <\/em>file dan folder<\/h3>\n\n\n\n<p>Seperti yang telah kami bahas pada <a href=\"https:\/\/www.rumahweb.com\/journal\/chmod-adalah\/\" target=\"_blank\" rel=\"noopener\" title=\"chmod adalah\">CHMOD<\/a>, salah satu penyebab website mengalami error 500 adalah kesalahan pengaturan permission file dan folder. Pada framework laravel, umumnya file menggunakan permission 0644 dan folder menggunakan permission 0755. <\/p>\n\n\n\n<p>Pengecekan ini dapat dilakukan melalui file manager di cPanel. Lakukan analisa terkait permission folder dan file Laravel Anda. Anda bisa mengubah permission file atau folder di cPanel dengan cara klik bagian permission pada folder atau file yang akan Anda ubah, lalu sesuaikan permissionnya. <\/p>\n\n\n\n<p>Untuk mengubah secara cepat dan banyak, Anda bisa menggunakan perintah berikut melalui SSH atau Terminal:<\/p>\n\n\n\n<p>Untuk mengubah permission pada folder<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find . -type d -exec chmod 755 {} \\;<\/code><\/pre>\n\n\n\n<p>Untuk mengubah permission pada file<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find . -type f -exec chmod 644 {} \\;<\/code><\/pre>\n\n\n\n<p>Perintah diatas digunakan untuk mengubah seluruh folder menjadi 0755 dan mengubah permission file menjadi 0644. Sebelum menjalankan perintah diatas, pastikan Anda telah masuk di directory yang ingin anda ubah di SSH.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Memperbaiki setting koneksi database<\/h3>\n\n\n\n<p>Setting koneksi database dapat dilakukan melalui file .env yang terletak pada folder application laravel Anda. Berikut langkah-langkahnya:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">5.1 Periksa File .env<\/h4>\n\n\n\n<p>Pastikan bahwa pengaturan database di file `.env` Anda sudah benar. Contoh pengaturannya adalah sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DB_CONNECTION=mysql\nDB_HOST=localhost\nDB_PORT=3306\nDB_DATABASE=nama_database\nDB_USERNAME=nama_pengguna\nDB_PASSWORD=password_database<\/code><\/pre>\n\n\n\n<p>Sesuaikan nama database, nama pengguna dan password penggunanya.  Selengkapnya tentang cara setting koneksi database di Laravel bisa Anda pelajari pada artikel <a href=\"https:\/\/www.rumahweb.com\/journal\/setting-database-laravel\/\" target=\"_blank\" rel=\"noopener\" title=\"setting koneksi database laravel\">berikut<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">5.2 Periksa Konfigurasi Database di Config<\/h4>\n\n\n\n<p>Pastikan juga bahwa file konfigurasi database di `config\/database.php` sudah sesuai. Contoh pengaturan untuk MySQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>'mysql' =&gt; &#091;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'driver' =&gt; 'mysql',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'host' =&gt; env('DB_HOST', 'localhost'),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'port' =&gt; env('DB_PORT', '3306'),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'database' =&gt; env('DB_DATABASE', 'forge'),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'username' =&gt; env('DB_USERNAME', 'forge'),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'password' =&gt; env('DB_PASSWORD', ''),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'unix_socket' =&gt; env('DB_SOCKET', ''),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'charset' =&gt; 'utf8mb4',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'collation' =&gt; 'utf8mb4_unicode_ci',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'prefix' =&gt; '',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'strict' =&gt; true,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'engine' =&gt; null,\n&nbsp;&nbsp;&nbsp;]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6. Cek Versi Laravel dan PHP<\/h3>\n\n\n\n<p>Salah satu penyebab umum terjadinya http error 500 di laravel adalah ketidaksesuaian versi php yang digunakan pada hosting, dengan versi laravel yang digunakan. Untuk menyesuaikan versi php di Hosting, dapat dilakukan melalui menu Multiphp Manager atau Select PHP Version. <\/p>\n\n\n\n<p>Panduan cara mengubah versi php di hosting bisa Anda pelajari pada artikel berikut: <a href=\"https:\/\/www.rumahweb.com\/journal\/cara-mengganti-versi-php-di-cpanel\/\" target=\"_blank\" rel=\"noopener\" title=\"\">cara mengubah versi php di cPanel<\/a><\/p>\n\n\n\n<p>Apabila semua cara sudah Anda coba dan tetap tidak menemukan penyelesaiannya, Anda bisa menggunakan channel &#8216;trouble ticket&#8217; yang ada di Clientzone Rumahweb, untuk bantuan pengecekan secara lebih lanjut. <\/p>\n\n\n\n<p>Demikian artikel kami tentang cara mengatasi http error 500 pada Laravel, semoga bermanfaat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setelah mengunggah script laravel ke hosting, seringkali website akan error dengan pesan &#8216;HTTP error 500&#8217;. Tentunya, hal ini akan menyebabkan kebingungan bagi pembuat website, terlebih pada localhost website dapat berjalan dengan baik. Namun tidak perlu khawati, Anda menemukan artikel yang tepat untuk mengetahui cara mengatasi Laravel http error 500. Namun, sebelum membahas tentang cara mengatasi [&hellip;]<\/p>\n","protected":false},"author":354,"featured_media":48920,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2],"tags":[2261,796,1497],"class_list":{"0":"post-48870","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-artikel-tutorial","8":"tag-http-error-500","9":"tag-laravel","10":"tag-tutorial-laravel"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/08\/banner-Cara-Mengatasi-HTTP-Error-500-Pada-Laravel.png","jetpack_shortlink":"https:\/\/wp.me\/p8n3G7-cIe","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/48870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/354"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=48870"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/48870\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/48920"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=48870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=48870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=48870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}