One place for hosting & domains

      Menginstal

      Cara Menginstal dan Mengamankan phpMyAdmin pada Ubuntu 20.04


      Versi tutorial sebelumnya ditulis oleh Brennan Bearnes.

      Pengantar

      Walaupun banyak pengguna membutuhkan fungsionalitas dari sistem manajemen basis data seperti MySQL, mereka mungkin tidak merasa nyaman berinteraksi dengan sistem hanya dari prompt MySQL.

      phpMyAdmin diciptakan sehingga pengguna dapat berinteraksi dengan MySQL melalui antarmuka web. Dalam panduan ini, kita akan membahas cara menginstal dan mengamankan phpMyAdmin sehingga Anda dapat menggunakannya secara aman untuk mengelola basis data Anda pada sistem Ubuntu 20.04.

      Prasyarat

      Agar bisa menyelesaikan panduan ini, Anda membutuhkan:

      Selain itu, ada pertimbangan keamanan penting saat menggunakan perangkat lunak seperti phpMyAdmin, karena perangkat lunak tersebut:

      • Berkomunikasi secara langsung dengan instalasi MySQL Anda
      • Menangani autentikasi dengan menggunakan kredensial MySQL
      • Menjalankan dan memberikan hasil untuk kueri SQL arbitrer

      Karena alasan-alasan ini, dan karena aplikasi PHP yang digunakan secara luas sering menjadi target penyerangan, Anda jangan pernah menjalankan phpMyAdmin pada sistem jarak jauh melalui koneksi HTTP biasa.

      Jika Anda tidak memiliki domain yang sudah dikonfigurasi dengan sertifikat SSL/TLS, Anda dapat mengikuti panduan mengamankan Apache dengan Let’s Encrypt pada Ubuntu 20.04 ini. Ini akan mengharuskan Anda untuk mendaftarkan nama domain, menciptakan catatan DNS untuk server Anda, dan menyiapkan Hos Virtual Apache.

      Langkah 1 — Menginstal phpMyAdmin

      Anda dapat menggunakan APT untuk menginstal phpMyAdmin dari repositori Ubuntu asali.

      Sebagai pengguna sudo non-root Anda, perbarui indeks paket server Anda:

      Setelah itu, Anda dapat menginstal paket phpmyadmin. Bersama dengan paket ini, dokumentasi resmi juga menganjurkan Anda menginstal beberapa ekstensi PHP ke server Anda untuk mengaktifkan fungsionalitas tertentu dan meningkatkan kinerja.

      Jika Anda mengikuti prasyarat tutorial tumpukan LAMP, beberapa dari modul-modul ini akan telah terinstal bersama dengan paket php. Namun, Anda disarankan untuk menginstal paket-paket ini juga:

      • php-mbstring: Modul untuk mengelola string non-ASCII dan mengubah string menjadi pengodean yang berbeda-beda
      • php-zip: Ekstensi ini mendukung pengunggahan berkas .zip ke phpMyAdmin
      • php-gd: Mengaktifkan dukungan untuk Pustaka Grafis GD
      • php-json: Menyediakan PHP dengan dukungan untuk serialisasi JSON
      • php-curl: Mengizinkan PHP untuk berinteraksi dengan berbagai jenis server menggunakan protokol yang berbeda-beda

      Jalankan perintah berikut untuk menginstal paket-paket ini ke sistem Anda. Namun, harap dicatat, bahwa proses instalasi mengharuskan Anda untuk membuat beberapa pilihan untuk mengonfigurasi phpMyAdmin dengan benar. Kita akan membahas opsi-opsi ini segera:

      • sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

      Berikut ini adalah opsi yang Anda harus pilih saat diminta untuk mengonfigurasi instalasi Anda dengan benar:

      • Untuk pilihan server, pilih apache2

        Peringatan: Ketika prompt muncul, “apache2” disorot, tetapi tidak dipilih. Jika Anda tidak menekan bilah SPACE untuk memilih Apache, penginstal tidak akan memindahkan berkas yang diperlukan selama instalasi. Tekan SPACE, TAB, lalu ENTER untuk memilih Apache.
      • Pilih Yes saat Anda ditanya apakah ingin menggunakan dbconfig-common untuk menyiapkan basis data
      • Lalu, Anda akan diminta untuk memilih dan mengonfirmasi kata sandi aplikasi MySQL untuk phpMyAdmin

      Catatan: Dengan asumsi Anda telah menginstal MySQL dengan mengikuti Langkah 2 dari tutorial prasyarat tumpukan LAMP, Anda mungkin telah memutuskan untuk mengaktifkan plugin Validate Password. Saat penulisan dokumen ini, mengaktifkan komponen ini akan memicu kesalahan saat Anda mencoba mengatur kata sandi untuk pengguna phpmyadmin:

      Kesalahan validasi kata sandi phpMyAdmin

      Untuk menyelesaikan ini, pilih opsi abort untuk menghentikan proses instalasi. Lalu, buka prompt MySQL Anda:

      Atau, jika Anda mengaktifkan autentikasi kata sandi untuk pengguna MSQL root, jalankan perintah ini lalu masukkan kata sandi Anda saat diminta:

      Dari prompt, jalankan perintah berikut untuk menonaktifkan komponen Validate Password. Perhatikan bahwa ini tidak benar-benar akan menghapus instalasinya, tetapi hanya menghentikan komponen dimuat pada server MySQL Anda:

      • UNINSTALL COMPONENT "file://component_validate_password";

      Setelah itu, Anda dapat menutup klien MySQL:

      Lalu, coba instal paket phpmyadmin lagi dan proses akan bekerja seperti yang diharapkan:

      • sudo apt install phpmyadmin

      Setelah phpMyAdmin terinstal, Anda dapat membuka prompt MySQL sekali lagi dengan sudo mysql atau mysql -u root -u -p lalu jalankan perintah berikut untuk mengaktifkan kembali komponen Validate Password:

      • INSTALL COMPONENT "file://component_validate_password";

      Proses instalasi ini menambahkan berkas konfigurasi phpMyAdmin Apache ke dalam direktori /etc/apache2/conf-enabled/, di mana berkas konfigurasi tersebut terbaca secara otomatis. Untuk menyelesaikan konfigurasi Apache dan PHP untuk bekerja dengan phpMyAdmin, tugas yang tersisa dalam bagian tutorial ini adalah untuk secara eksplisit mengaktifkan ekstensi PHP mbstring, yang dapat Anda lakukan dengan mengetik:

      Setelah itu, mulai ulang Apache supaya perubahan Anda dapat dikenali:

      • sudo systemctl restart apache2

      phpMyAdmin sekarang sudah terinstal dan dikonfigurasi untuk bekerja dengan Apache. Namun, sebelum Anda dapat log masuk dan mulai berinteraksi dengan basis data MySQL Anda, Anda perlu memastikan bahwa pengguna MySQL Anda memiliki privilese yang dibutuhkan untuk berinteraksi dengan program ini.

      Langkah 2 — Menyesuaikan Autentikasi dan Privilese Pengguna

      Saat Anda menginstal phpMyAdmin ke server Anda, proses ini secara otomatis menciptakan pengguna basis data yang disebut phpmyadmin, yang menjalankan proses mendasar tertentu untuk program. Alih-alih log masuk sebagai pengguna dengan kata sandi administratif yang Anda atur selama instalasi, Anda disarankan untuk log masuk sebagai pengguna MYSQL root atau sebagai pengguna yang dikhususkan untuk mengelola basis data melalui antarmuka phpMyAdmin.

      Mengonfigurasi Akses Kata Sandi untuk Akun Root MySQL

      Dalam sistem Ubuntu yang menjalankan MySQL 5.7 (dan versi lebih baru), pengguna MySQL root ditetapkan untuk melakukan autentikasi dengan menggunakan plugin auth_socket secara asali alih-alih dengan kata sandi. Ini mengizinkan keamanan dan kebergunaan yang lebih besar dalam banyak kasus, tetapi juga dapat memperumit keadaan saat Anda perlu untuk mengizinkan program eksternal — seperti phpMyAdmin — untuk mengakses pengguna.

      Untuk log masuk ke phpMyAdmin sebagai pengguna MySQL root, Anda perlu mengganti metode autentikasi dari auth_socket menjadi salah satu metode yang memanfaatkan kata sandi, jika Anda belum melakukan itu. Untuk melakukan ini, buka prompt MySQL dari terminal Anda:

      Selanjutnya, periksa metode autentikasi mana yang masing-masing akun pengguna MySQL Anda gunakan dengan perintah berikut:

      • SELECT user,authentication_string,plugin,host FROM mysql.user;

      Output

      +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      Pada contoh ini, Anda dapat melihat bahwa pengguna root memang mengautentikasi dengan menggunakan plugin auth_socket. Untuk mengonfigurasi akun root agar mengautentikasi dengan kata sandi, jalankan perintah ALTER USER berikut. Pastikan untuk mengubah password menjadi kata sandi yang kuat pilihan Anda:

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Catatan: Pernyataan ALTER USER sebelumnya telah menetapkan pengguna MYSQL root untuk mengautentikasi dengan plugin caching_sha2_password. Sesuai dokumentasi MySQL resmi, caching_sha2_password adalah plugin autentikasi MySQL yang lebih disukai, karena plugin ini menyediakan enkripsi kata sandi yang lebih aman daripada mysql_native_password yang lebih tua tetapi masih digunakan secara luas.

      Namun, beberapa versi PHP tidak berfungsi secara andal dengan caching_sha2_password. PHP telah melaporkan bahwa isu ini sudah diperbaiki pada PHP 7.4, tetapi jika Anda menjumpai kesalahan saat mencoba log masuk ke phpMyAdmin nantinya, Anda mungkin ingin mengatur root untuk mengautentikasi dengan mysql_native_password sebagai gantinya:

      • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

      Lalu, periksa lagi metode autentikasi yang digunakan oleh setiap pengguna Anda untuk mengonfirmasi bahwa root tidak lagi mengautentikasi dengan menggunakan plugin auth_socket:

      • SELECT user,authentication_string,plugin,host FROM mysql.user;

      Output

      +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | caching_sha2_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | caching_sha2_password | localhost | | debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | caching_sha2_password | localhost | | phpmyadmin | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | caching_sha2_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

      Anda dapat melihat dari keluaran ini bahwa pengguna root akan mengautentikasi dengan menggunakan kata sandi. Anda kini dapat log masuk ke antarmuka phpMyAdmin sebagai pengguna root Anda dengan kata sandi yang Anda sudah atur untuk itu di sini.

      Mengonfigurasi Akses Kata Sandi untuk Pengguna MySQL Khusus

      Selain itu, sebagian orang mungkin menganggap bahwa terhubung ke phpMyAdmin dengan pengguna khusus terasa lebih cocok dengan alur kerja mereka. Untuk melakukan ini, buka shell MySQL sekali lagi:

      Jika Anda memiliki autentikasi kata sandi yang diaktifkan untuk pengguna root Anda, seperti yang dijelaskan di bagian sebelumnya, Anda perlu menjalankan perintah berikut dan memasukkan kata sandi Anda saat diminta agar terhubung:

      Dari sana, ciptakan pengguna baru dan beri kata sandi yang kuat:

      • CREATE USER 'sammy'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

      Catatan: Sekali lagi, tergantung versi PHP yang telah Anda instal, Anda mungkin ingin mengatur pengguna baru Anda untuk mengautentikasi dengan mysql_native_password alih-alih caching_sha2_password:

      • ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

      Lalu, beri privilese yang sesuai kepada pengguna baru Anda. Sebagai contoh, Anda dapat memberikan privilese kepada pengguna untuk semua tabel di dalam basis data, serta kekuasaan untuk menambah, mengubah, dan menghapus privilese pengguna, dengan perintah ini:

      • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

      Setelah itu, keluarlah dari shell MySQL:

      Anda kini dapat mengakses antarmuka web dengan mengunjungi nama domain atau alamat IP publik server Anda yang diikuti dengan /phpmyadmin:

      https://your_domain_or_IP/phpmyadmin
      

      Layar log masuk phpMyAdmin

      Lakukan log masuk ke antarmuka, baik sebagai root atau dengan nama pengguna dan kata sandi baru yang baru saja Anda konfigurasikan.

      Saat Anda log masuk, Anda akan melihat antarmuka pengguna, yang akan terlihat seperti ini:

      Antarmuka pengguna phpMyAdmin

      Karena Anda sekarang dapat terhubung dan berinteraksi dengan phpMyAdmin, yang tersisa hanyalah memperkuat keamanan sistem Anda untuk melindunginya dari penyerang.

      Langkah 3 — Mengamankan Instans phpMyAdmin Anda

      Karena sangat umum digunakan di mana-mana, phpMyAdmin adalah target populer bagi penyerang, dan Anda harus lebih berhati-hati untuk mencegah akses yang tidak sah. Salah satu cara melakukan ini adalah dengan menempatkan gateway di depan seluruh aplikasi dengan menggunakan fungsionalitas autentikasi dan otorisasi .htaccess bawaan dari Apache.

      Untuk melakukan ini, Anda harus terlebih dahulu mengaktifkan penggunaan dari penimpaan berkas .htaccess dengan mengedit berkas konfigurasi Apache dari instalasi phpMyAdmin Anda.

      Gunakan editor teks khusus yang Anda sukai untuk mengedit berkas phpmyadmin.conf yang telah ditempatkan di dalam direktori konfigurasi Apache Anda. Di sini, kita akan menggunakan nano:

      • sudo nano /etc/apache2/conf-available/phpmyadmin.conf

      Tambahkan arahan AllowOverride All di dalam bagian <Directory /usr/share/phpmyadmin> dari berkas konfigurasi, seperti ini:

      /etc/apache2/conf-available/phpmyadmin.conf

      <Directory /usr/share/phpmyadmin>
          Options FollowSymLinks
          DirectoryIndex index.php
          AllowOverride All
          . . .
      

      Saat Anda telah menambahkan baris ini, simpan dan tutup berkas. Jika Anda menggunakan nano untuk mengedit berkas, lakukan itu dengan menekan CTRL + X, Y, lalu ENTER.

      Untuk menerapkan perubahan yang Anda buat, mulai ulang Apache:

      • sudo systemctl restart apache2

      Karena sekarang Anda telah mengaktifkan penggunaan berkas .htaccess untuk aplikasi Anda, Anda perlu menciptakan satu berkas untuk benar-benar menerapkan keamanan.

      Agar ini berhasil, berkas tersebut harus diciptakan di dalam direktori aplikasi. Anda dapat menciptakan berkas yang diperlukan dan membukanya di dalam editor teks Anda dengan privilese root dengan mengetik:

      • sudo nano /usr/share/phpmyadmin/.htaccess

      Dalam berkas ini, masukkan informasi berikut ini:

      /usr/share/phpmyadmin/.htaccess

      AuthType Basic
      AuthName "Restricted Files"
      AuthUserFile /etc/phpmyadmin/.htpasswd
      Require valid-user
      

      Berikut ini adalah makna dari masing-masing baris ini:

      • AuthType Basic: Baris ini menentukan tipe autentikasi yang Anda sedang terapkan. Jenis ini akan menerapkan autentikasi kata sandi dengan menggunakan berkas kata sandi.
      • AuthName: Ini menetapkan pesan untuk kotak dialog autentikasi. Anda harus menjaga ini tetap generik sehingga pengguna yang tidak sah tidak akan mendapatkan informasi tentang apa yang dilindungi.
      • AuthUserFile: Ini menetapkan lokasi berkas kata sandi yang akan digunakan untuk autentikasi. Ini harus berada di luar direktori yang sedang dilayani. Kita akan segera membuat berkas ini.
      • Require valid-user: Ini menentukan bahwa hanya pengguna terautentikasi yang diberi akses ke sumber daya ini. Inilah yang sebenarnya menghentikan masuknya pengguna yang tidak sah.

      Setelah Anda selesai, simpan dan tutup berkas.

      Lokasi yang Anda sudah pilih untuk berkas kata sandi Anda adalah /etc/phpmyadmin/.htpasswd. Anda kini dapat menciptakan berkas ini dan memberikannya kepada pengguna awal dengan utilitas htpasswd:

      • sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

      Anda akan diminta untuk memilih dan mengonfirmasi kata sandi untuk pengguna yang Anda buat. Setelah itu, berkas dibuat dengan kata sandi yang telah melalui proses hash yang Anda masukkan.

      Jika Anda ingin memasukkan pengguna tambahan, Anda perlu melakukannya tanpa bendera -c, seperti ini:

      • sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

      Sekarang, saat Anda mengakses subdirektori phpMyAdmin Anda, Anda akan diminta nama akun dan kata sandi tambahan yang Anda baru saja konfigurasikan:

      https://domain_name_or_IP/phpmyadmin
      

      Kata sandi apache phpMyAdmin

      Setelah memasukkan autentikasi Apache, Anda akan dibawa ke laman autentikasi phpMyAdmin reguler untuk memasukkan kredensial MySQL Anda. Dengan menambahkan set kredensial non-MySQL ekstra, Anda memberikan basis data Anda suatu lapisan keamanan tambahan. Ini adalah sesuatu yang baik karena sejak dulu phpMyAdmin rentan terhadap ancaman keamanan.

      Kesimpulan

      Anda seharusnya kini telah memiliki phpMyAdmin yang terkonfigurasi dan siap digunakan pada server Ubuntu 20.04 Anda. Menggunakan antarmuka ini, Anda dapat menciptakan basis data, pengguna, dan tabel, serta melakukan operasi biasa seperti menghapus serta memodifikasi struktur dan data.



      Source link

      Cara Menginstal Linux, Nginx, MySQL, PHP (tumpukan LEMP) pada Ubuntu 20.04


      Pengantar

      Tumpukan perangkat lunak LEMP adalah sekumpulan perangkat lunak yang dapat digunakan untuk menyajikan laman web dan aplikasi web dinamis yang ditulis dalam PHP. Ini adalah akronim yang mendeskripsikan suatu sistem operasi Linux, dengan server web Nginx (diucapkan seperti “Engine-X”). Data backend disimpan di dalam basis data MySQL, dan pemrosesan dinamis ditangani oleh PHP.

      Panduan ini menunjukkan cara menginstal tumpukan LEMP pada server Ubuntu 20.04. Sistem operasi Ubuntu menangani persyaratan pertama. Kami akan menjelaskan cara menjadikan komponen lainnya menjadi aktif dan berjalan.

      Prasyarat

      Untuk menyelesaikan tutorial ini, Anda akan memerlukan akses ke server Ubuntu 20.04 sebagai pengguna sudo non-root reguler, dan firewall yang aktif pada server Anda. Untuk menyiapkan ini, Anda dapat mengikuti panduan penyiapan server awal untuk Ubuntu 20.04 dari kami.

      Langkah 1 – Menginstal Server Web Nginx

      Untuk menampilkan laman web kepada pengunjung situs kita, kita akan menggunakan Nginx, yang merupakan server web berkinerja tinggi. Kita akan menggunakan manajer paket apt untuk memperoleh perangkat lunak ini.

      Karena ini adalah kali pertama kita menggunakan apt untuk sesi ini, maka mulailah dengan memperbarui indeks paket server Anda. Setelah itu, Anda dapat menggunakan apt install untuk menginstal Nginx:

      • sudo apt update
      • sudo apt install nginx

      Saat diminta, tekan Y untuk mengonfirmasi bahwa Anda ingin menginstal Nginx. Setelah instalasi selesai, server web Nginx akan menjadi aktif dan berjalan pada server Ubuntu 20.04 Anda.

      Jika Anda memiliki firewall ufw yang telah aktif, seperti yang disarankan dalam panduan penyiapan server awal kami, Anda akan perlu mengizinkan koneksi ke Nginx. Nginx mendaftarkan beberapa profil aplikasi UFW yang berbeda saat instalasi. Untuk memeriksa profil UFW mana yang tersedia, jalankan:

      Output

      Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

      Anda disarankan untuk mengaktifkan profil paling ketat yang masih akan mengizinkan lalu lintas yang Anda perlukan. Karena Anda belum mengonfigurasi SSL untuk server Anda dalam panduan ini, Anda hanya akan perlu mengizinkan lalu lintas HTTP reguler pada porta 80.

      Aktifkan ini dengan mengetik:

      • sudo ufw allow 'Nginx HTTP'

      Anda dapat memverifikasi perubahan dengan menjalankan:

      Keluaran perintah ini akan menunjukkan bahwa lalu lintas HTTP kini diizinkan:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

      Dengan penambahan aturan firewall yang baru ini, Anda dapat menguji apakah server telah aktif dan berjalan dengan mengakses nama domain server Anda atau alamat IP publik pada peramban web Anda.

      Jika Anda tidak memiliki nama domain yang mengarah ke server Anda dan Anda tidak mengetahui alamat IP publik server Anda, Anda dapat menemukannya dengan menjalankan perintah berikut:

      • ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's//.*$//'

      Ini akan mencetak beberapa alamat IP. Anda dapat mencoba setiap alamat tersebut secara satu per satu di peramban web Anda.

      Sebagai alternatif, Anda dapat memeriksa alamat IP mana yang dapat diakses, sebagaimana dilihat dari lokasi lain di internet:

      Ketik alamat yang Anda terima di peramban web Anda dan ini akan membawa Anda ke laman landas asali Nginx:

      http://server_domain_or_IP
      

      Laman asali Nginx

      Jika Anda melihat laman ini, ini berarti Anda telah berhasil menginstal Nginx dan mengaktifkan lalu lintas HTTP untuk server web Anda.

      Langkah 2 — Menginstal MySQL

      Setelah server web hidup dan berfungsi, Anda perlu menginstal sistem basis data agar dapat menyimpan dan mengelola data untuk situs Anda. MySQL adalah sistem manajemen basis data populer yang digunakan dalam lingkungan PHP.

      Sekali lagi, gunakan apt untuk memperoleh dan menginstal perangkat lunak ini:

      • sudo apt install mysql-server

      Ketika diminta, lakukan konfirmasi instalasi dengan mengetik Y, lalu ENTER.

      Ketika instalasi selesai, Anda disarankan untuk menjalankan skrip keamanan yang sudah terinstal sebelumnya dengan MySQL. Skrip ini akan menghapus beberapa pengaturan asali yang tidak aman dan mengunci akses ke sistem basis data Anda. Mulai skrip interaktif dengan menjalankan:

      • sudo mysql_secure_installation

      Anda akan ditanya apakah Anda ingin mengonfigurasi VALIDATE PASSWORD PLUGIN.

      Catatan: Mengaktifkan fitur ini merupakan keputusan yang Anda pertimbangkan sendiri. Jika diaktifkan, kata sandi yang tidak cocok dengan kriteria yang ditentukan akan ditolak oleh MySQL dengan suatu kesalahan. Akan lebih aman jika Anda tetap menonaktifkan validasi, tetapi Anda harus selalu menggunakan kata sandi yang kuat dan unik untuk kredensial basis data.

      Jawab Y untuk ya, atau jawaban lain untuk melanjutkan tanpa mengaktifkan.

      VALIDATE PASSWORD PLUGIN can be used to test passwords
      and improve security. It checks the strength of password
      and allows the users to set only those passwords which are
      secure enough. Would you like to setup VALIDATE PASSWORD plugin?
      
      Press y|Y for Yes, any other key for No:
      

      Jika Anda menjawab “ya”, Anda akan diminta untuk memilih tingkat validasi kata sandi. Harap ingat bahwa jika Anda memasukkan 2 sebagai tingkat terkuat, Anda akan menjumpai kesalahan saat berusaha menentukan kata sandi yang tidak mengandung angka, huruf kapital dan huruf kecil, serta karakter khusus, atau kata sandi yang berdasarkan pada kata-kata kamus umum.

      There are three levels of password validation policy:
      
      LOW    Length >= 8
      MEDIUM Length >= 8, numeric, mixed case, and special characters
      STRONG Length >= 8, numeric, mixed case, special characters and dictionary              file
      
      Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
      

      Terlepas dari pilihan pengaturan VALIDATE PASSWORD PLUGIN, server Anda akan meminta Anda untuk memilih dan mengonfirmasi kata sandi untuk pengguna root MySQL. Ini tidak sama dengan root sistem. Pengguna root basis data adalah pengguna administratif dengan privilese penuh terhadap sistem basis data. Meskipun metode autentikasi asali untuk pengguna root MySQL mengecualikan penggunaan kata sandi, sekalipun kata kata sandi sudah dibuat, Anda tetap harus menentukan kata sandi yang kuat di sini sebagai langkah keamanan tambahan. Kita akan membahas hal ini sebentar lagi.

      Jika Anda mengaktifkan validasi kata sandi, Anda akan diperlihatkan kekuatan kata sandi untuk kata sandi root yang baru saja Anda masukkan dan server Anda akan bertanya apakah Anda ingin melanjutkan dengan kata sandi itu. Jika Anda puas dengan kata sandi ini, tekan Y untuk “ya” di prompt:

      Estimated strength of the password: 100
      Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
      

      Untuk pertanyaan lainnya, tekan Y dan tombol ENTER pada setiap pertanyaan. Ini akan menghapus sebagian pengguna anonim dan basis data percobaan, menonaktifkan log masuk root dari jarak jauh, dan memuat aturan-aturan baru ini sehingga MySQL segera menerapkan perubahan yang Anda buat.

      Setelah Anda selesai, lakukan percobaan apakah Anda dapat melakukan log masuk ke konsol MySQL dengan mengetik:

      Ini akan menghubungkan ke server MySQL sebagai root pengguna basis data administratif, yang ditentukan berdasarkan penggunaan sudo saat menjalankan perintah ini. Anda akan melihat keluaran seperti ini:

      Output

      Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 22 Server version: 8.0.19-0ubuntu5 (Ubuntu) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>

      Untuk keluar dari konsol MySQL, ketik:

      Perhatikan bahwa Anda tidak perlu memberikan kata sandi untuk terhubung sebagai pengguna root, meskipun Anda telah menentukannya saat menjalankan skrip mysql_secure_installation. Hal itu dikarenakan metode autentikasi asali untuk pengguna MySQL administratif adalah unix_socket alih-alih kata sandi. Meskipun awalnya ini mungkin terlihat seperti masalah keamanan, tetapi ini membuat server basis data menjadi lebih aman karena pengguna yang diizinkan melakukan log masuk sebagai pengguna MySQL root hanya pengguna sistem dengan privilese sudo yang terhubung dari konsol atau melalui aplikasi yang berjalan dengan privilese yang sama. Dalam praktiknya, itu berarti Anda tidak akan dapat menggunakan pengguna root basis data administratif untuk terhubung dari aplikasi PHP. Pengaturan kata sandi untuk akun MySQL root berfungsi sebagai perlindungan, apabila metode autentikasi asali diubah dari unix_socket menjadi kata sandi.

      Untuk keamanan yang lebih baik, saran terbaiknya adalah memiliki akun pengguna khusus dengan pengaturan privilese yang lebih sempit untuk setiap basis data, terutama jika Anda berencana memiliki beberapa basis data di mana server Anda adalah hosnya.

      Catatan: Saat menyusun tulisan ini, pustaka PHP MySQL asli mysqlnd tidak mendukung caching_sha2_authentication, metode autentikasi asali untuk MySQL 8. Karena itu, saat menciptakan pengguna basis data untuk aplikasi PHP di MySQL 8, Anda perlu memastikan pengguna telah dikonfigurasi untuk menggunakan mysql_native_password. Kami akan mendemonstrasikan caranya di Langkah 6.

      Server MySQL Anda kini telah terinstal dan terlindungi. Selanjutnya, kita akan menginstal PHP, komponen terakhir dalam tumpukan LEMP.

      Langkah 3 — Menginstal PHP

      Anda telah menginstal Nginx untuk menyajikan konten Anda dan MySQL telah terinstal untuk menyimpan dan mengelola data Anda. Sekarang, Anda dapat menginstal PHP untuk memproses kode dan menghasilkan konten dinamis untuk server web.

      Walaupun Apache menyematkan penafsir PHP dalam setiap permintaan, Nginx membutuhkan program eksternal untuk menangani pemrosesan PHP dan bertindak sebagai jembatan antara penafsir PHP itu sendiri dan server web. Ini memungkinkan kinerja keseluruhan yang lebih baik di sebagian besar situs web berbasis PHP, tetapi ini membutuhkan konfigurasi tambahan. Anda akan perlu menginstal php-fpm, yang merupakan singkatan dari “PHP fastCGI process manager”, dan menyuruh Nginx untuk meneruskan permintaan PHP ini ke perangkat lunak ini untuk pemrosesan.. Selain itu, Anda akan membutuhkan php-mysql, suatu modul PHP yang mengizinkan PHP untuk berkomunikasi dengan basis data berbasis MySQL. Paket PHP inti akan secara otomatis terinstal sebagai dependensi.

      Untuk menginstal paket php-fpm dan php-mysql, jalankan:

      • sudo apt install php-fpm php-mysql

      Saat diminta, ketik Y dan ENTER untuk mengonfirmasi instalasi.

      Anda sekarang telah menginstal komponen PHP Anda. Selanjutnya, Anda akan mengonfigurasi Nginx untuk menggunakannya.

      Langkah 4 — Mengonfigurasi Nginx untuk Menggunakan Prosesor PHP

      Ketika menggunakan server web Nginx, kita dapat menciptakan blok server (serupa dengan hos virtual di Apache) untuk mengenkapsulasi detail konfigurasi dan menjadi hos untuk lebih dari satu domain pada suatu server tunggal. Dalam panduan ini, kita akan menggunakan your_domain sebagai nama domain contoh. Untuk mempelajari lebih lanjut tentang menyiapkan nama domain dengan DigitalOcean, silakan lihat pengantar DNS DigitalOcean dari kami.

      Pada Ubuntu 20.04, Nginx memiliki satu blok server yang diaktifkan secara asali dan dikonfigurasi untuk menampilkan dokumen dari direktori di /var/www/html. Walaupun ini berjalan baik untuk situs tunggal, tetapi ini dapat menjadi sulit untuk dikelola jika Anda menjadi hos dari beberapa situs. Alih-alih memodifikasi /var/www/html, kita akan menciptakan struktur direktori di dalam /var/www untuk situs web your_domain, dengan membiarkan /var/www/html di tempatnya sebagai direktori asali yang akan ditampilkan jika permintaan klien tidak cocok dengan situs lain apa pun.

      Buat direktori web root untuk your_domain sebagai berikut:

      • sudo mkdir /var/www/your_domain

      Selanjutnya, tetapkan kepemilikan direktori dengan variabel lingkungan $USER, yang akan merujuk pada pengguna sistem Anda saat ini:

      • sudo chown -R $USER:$USER /var/www/your_domain

      Lalu, buka berkas konfigurasi baru dalam direktori sites-available di Nginx dengan menggunakan editor baris perintah yang Anda sukai. Di sini, kita akan menggunakan nano:

      • sudo nano /etc/nginx/sites-available/your_domain

      Ini akan menciptakan berkas kosong yang baru. Tempelkan konfigurasi dasar berikut:

      /etc/nginx/sites-available/your_domain

      server {
          listen 80;
          server_name your_domain www.your_domain;
          root /var/www/your_domain;
      
          index index.html index.htm index.php;
      
          location / {
              try_files $uri $uri/ =404;
          }
      
          location ~ .php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
           }
      
          location ~ /.ht {
              deny all;
          }
      
      }
      
      
      

      Berikut ini adalah apa yang dilakukan oleh masing-masing arahan dan blok lokasi:

      • listen — Menetapkan porta yang akan didengarkan oleh Nginx. Dalam kasus ini, Nginx akan mendengarkan porta 80, porta asali untuk HTTP.
      • root — Menentukan root dokumen di mana berkas yang ditampilkan oleh situs web ini disimpan.
      • index — Menetapkan urutan seperti apa yang akan diprioritaskan oleh Nginx untuk situs web ini. Merupakan suatu praktik umum untuk menempatkan berkas index.html dengan keutamaan lebih tinggi dari berkas index.php untuk memungkinkan penyiapan laman landas pemeliharaan dengan cepat di dalam aplikasi PHP. Anda dapat menyesuaikan pengaturan ini supaya lebih sesuai dengan kebutuhan aplikasi Anda.
      • server_name — Menetapkan nama domain mana dan/atau alamat IP mana yang blok server in akan tanggapi. Mengarahkan arahan ini ke nama domain server atau alamat IP publik server Anda.
      • location / — Blok lokasi pertama mencakup arahan try_files yang memeriksa adanya berkas atau direktori yang cocok dengan permintaan URL. Jika Nginx tidak dapat menemukan sumber daya yang sesuai, kesalahan 404 akan ditampilkan.
      • location ~ .php$ — Blok lokasi ini menangani pemrosesan PHP aktual dengan mengarahkan Nginx ke berkas konfigurasi fastcgi-php.conf dan berkas php7.4-fpm.sock, yang menyatakan soket yang mana yang terasosiasi dengan php-fpm.
      • location ~ /.ht — Blok lokasi terakhir yang menangani berkas .htaccess yang tidak diproses oleh Nginx. Dengan menambahkan arahan deny all, jika ada berkas .htaccess ternyata menemukan jalan ke root dokumen, berkas itu tidak akan disajikan kepada pengunjung.

      Setelah Anda selesai mengedit, simpan dan tutup berkas. Jika menggunakan nano, Anda dapat melakukan itu dengan menekan CTRL+X lalu y dan ENTER untuk mengonfirmasi.

      Aktifkan konfigurasi Anda dengan menautkannya ke berkas konfigurasi dari direktori sites-enabled Nginx:

      • sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

      Ini akan memberi tahu Nginx untuk menggunakan konfigurasi itu saat dimuat ulang untuk kali berikutnya. Anda dapat menguji konfigurasi Anda untuk memeriksa kesalahan sintaks dengan mengetik:

      Jika ada kesalahan yang dilaporkan, kembalilah ke berkas konfigurasi Anda untuk meninjau kontennya sebelum melanjutkan.

      Saat Anda siap, muat ulang Nginx untuk menerapkan perubahan:

      • sudo systemctl reload nginx

      Situs web Anda yang baru kini sudah aktif, tetapi root web /var/www/your_domain masih kosong. Buat berkas index.html di dalam lokasi itu sehingga kita dapat menguji apakah blok server baru Anda bekerja sesuai harapan:

      • nano /var/www/your_domain/index.html

      Sertakan konten berikut di dalam berkas ini:

      /var/www/your_domain/index.html

      <html>
        <head>
          <title>your_domain website</title>
        </head>
        <body>
          <h1>Hello World!</h1>
      
          <p>This is the landing page of <strong>your_domain</strong>.</p>
        </body>
      </html>
      

      Sekarang, buka peramban Anda dan akses nama domain atau alamat IP server Anda, seperti yang tercantum di arahan server_name di dalam berkas konfigurasi blok server Anda:

      http://server_domain_or_IP
      

      Anda akan melihat sebuah laman seperti ini:

      Blok server Nginx

      Jika Anda melihat laman ini, ini berarti blok server Nginx Anda bekerja sesuai harapan.

      Anda dapat meninggalkan berkas ini di lokasinya saat ini sebagai laman landas sementara untuk aplikasi Anda sampai Anda menyiapkan berkas index.php untuk menggantinya. Setelah Anda melakukannya, ingat untuk menghapus atau mengganti nama berkas index.html dari root dokumen Anda, karena berkas ini lebih diutamakan daripada berkas index.php secara asali.

      Tumpukan LEMP Anda kini telah dikonfigurasi dengan sempurna. Pada langkah selanjutnya, kita akan menciptakan skrip PHP untuk menguji apakah Nginx dapat benar-benar menangani berkas .php di dalam situs web Anda yang baru saja dikonfigurasi.

      Langkah 5 — Menguji PHP dengan Nginx

      Tumpukan LEMP Anda sekarang harusnya telah selesai disiapkan. Anda dapat mengujinya untuk memvalidasi apakah Nginx dapat dengan benar menyerahkan berkas .php ke prosesor PHP Anda.

      Anda dapat melakukan ini dengan menciptakan berkas PHP percobaan di dalam root dokumen Anda. Buka berkas baru yang bernama info.php di dalam root dokumen Anda di dalam editor teks Anda:

      • nano /var/www/your_domain/info.php

      Ketik atau tempel baris berikut ke berkas baru. Ini adalah kode PHP yang valid yang akan memberikan informasi tentang server Anda:

      /var/www/your_domain/info.php

      <?php
      phpinfo();
      

      Setelah Anda selesai, simpan dan tutup berkas dengan menekan CTRL+X lalu y dan ENTER untuk mengonfirmasi.

      Anda sekarang dapat mengakses laman ini di peramban web Anda dengan mengunjungi nama domain atau alamat IP publik yang telah Anda atur di dalam berkas konfigurasi Nginx Anda, diikuti dengan /info.php:

      http://server_domain_or_IP/info.php
      

      Anda akan melihat laman web yang berisi informasi detail tentang server Anda:

      PHPInfo Ubuntu 20.04

      Setelah memeriksa informasi yang relevan mengenai server PHP Anda melalui laman itu, saran terbaik untuk Anda adalah hapus berkas yang Anda ciptakan karena berkas tersebut mengandung informasi sensitif tentang lingkungan PHP dan server Ubuntu Anda. Anda dapat menggunakan rm untuk menghapus berkas itu:

      • sudo rm /var/www/your_domain/info.php

      Anda selalu dapat meregenerasi berkas ini jika Anda membutuhkannya nanti.

      Langkah 6 — Menguji Koneksi Basis Data dari PHP (Opsional)

      Jika Anda ingin menguji apakah PHP dapat terhubung ke MySQL dan menjalankan kueri basis data, Anda dapat menciptakan tabel percobaan dengan kueri dan data semu sebagai kontennya dari skrip PHP. Sebelum melakukan itu, kita perlu menciptakan basis data percobaan dan pengguna MySQL baru yang dikonfigurasi dengan benar untuk mengaksesnya.

      Saat menyusun tulisan ini, pustaka PHP MySQL asli mysqlnd tidak mendukung caching_sha2_authentication, metode autentikasi asali untuk MySQL 8. Kita akan perlu menciptakan pengguna baru dengan metode autentikasi mysql_native_password agar dapat terhubung ke basis data MySQL dari PHP.

      Kita akan menciptakan basis data bernama example_database dan pengguna bernama example_user, tetapi Anda dapat mengganti nama-nama ini dengan nilai yang berbeda.

      Pertama, hubungkan ke konsol MySQL menggunakan akun root:

      Untuk menciptakan basis data baru, jalankan perintah berikut dari konsol MySQL:

      • CREATE DATABASE example_database;

      Sekarang Anda dapat menciptakan pengguna baru dan memberikan mereka privilese penuh pada basis data khusus yang baru saja Anda ciptakan.

      Perintah berikut menciptakan pengguna baru bernama example_user, yang menggunakan mysql_native_password sebagai metode autentikasi asali. Kita mendefinisikan kata sandi pengguna ini sebagai password, tetapi Anda harus mengganti nilai ini dengan kata sandi pilihan Anda yang aman.

      • CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

      Sekarang, kita perlu memberikan izin terhadap basis data example_database kepada pengguna ini:

      • GRANT ALL ON example_database.* TO 'example_user'@'%';

      Ini akan memberikan pengguna example_user privilese penuh terhadap basis data example_database database, yang juga mencegah pengguna ini untuk tidak membuat atau memodifikasi basis data lainnya di server Anda.

      Sekarang, keluar dari shell MySQL dengan:

      Anda dapat menguji apakah pengguna baru memiliki izin yang tepat dengan melakukan log masuk ke konsol MySQL lagi, kali ini dengan menggunakan kredensial pengguna khusus:

      Perhatikan tanda -p dalam perintah ini, yang akan meminta Anda kata sandi yang digunakan saat menciptakan pengguna example_user. Setelah log masuk ke konsol MySQL, pastikan Anda memiliki akses ke basis data example_database:

      Ini akan menampilkan keluaran berikut:

      Output

      +--------------------+ | Database | +--------------------+ | example_database | | information_schema | +--------------------+ 2 rows in set (0.000 sec)

      Selanjutnya, kita akan menciptakan tabel percobaan bernama todo_list. Dari konsol MySQL, jalankan pernyataan berikut:

      • CREATE TABLE example_database.todo_list (
      • item_id INT AUTO_INCREMENT,
      • content VARCHAR(255),
      • PRIMARY KEY(item_id)
      • );

      Masukkan beberapa baris konten ke dalam tabel percobaan. Anda mungkin ingin mengulangi perintah selanjutnya beberapa kali lagi, dengan menggunakan nilai yang berbeda:

      • INSERT INTO example_database.todo_list (content) VALUES ("My first important item");

      Untuk memastikan data berhasil tersimpan di tabel, jalankan:

      • SELECT * FROM example_database.todo_list;

      Anda akan melihat keluaran berikut:

      Output

      +---------+--------------------------+ | item_id | content | +---------+--------------------------+ | 1 | My first important item | | 2 | My second important item | | 3 | My third important item | | 4 | and this one more thing | +---------+--------------------------+ 4 rows in set (0.000 sec)

      Setelah memastikan Anda memiliki data yang valid dalam tabel percobaan, Anda dapat keluar dari konsol MySQL:

      Sekarang Anda dapat menciptakan skrip PHP yang akan terhubung ke MySQL dan melakukan kueri untuk konten Anda. Buat berkas PHP baru pada direktori root web khusus Anda menggunakan editor pilihan Anda. Kita akan menggunakan nano untuk itu:

      • nano /var/www/your_domain/todo_list.php

      Skrip PHP berikut terhubung ke basis data MySQL dan melakukan kueri untuk konten tabel todo_list, yang menampilkan hasilnya dalam sebuah daftar. Jika ada masalah dengan koneksi basis data, akan dilakukan pengecualian. Salin konten ini ke skrip todo_list.php:

      /var/www/your_domain/todo_list.php

      <?php
      $user = "example_user";
      $password = "password";
      $database = "example_database";
      $table = "todo_list";
      
      try {
        $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
        echo "<h2>TODO</h2><ol>";
        foreach($db->query("SELECT content FROM $table") as $row) {
          echo "<li>" . $row['content'] . "</li>";
        }
        echo "</ol>";
      } catch (PDOException $e) {
          print "Error!: " . $e->getMessage() . "<br/>";
          die();
      }
      

      Simpan dan tutup berkas setelah Anda selesai mengedit.

      Anda dapat mengakses laman ini di peramban web Anda dengan mengunjungi nama domain atau alamat IP publik yang dikonfigurasi untuk situs web Anda, diikuti dengan /todo_list.php:

      http://server_domain_or_IP/todo_list.php
      

      Anda akan melihat laman seperti ini, yang menunjukkan konten yang telah Anda masukkan ke dalam tabel percobaan Anda:

      Contoh todo list PHP

      Ini berarti lingkungan PHP Anda telah siap terhubung dan berinteraksi dengan server MySQL.

      Kesimpulan

      Dalam panduan ini, kita telah membangun fondasi yang fleksibel untuk menyajikan aplikasi dan situs web PHP kepada pengunjung Anda, dengan menggunakan Nginx sebagai server web dan MySQL sebagai sistem basis data.



      Source link

      Cara Menginstal PostgreSQL pada Ubuntu 20.04 [Mulai Cepat]


      Pengantar

      PostgreSQL, atau Postgres, adalah sistem manajemen basis data relasional yang memberikan penerapan dari bahasa pengkuerian SQL. Sistem ini sesuai dengan standar dan memiliki banyak fitur lanjutan seperti transaksi yang andal dan konkurensi tanpa kunci baca.

      Panduan ini menunjukkan cara cepat untuk segera membuat Postgres aktif dan berjalan pada server Ubuntu 20.04, mulai dari menginstal PostgreSQL hingga menyiapkan pengguna dan basis data baru. Jika Anda lebih menyukai tutorial yang lebih mendalam tentang menginstal dan mengelola basis data PostgreSQL, silakan lihat Cara Menginstal dan Menggunakan PostgreSQL pada Ubuntu 20.04.

      Prasyarat

      Untuk mengikuti tutorial ini, Anda akan membutuhkan satu server Ubuntu 20.04 yang telah dikonfigurasi dengan mengikuti Panduan Penyiapan Server Awal untuk Ubuntu 20.04 dari kami. Setelah menyelesaikan tutorial prasyarat ini, server Anda akan memiliki pengguna non-root dengan izin sudo dan firewall dasar.

      Langkah 1 — Menginstal PostgreSQL

      Untuk menginstal PostgreSQL, segarkan indeks paket lokal server Anda terlebih dahulu:

      Lalu, instal paket Postgres bersama dengan paket -contrib yang menambah beberapa utilitas dan fungsionalitas tambahan:

      • sudo apt install postgresql postgresql-contrib

      Langkah 2 — Menggunakan Peran dan Basis Data PostgreSQL

      Secara asali, Postgres menggunakan konsep yang disebut “peran” untuk menangani autentikasi dan otorisasi. Dalam beberapa hal, hal ini mirip seperti grup dan pengguna bergaya Unix reguler.

      Setelah instalasi, Postgres sudah siap untuk menggunakan autentikasi ident, yang berarti ini mengasosiasikan peran-peran Postgres dengan akun sistem Unix/Linux yang cocok. Jika peran ada di dalam Postgres, nama pengguna Unix/Linux dengan nama yang sama dapat masuk sebagai peran itu.

      Prosedur instalasi menciptakan akun pengguna bernama postgres yang terasosiasi dengan peran Postgres asali. Ada beberapa cara untuk memanfaatkan akun ini untuk mengakses Postgres. Salah satu caranya adalah dengan beralih ke akun postgres di server Anda dengan mengetik:

      Lalu, Anda dapat mengakses prompt Postgres dengan mengetik:

      Ini akan membawa Anda log masuk ke prompt PostgreSQL, dan dari sini Anda akan segera bebas untuk berinteraksi dengan sistem manajemen basis data.

      Untuk keluar dari prompt PostgreSQL, jalankan yang berikut:

      Ini akan membawa Anda kembali ke prompt perintah Linux postgres. Untuk kembali ke pengguna sistem reguler Anda, jalankan perintah exit:

      Cara lain untuk terhubung ke prompt Postgres adalah dengan menjalankan perintah psql sebagai akun postgres secara langsung dengan sudo:

      Ini akan membawa Anda log masuk secara langsung ke Postgres tanpa shell bash perantara di antaranya.

      Sekali lagi, Anda dapat keluar dari sesi Postgres interaktif dengan mengetik:

      Langkah 3 — Menciptakan Peran Baru

      Jika Anda log masuk sebagai akun postgres, Anda dapat menciptakan peran baru dengan mengetik:

      Jika, alih-alih Anda lebih memilih untuk menggunakan sudo untuk setiap perintah tanpa berpindah dari akun normal Anda, ketik:

      • sudo -u postgres createuser --interactive

      Apa pun pilihan Anda, skrip akan memberi Anda beberapa pilihan dan menjalankan perintah Postgres yang benar berdasarkan respons Anda untuk menciptakan pengguna sesuai dengan spesifikasi Anda.

      Output

      Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y

      Langkah 4 — Menciptakan Basis Data Baru

      Asumsi lain yang dibuat oleh sistem autentikasi Postgres secara asali adalah bahwa untuk setiap peran yang digunakan untuk log masuk, peran itu akan memiliki basis data dengan nama yang sama yang dapat diaksesnya.

      Ini berarti bahwa jika pengguna yang Anda ciptakan di bagian terakhir bernama sammy, maka peran itu akan mencoba terhubung ke basis data yang juga bernama “sammy” secara asali. Anda dapat menciptakan basis data yang sesuai dengan perintah createdb.

      Jika Anda log masuk sebagai akun postgres, Anda dapat mengetik sesuatu seperti:

      Jika, alih-alih Anda lebih memilih untuk menggunakan sudo untuk setiap perintah tanpa berpindah dari akun normal Anda, Anda dapat mengetik:

      • sudo -u postgres createdb sammy

      Langkah 5 — Membuka Prompt Postgres dengan Peran Baru

      Untuk log masuk dengan autentikasi berbasis ident, Anda akan membutuhkan pengguna Linux dengan nama yang sama dengan peran dan basis data Postgres Anda.

      Jika Anda tidak memiliki pengguna Linux tersedia yang cocok, Anda dapat menciptakannya dengan perintah adduser. Anda akan harus melakukan ini dari akun non-root Anda dengan privilese sudo (yang berarti, tidak sedang log masuk sebagai pengguna postgres):

      Setelah akun baru ini tersedia, Anda dapat berpindah dan terhubung ke basis data dengan mengetik:

      Atau, Anda dapat melakukannya dalam satu baris ini:

      Perintah ini akan membawa Anda log masuk secara otomatis, dengan asumsi bahwa semua komponen telah dikonfigurasi dengan benar.

      Jika Anda ingin pengguna Anda terhubung ke basis data yang berbeda, Anda dapat melakukannya dengan menetapkan basis datanya seperti ini:

      Setelah log masuk, Anda dapat memeriksa informasi koneksi Anda saat ini dengan mengetik:

      Output

      You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

      Kesimpulan

      Anda sekarang sudah siap dengan PostgreSQL di server Ubuntu 20.04. Jika Anda ingin mempelajari lebih lanjut tentang Postgres dan cara menggunakannya, kami menyarankan Anda untuk membaca panduan berikut:



      Source link