GNU/Linux >> Belajar Linux >  >> Fedora

Cara Menginstal PostgreSQL dan phpPgAdmin di Fedora 34

PostgreSQL atau Postgres adalah sistem manajemen basis data relasional sumber terbuka yang kuat yang menggunakan dan memperluas bahasa SQL. Ini memiliki banyak fitur canggih yang dengan aman menyimpan dan menskalakan beban kerja data yang rumit. phpPgAdmin adalah aplikasi berbasis PHP untuk mengelola dan mengedit database PostgreSQL.

Tutorial ini akan menunjukkan cara menginstal PostgreSQL dan phpPgAdmin pada server berbasis Fedora 34.

Prasyarat

  1. Server berbasis Fedora 34.

  2. Selalu perbarui sistem Anda.

    $ sudo dnf update
    
  3. Pengguna non-root dengan hak istimewa sudo.

Langkah 1 - Instal PostgreSQL

Fedora 34 hadir dengan berbagai versi PostgreSQL yang tersedia dari repositori mereka. Anda dapat memilih di antara versi ini dengan mengaktifkan modul yang sesuai, yang merupakan kumpulan paket dan dependensi.

Pertama, periksa aliran yang tersedia untuk postgresql modul menggunakan dnf perintah.

$ dnf module list postgresql
Name                        Stream                  Profiles                           Summary
postgresql                  9.6                     client, server [d]                 PostgreSQL module
postgresql                  10                      client, server [d]                 PostgreSQL module
postgresql                  11                      client, server [d]                 PostgreSQL module
postgresql                  12                      client, server                     PostgreSQL module
postgresql                  13                      client, server                     PostgreSQL module

Untuk menginstal PostgreSQL, kita perlu mengaktifkan aliran modul yang sesuai.

$ sudo dnf module enable postgresql:13

Saat diminta, masukkan Y untuk mengaktifkan streaming.

Selanjutnya, instal server PostgreSQL.

$ sudo dnf install postgresql-server

Anda mungkin ingin menginstal contrib package, yang menambahkan beberapa fitur tambahan ke sistem database PostgreSQL.

$ sudo dnf install postgresql-contrib

Setelah server terinstal, kita perlu membuat pengguna baru.

Langkah 2 - Buat Cluster Database PostgreSQL baru

Pertama, Anda perlu membuat cluster database PostgreSQL baru. Sebuah cluster database adalah kumpulan database yang dikelola oleh satu contoh server. Membuat cluster akan membuat direktori di mana database akan ditempatkan. Seluruh proses ini juga mirip dengan inisialisasi PostgreSQL.

Proses ini membuat  template1 dan postgres database. template1 database adalah template yang digunakan oleh PostgreSQL untuk membuat database baru. postgres database adalah database default untuk digunakan oleh pengguna, utilitas, dan aplikasi pihak ketiga.

Untuk membuat cluster database untuk menginisialisasi PostgreSQL, gunakan perintah berikut.

$ sudo postgresql-setup --initdb

Sekarang, mulai layanan PostgreSQL.

$ sudo systemctl start postgresql

Aktifkan layanan PostgreSQL.

$ sudo systemctl enable postgresql

Setelah PostgreSQL aktif dan berjalan, kita dapat membuat pengguna dan database baru dan mulai menggunakannya.

Langkah 3 - Peran PostgreSQL dan Metode Otentikasi

Postgres menggunakan konsep "peran" untuk menangani otentikasi dan izin. PostgreSQL mendukung beberapa metode otentikasi. Metode yang paling umum digunakan adalah:

  • Kepercayaan - Peran yang dapat terhubung tanpa sandi, selama kondisi ditentukan di /var/lib/pgsql/pg_hba.conf terpenuhi.
  • Sandi - Peran yang menggunakan kata sandi untuk terhubung. Kata sandi dapat disimpan sebagai md5 , scram-sha-256 dan teks yang jelas.
  • Identitas - Ini memerlukan nama pengguna OS klien dan hanya didukung pada koneksi TCP/IP.
  • Rekan - Sama seperti Ident tetapi hanya didukung pada koneksi localhost.

Postgres menggunakan otentikasi rekan secara default, yang berarti mengaitkan peran Postgres dengan pencocokan akun pengguna Linux. Jika ada peran di dalam Postgres, nama pengguna Linux dengan nama yang sama dapat masuk sebagai peran itu. Detail autentikasi klien disimpan di /var/lib/pgsql/pg_hba.conf berkas.

Proses instalasi Postgres membuat akun pengguna bernama postgres yang terkait dengan peran default Postgres.

Beralih ke postgres akun.

$ sudo -i -u postgres

