Proyek Bulan Ini: Meng-hosting Web Administrator Karangan Bunga Surabaya Bagian 3


Bismillahirrohmaanirrohiim. Alhamdulillahi Robbil 'Alamiin. Allahumma Sholli 'Alaa Sayyidinaa Muhammad.

Pada bagian sebelumnya, saya telah menceritakan bagaimana saya memindahakan file dari penyimpanan lokal saya ke server DomaiNesia. Hasil dari proses yang biasa disebut upload ini adalah website sudah bisa diakses. Tentu saja, semua file, assets, dan database sudah di server dan sudah dikonfigurasi agar bisa diakses secara global.

Dan seperti yang saya nyatakan pada posting tersebut, saya kira semua semua baik-baik saja sampai teman saya mencoba melakukan login. Login-nya tidak bekerja. Saya pun bersiap lagi belajar menjadi web developer. Mantap.

Aplikasi sehebat apa pun, bila fitur utamanya hanya bisa diakses setelah login, namun login-nya tidak bisa, sama saja bohong. Coba saja bayangkan Facebook, Instagram, atau LINE yang keren seperti itu fitur login-nya ternyata belum bisa dipakai. Muspro, masbro!

Maka dari itu, saya coba menelusuri apa yang salah dari login-nya. Saya telusuri kesalahannya di komputer lokal saya saja. Toh, server sama komputer lokal saya menggunakan sistem operasi yang sama, yaitu Ubuntu. Selain itu, versi PHP yang saya gunakan juga sama dengan yang ada di server DomaiNesia, yaitu versi 7.2.

Sayangnya, ternyata saya belum memasang MySQL sama phpMyAdmin. Jadilah saya install dulu yang langkah-langkahnya pernah saya tulis di sini. Setelah saya install, saya mencoba login ke phpMyAdmin. Dan, coba tebak apa yang saya temui. Error!

Setelah saya coba membenahinya, ternyata ada serangkaian error lain yang harus saya benahi lagi. Nah, serangkaian error dan cara saya mengatasinya lah yang akan saya ceritakan kali ini.

Catatan: Komputer yang saya gunakan menggunakan sistem operasi Ubuntu 18.04 64-bit dengan versi PHP 7.2.7, versi MySQL server 5.7.23, versi Apache server 2.4.29, dan versi phpMyAdmin 4.6.6deb5.

AllowNoPassword Ketika Login phpMyAdmin

Error pertama yang saya temui adalah Error AllowNoPassword ketika saya mencoba login di phpMyAdmin. Seingat saya, saya memang dengan sengaja mengosongkan password ketika saya meng-install MySQL dan phpMyAdmin. Jadi, saya bingung. Bagaimana saya bisa login, lah wong memang akunnya tidak saya beri password, tapi kok diminta pas login.

Tampilan Error AllowNoPassword
Gambar 1. Tampilan Error AllowNoPassword

Seketika saya teringat bahwa saya pernah mengalami nasib seperti ini sebelumnya. Nasib ketika menemui kotak merah bertuliskan AllowNoPassword ketika login ke phpMyAdmin, entah kapan. Tapi, saya ingat juga bahwa saya pernah menemukan solusinya di StackOverflow.

Saya pun mencoba googling. Benar saja, saya menemukan solusinya di pertanyaan orang dengan username diggersworld di StackOverflow. Saya mencoba solusi yang digunakan oleh si penanya tersebut. Tanpa banyak cingcong, solusi tersebut ternyata work like a charm.

Sebenarnya ini lucu, saya malah berhasil menggunakan solusi yang tidak berhasil digunakan oleh si penanya. Intinya, saya meng-uncomment baris kode $cfg['Servers'][$i]['AllowNoPassword'] = TRUE; pertama dalam file config.inc.php.

Meskipun saya sudah bilang bahwa ini work like a charm, kenyataannya adalah saya belum bisa login. Memang benar, saya sudah tidak menjumpai AllowNoPassword. Namun, saya menjumpai error dengan kata-kata yang berbeda, yaitu No Permission root@localhost.

Catatan (11 April 2021): saya telah membuat tutorial khusus mengenai hal ini di sini.

Mengatasi No Permission root@localhost

Error ini, saya rasa, pernah saya temui sebelumnya. Ada dua solusi yang saya temui, solusi yang saya gunakan adalah membuat user baru dengan tanpa password. Namun, saya lupa saya mendapatkan solusi tersebut dari mana. Seingat saya, dari StackOverflow, tapi saya lupa dari pertanyaan yang mana.

Gambar 2. Tampilan Error No Permission root@localhost

Mau tidak mau, saya mencari lagi. Saya coba solusinya dan berhasil. Saya bisa login. Sayang, saat saya menulis bagian ini, saya sudah tidak menyimpan link yang merujuk ke solusi yang saya gunakan.

Meskipun begitu, saya sedikit ingat dengan apa saja yang saya lakukan saat itu. Saya pun googling lagi. Saya menemukan pertanyaan oleh user StackOverflow dengan username codescope ini memberikan inspirasi kepada saya bagaimana saya dulu mengatasi masalah ini. Lebih tepatnya, jawaban oleh user dengan username Todor yang saya jadikan inspirasi.
 
Catatan (25 Januari 2021): Saya telah menulis artikel tersendiri cara mengatasi error ini di sini.

Poin dari solusi yang saya dapatkan adalah mengubah Plugin dari user root yang sebelumnya auth_socket menjadi mysql_native_password. Solusi ini berhasil mengantarkan saya login di phpMyAdmin. Otomatis, saya bisa melakukan impor file database yang sebelumnya sudah saya impor di server DomaiNesia.

