Rabu, 27 November 2019

Laravel error 500

Cara Mengatasi Kesalahan 500 Internal Server Error Laravel di Cpanel



Pernahkan kalian mendapatkan kesalahan jika saat ingin mengakses situs yang telah diupload di cpanel kemudian muncul 500 Internal Server Error ? Dalam website development menggunakan framework laravel biasanya, kesalahan ini biasa terjadi pada saat setelah upload ke hosting.
Akan tetapi saat melakukan running di localhost tidak diperoleh kesalahan sistem tersebut, mungkin kejadian itu terlihat aneh. Berjam-jam mencari kesalahan kode, baik itu typo ataupun kesalahan logika, juga tidak membuahkan hasil. Mungkin juga developer yang sudah merasa frustasi akan kesalahan tak kunjung ketemu solusinya. Ada beberapa kemungkinan masalah yang menjadi penyebab yang akan dibahas dalam artikel ini.

Web Server Belum Sepenuhnya Aktif

Hal ini terjadi biasanya, karena hostingan yang baru di beli, masih belum sepenuhnya aktif. Terkadang file yang baru diupload ke dalam file manager cpnel. Pengaturannya serta tata letak filenya sudah benar akan tetapi,dari pihak penyediaan hostingnya perlu ada proses validasi dari server terkait domain dan hosting yang baru kita pasang dan kemungkinan hal ini bisa memakan waktu 3-24 Jam. Jadi solusi pertama dari permasalahan ini adalah dengan cukup bersabar, dan sering-sering me-refresh halaman website anda. Selain itu, anda perlu juga menghapus cache dan cookie page anda dengan cara klik tombol ctrl+Shift+del pada keyboard anda dan hapus cache dan cookie pada web browser anda.

Kesalahan Pengaturan pada Config Laravel

Kesalahan selanjutnya mungkin terdapat pada pengaturan pada folder config anda belum terisi dengan benar, ada beberapa bagian isi file yang perlu diganti setelah file laravel anda di upload ke shared hosting. Pertama, coba anda cek file app.php di dalam folder config, klik kanan kemudian pilih edit setelah itu coba scroll ke bawah dan ganti url localhost dengan url anda yang sekarang dan selanjutnya save file yang telah di edit.

(A) File Database.php; (B)File App.php

Yang kedua coba cek file database.php juga berada dalam folder config. Lakukan hal yang sama klik kanan lalu edit, setelah itu coba anda ganti identitas database (nama database, username database, dan password database), dan sebelumnya pastikan file database (namafiledatabase.sql) anda sudah terpasang di phpmyadmin hosting anda. 

File .htaccess Belum Terpasang

Pastikan .htaccess telah terpasang dalam file root laravel anda. File .htaccess sangat penting dalam pemasangan website, file ini berguna untuk konfigurasi yang telah disediakan oleh web server apache. Jika dalam folder laravel, belum terdapat file .htaccess silahkan dibuat langsung di halaman cpanelnya, dengan mengklik tombol tambah (+ File ) di sudut kiri atas pada header menu cpanel anda. Kemudian berinama .htaccess, jadi penulisan filenya langsung format tanpa ada atribut nama sebelum format itu. Jika berhasil, maka edit file .htaccess dengan klik kanan file tersebut kemudian edit. Isikan file tersebut dengan kode di bawah.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Selanjutnya klik save file, coba anda refresh kembali halaman website anda, untuk lebih baiknya hapus cookie dan cachenya terlebih dahulu seperti cara sebelumnya. Jadi sekian untuk pembahasan dari artikel ini, semoga artikel ini bermanfaat dan dapat memecahkan permasalahan anda.
I have an laravel app working fine on my local machine. I have just transferred it to my server ( Shared hosting ) and put everything on public folder in public_html and everything else in one step above public_html. The problem is now it shows 500 internal error on every route. I have changed .htaccess code to given code on documentation, folder rights to storage and bootstrap is set to 777. Nothing in error logs and also nothing in laravel log files. when I installed fresh laravel installation it worked on server as well. Tried updated code with my project but still 500 internal error.
Its .htaccess code
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ /index.php [L]
</IfModule>
Code in my composer.json file
{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*",
        "illuminate/html": "^5.0",
        "laravel/socialite": "^2.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}
Searching from 3 days found no solution yet.

Tidak ada komentar:

Posting Komentar