Anda dapat mengakses prompt Postgres menggunakan perintah berikut.

$ psql

Ini akan memasukkan Anda ke prompt PostgreSQL, di mana Anda dapat mengakses dan menggunakan database melalui berbagai perintah. Anda dapat keluar dari prompt dengan mengetik:

postgres-# \q

Ini akan membawa Anda kembali ke akun Linux akun Postgres. Untuk keluar kembali ke akun pengguna Anda sendiri, ketik exit saat diminta.

Anda juga dapat mengakses prompt Postgres tanpa berpindah akun dengan mengetikkan perintah berikut.

$ sudo -u postgres psql

Untuk keluar dari prompt, ketik:

postgres-# \q

Langkah 4 - Membuat peran dan database baru.

Anda dapat membuat peran dan database langsung dari bash shell atau psql kerang. Untuk tujuan kami, kami akan menggunakan psql shell karena melakukan pekerjaan lebih cepat.

Pertama, sambungkan ke psql cangkang.

$ sudo -u postgres psql

Buat peran PostgreSQL baru dengan izin seperti Superuser, Buat database, Buat peran, dan Login. Pengguna ini akan digunakan lebih lanjut dalam tutorial untuk masuk ke phpPgAdmin .

postgres-# CREATE ROLE username WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'yourpassword';

Anda dapat memeriksa semua pengguna yang tersedia dengan perintah berikut.

postgres-# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 username  | Superuser, Create role, Create DB                          | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Buat database baru.

postgres-# CREATE DATABASE userdb;

Berikan hak istimewa kepada pengguna di database yang baru saja kita buat dengan menjalankan kueri berikut.

postgres-# GRANT ALL PRIVILEGES ON DATABASE userdb TO username;

Anda dapat memeriksa semua database yang tersedia dengan perintah berikut.

postgres-# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 userdb    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres         +
           |          |          |             |             | postgres=CTc/postgres+
           |          |          |             |             | navjot=CTc/postgres
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

Langkah 5 - Aktifkan akses jarak jauh ke server PostgreSQL

Secara default, server PostgreSQL hanya mendengarkan pada antarmuka localhost. Untuk mengaktifkan akses jarak jauh ke server PostgreSQL Anda, buka postgresql.conf berkas.

$ sudo nano /var/lib/pgsql/data/postgresql.conf

Gulir ke bawah ke bagian CONNECTIONS AND AUTHENTICATION dan ubah/edit baris berikut dengan menghapus simbol hash.

#listen_addresses = 'localhost'         # what IP address(es) to listen on;

Ubah baris menjadi berikut.

listen_addresses = '*' 			        # what IP address(es) to listen on;

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Langkah selanjutnya adalah mengkonfigurasi server untuk menerima koneksi jarak jauh dengan mengedit pg_hba.conf berkas.

$ sudo nano /var/lib/pgsql/data/pg_hba.conf

Ada berbagai cara Anda dapat memberikan akses ke koneksi jarak jauh. Anda dapat membatasi koneksi jarak jauh ke satu pengguna atau database tunggal atau semuanya dan membatasi koneksi ke setiap alamat IP atau lokasi tepercaya.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             john            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    johndb          john            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.110) without a password
host    all             john            192.168.1.110            trust

Ada entri lain dalam file juga, dan metode otentikasi yang terdaftar untuk mereka adalah ident . Anda perlu mengubah nilai ident ke md5 jika Anda ingin masuk melalui antarmuka web.

Tambahkan konfigurasi yang diperlukan lalu simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Mulai ulang server PostgreSQL agar perubahan diterapkan.

$ sudo systemctl restart postgresql

Verifikasi perubahan dengan ss utilitas.

$ ss -nlt | grep 5432
LISTEN   0    128    0.0.0.0:5432    0.0.0.0:*       
LISTEN   0    128    [::]:5432      [::]:*  

Ini menunjukkan bahwa server PostgreSQL mendengarkan port default di semua antarmuka.

Langkah 6 - Instal phpPgAdmin, Nginx, dan PHP

phpPgAdmin biasanya dikirimkan dengan repositori PostgreSQL atau Fedora tetapi tidak di Fedora 34. Oleh karena itu, Anda perlu menginstalnya secara manual. Selain phpPgAdmin, Anda juga perlu menginstal server web Nginx dan perangkat lunak PHP.

Download phpPgAdmin versi terbaru dari halaman rilis Github. Pada saat penulisan tutorial ini, versi terbaru yang tersedia adalah 7.13.0.

$ wget https://github.com/phppgadmin/phppgadmin/releases/download/REL_7-13-0/phpPgAdmin-7.13.0.tar.gz

Ekstrak arsip yang diunduh.