Kemudian, bagaimana cara saya mengimpor file *.sql di localhost?

Bagaimana Saya Mengimpor File *.sql di Localhost Ubuntu

Mengimpor file *.sql di localhost, tepatnya melalui phpMyAdmin, di Ubuntu tidaklah susah. Caranya sama dengan yang saya lakukan ketika mengimpor file *.sql di phpMyAdmin DomaiNesia. Jelas saja, kan sama-sama phpMyAdmin.

Tampilan Menu Import di phpMyAdmin
Gambar 3. Tampilan Menu Import di phpMyAdmin

Meskipun begitu, sebenarnya ada sedikit perbedaan. phpMyAdmin di Ubuntu lebih fleksibel daripada yang di DomaiNesia. Hal ini berlaku bagi saya yang hanya menggunakan layanan DomaiNesia yang paling murah. Sebanding, dong, layanan yang saya dapatkan dan saya bayarkan. Mungkin jika saya menyewa layanan yang lebih mahal, phpMyAdmin-nya mungkin bisa sama dengan di server lokal saya.

Eh, kok jadi cerita tentang DomaiNesia. Balik lagi ke cara saya mengimpor file *.sql di localhost Ubuntu.

Seperti biasa, alur yang saya alami ketika mengimpornya adalah dengan login ke phpMyAdmin, membuat database baru, lalu mengimpornya melalui menu impor yang tersedia pada database yang baru saja saya buat di phpMyAdmin.

Mantap. Semua terlihat sempurna. Agaknya, semuanya sudah siap agar saya bisa menelusuri apa yang salah pada login proyek CodeIgniter ini. Saya salin file-file proyek CodeIginiter yang berupa PHP, JS, CSS, dan lain-lain ke direktori server (direktori agar aplikasi web bisa berjalan dan diakses) di Apache Ubuntu, yaitu /var/www/html.

Kemudian, ada satu langkah lagi yang belum saya lakukan. Langkah terakhir sebelum saya melakukan debugging.

Terakhir, Menyambungkan CodeIgniter dengan Database di Ubuntu

Baik. Ini merupakan langkah yang mudah bagi saya karena sudah sering saya lakukan. Bukan bermaksud sombong, tapi memang seperti itu kenyataannya. Lagipula, bagaimana saya bisa sombong dengan sesuatu yang sudah sangat biasa oleh orang banyak?

Contoh Isi dari File .htaccess
Gambar 4. Contoh Isi dari File .htaccess

Caranya sama dengan yang saya ceritakan di bagian 2, meskipun saya pikir cerita saya di bagian 2 sedikit kurang jelas. Oke, lebih jelasnya saya ceritakan saja di sini.

Jadi, saya mengubah isi dari file database.php yang berada pada direktori /application/config dari root proyek. Saya mengubah bagian hostname menjadi localhost (tentu saja, saya sekarang memang berada di localhost, komputer saya sendiri), bagian username dengan username yang saya gunakan untuk login MySQL, dan password dengan password yang saya gunakan untuk login ke MySQL.

Kemudian, saya megubah file config.php, lagi-lagi berada pada direktori /application/config dari root proyek. Saya mengubah $config['base_url'] menjadi http://localhost/florist karena nama direktori root proyeknya memang florist.

Terakhir, saya membuat file .htaccess agar saya tidak harus selalu menambahkan index.php ke dalam URL proyek (secara default, index.php harus ditambahkan ketika mengakses URL dalam proyek CodeIgniter).

Sedikit informasi, saya menggunakan teks editor favorit saya, Geany, untuk mengubah file-file tadi. Ini karena spesifikasi laptop saya belum bisa saya gunakan untuk menggunakan editor sekelas Atom, Visual Studio Code, apalagi PhpStorm.

Penutup

That's all! Saya telah selesai mengonfigurasi agar proyek yang diberikan teman saya bisa berjalan dengan baik di server lokal saya. Meskipun ada beberapa error, itu bukanlah akhir dari semuanya. Bahkan, itu adalah tantangannya!

Setelah semua bisa berjalan dengan baik, sebenarnya masih ada yang belum diperbaiki. Ya itu tadi, mencari tahu penyebab login tidak bisa berjalan di server DomaiNesia dan cara mengatasinya. Dan seperti yang saya perikirakan sebelumnya, ternyata login juga tidak bisa berjalan di server lokal saya. Hal ini karena kondisi server lokal saya mirip dengan yang ada di server DomaiNesia.

Maka dari itu, pesan saya untuk para web developer, ayo menggunakan Linux, agar tidak kaget berurusan dengan server web yang kebanyakan menggunakan Command-Line Interface (CLI). :)

Tentu pada bagian selanjutnya, saya akan menceritakan apa yang salah dan solusi yang saya temukan untuk login di proyek tersebut. Nantikan saja bagian selanjutnya dari seri cerita ini.

Wallahul muwafiq ilaa aqwamith thooriq.

Referensi


Komentar

Postingan populer dari blog ini

Cara Mengatasi "Access denied for user 'root'@'localhost' (mysqli_real_connect(): (HY000/1698))" di Ubuntu 20.04 LTS

Update dari Composer 1 ke Composer 2 di Ubuntu 20.04

Cara Mengatasi "Login without a password is forbidden by configuration (see AllowNoPassword)" di Ubuntu 20.04 LTS