$ tar -zxvf phpPgAdmin-7.13.0.tar.gz

Buat direktori tempat situs Anda akan tinggal.

$ sudo mkdir /var/www/phppgadmin/html -p

Pindahkan file hasil ekstrak ke /var/www/phppgadmin/html direktori.

$ sudo mv phpPgAdmin-7.13.0/ /var/www/phppgadmin/html

Instal server Nginx dan PHP bersama dengan modul PHP yang sesuai.

$  sudo dnf install nginx php-fpm php-cli php-pgsql php-mbstring

Konfigurasi firewall Fedora.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Muat ulang firewall untuk mengaktifkan aturan.

$ sudo firewall-cmd --reload

Konfigurasi PHP

Buka file /etc/php-fpm.d/www.conf untuk mengedit menggunakan nano editor .

$ sudo nano /etc/php-fpm.d/www.conf

Kita perlu mengatur pengguna/grup proses PHP Unix ke nginx . Temukan user=apache dan group=apache baris dalam file dan ubah ke nginx.

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Mulai ulang proses PHP-fpm.

$ sudo systemctl restart php-fpm

Konfigurasi Nginx

Jalankan perintah berikut untuk menambahkan file konfigurasi untuk situs Anda.

$ sudo nano /etc/nginx/conf.d/phppgadmin.conf

Rekatkan kode berikut di editor.

server {
  listen          *:80;
  server_name     phppgadmin.example.com;
  root            /var/www/phppgadmin/html;
  index           index.php;

  location / {
    try_files   $uri $uri/ =404;
  }
    
  access_log /var/log/nginx/phppgadmin.access.log;
  error_log /var/log/nginx/phppgadmin.error.log;

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass  unix:/run/php-fpm/www.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
    include  fastcgi_params;
  }
}

Tekan Ctrl + X untuk menutup editor dan tekan Y saat diminta untuk menyimpan file.

File ini mengasumsikan bahwa kita akan menghosting phppgadmin.example.com di direktori /var/www/html/phppgadmin .

Uji konfigurasi Nginx.

$ sudo nginx -t

Anda akan melihat output berikut yang menunjukkan konfigurasi Anda benar.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Mulai dan aktifkan layanan Nginx.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Luncurkan http://phppgadmin.example.com di browser Anda, dan Anda akan melihat halaman phpPgAdmin default di browser Anda.

Klik pada PostgreSQL tautan di bilah sisi kiri dan masukkan pengguna dan kata sandi yang Anda buat sebelumnya untuk masuk dan mengakses portal.

Langkah 7 - Instal SSL (Opsional)

Kita dapat mengaktifkan SSL menggunakan layanan Let's Encrypt SSL. Untuk itu, instal alat Certbot.

$ sudo dnf install certbot-nginx

Buat sertifikat SSL.

$ sudo certbot --nginx -d phppgadmin.example.com

Anda akan dimintai alamat email Anda dan untuk menyetujui persyaratan layanan. Saat dimintai akses HTTPS, pilih metode Aman untuk mengalihkan semua permintaan dari HTTP ke HTTPS.

Anda seharusnya dapat mengakses phpPgAdmin dengan mengetik https://phppgadmin.example.com di browser Anda.

Konfigurasikan SSL untuk Pembaruan Otomatis

Buka editor Crontab.

$ EDITOR=nano sudo crontab -e

Rekatkan baris berikut di bagian bawah.

. . .
25 2 * * * /usr/bin/certbot renew --quiet

25 2 * * * bagian dari baris ini berarti "jalankan perintah berikut pada pukul 2:25 pagi, setiap hari". Anda dapat memilih kapan saja.

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Sertifikat SSL Anda akan diperpanjang secara otomatis.

Kesimpulan

Ini menyimpulkan tutorial kami tentang cara menginstal PostgreSQL dan phpPgAdmin di server berbasis Fedora 34. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Fedora
  1. Cara Menginstal PostgreSQL dan phpPgAdmin di OpenSUSE Leap 42.1

  2. Cara Menginstal Postgresql dan phpPgAdmin di Ubuntu 15.04

  3. Cara menginstal dan Konfigurasi Mariadb di Fedora 35

  1. Cara Menginstal dan Mengonfigurasi Postgres 14 di Fedora 34

  2. Cara Menginstal dan Mengonfigurasi Ansible di Fedora 35

  3. Cara Menginstal Python 2 dan Python 3 di Fedora 35

  1. Cara Mengunduh dan Menginstal PostgreSQL di Windows

  2. Cara Menginstal PostgreSQL di Ubuntu 20.04

  3. Cara Menginstal PostgreSQL di Debian 10