GNU/Linux >> Znalost Linux >  >> Fedora

Jak nainstalovat PostgreSQL a phpPgAdmin na Fedoru 34

PostgreSQL nebo Postgres je výkonný systém správy relačních databází s otevřeným zdrojovým kódem, který využívá a rozšiřuje jazyk SQL. Má mnoho pokročilých funkcí, které bezpečně ukládají a škálují komplikované datové úlohy. phpPgAdmin je aplikace založená na PHP pro správu a úpravu databází PostgreSQL.

Tento tutoriál ukáže, jak nainstalovat PostgreSQL a phpPgAdmin na server založený na Fedora 34.

Předpoklady

  1. Server založený na Fedoře 34.

  2. Udržujte své systémy aktualizované.

    $ sudo dnf update
    
  3. Uživatel bez oprávnění root s právy sudo.

Krok 1 – Instalace PostgreSQL

Fedora 34 přichází s různými verzemi PostgreSQL dostupnými z jejich úložiště. Mezi těmito verzemi si můžete vybrat povolením příslušného modulu, což je kolekce balíčků a závislostí.

Nejprve zkontrolujte dostupné streamy pro postgresql modul pomocí dnf příkaz.

$ 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

Chcete-li nainstalovat PostgreSQL, musíme povolit odpovídající stream modulu.

$ sudo dnf module enable postgresql:13

Po zobrazení výzvy zadejte Y pro aktivaci streamu.

Dále nainstalujte server PostgreSQL.

$ sudo dnf install postgresql-server

Možná budete chtít nainstalovat contrib balíček, který přidává několik dalších funkcí do databázového systému PostgreSQL.

$ sudo dnf install postgresql-contrib

Nyní, když je server nainstalován, musíme vytvořit nového uživatele.

Krok 2 – Vytvoření nového klastru databáze PostgreSQL

Nejprve musíte vytvořit nový databázový cluster PostgreSQL. Databázový cluster je kolekce databází, které jsou spravovány jednou instancí serveru. Vytvořením clusteru se vytvoří adresáře, do kterých bude databáze umístěna. Celý tento proces je také podobný inicializaci PostgreSQL.

Tento proces vytvoří  template1 a postgres databází. template1 Database je šablona, ​​kterou PostgreSQL používá k vytváření nových databází. postgres databáze je výchozí databáze pro použití uživateli, obslužnými programy a aplikacemi třetích stran.

Chcete-li vytvořit databázový cluster pro inicializaci PostgreSQL, použijte následující příkaz.

$ sudo postgresql-setup --initdb

Nyní spusťte službu PostgreSQL.

$ sudo systemctl start postgresql

Povolte službu PostgreSQL.

$ sudo systemctl enable postgresql

Nyní, když je PostgreSQL spuštěn, můžeme vytvářet nové uživatele a databáze a začít je používat.

Krok 3 – PostgreSQL role a metody ověřování

Postgres používá koncept „rolí“ pro zpracování autentizace a oprávnění. PostgreSQL podporuje více metod ověřování. Nejčastěji používané metody jsou:

  • Důvěřovat – Role, která se může připojit bez hesla, pokud jsou splněny podmínky definované v /var/lib/pgsql/pg_hba.conf jsou splněny.
  • Heslo - Role, která k připojení používá heslo. Hesla mohou být uložena jako md5 , scram-sha-256 a čistý text.
  • Identita - Vyžaduje uživatelské jméno operačního systému klienta a je podporováno pouze u připojení TCP/IP.
  • Partner - Stejné jako Ident, ale podporováno pouze u připojení localhost.

Postgres ve výchozím nastavení používá peer ověřování, což znamená, že přiřazuje role Postgres k párování s uživatelským účtem Linuxu. Pokud role v Postgresu existuje, uživatelské jméno Linuxu se stejným jménem se může přihlásit jako tato role. Podrobnosti o ověření klienta jsou uloženy v /var/lib/pgsql/pg_hba.conf soubor.

Proces instalace Postgresu vytvoří uživatelský účet s názvem postgres která je spojena s výchozí rolí Postgres.

Přepněte na postgres účet.

$ sudo -i -u postgres

K výzvě Postgres se dostanete pomocí následujícího příkazu.

$ psql

Tím se přihlásíte do promptu PostgreSQL, kde můžete přistupovat k databázím a používat je pomocí různých příkazů. Výzvu můžete ukončit zadáním:

postgres-# \q

Přenese vás zpět na linuxový účet účtu Postgres. Chcete-li se vrátit zpět ke svému uživatelskému účtu, zadejte exit na výzvu.

Výzvu Postgres můžete také otevřít bez přepínání účtů zadáním následujícího příkazu.

$ sudo -u postgres psql

Chcete-li ukončit výzvu, zadejte:

postgres-# \q

Krok 4 – Vytvoření nových rolí a databází.

Role a databáze můžete vytvářet přímo z bash shellu nebo psql skořápka. Pro naše účely budeme používat psql shell, protože to dělá práci rychleji.

Nejprve se připojte k psql shell.

$ sudo -u postgres psql

Vytvořte novou roli PostgreSQL s oprávněními jako Superuser, Vytvořit databázi, Vytvořit roli a Přihlášení. Tento uživatel bude dále použit ve výukovém programu pro přihlášení do phpPgAdmin .

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

Všechny dostupné uživatele můžete zkontrolovat pomocí následujícího příkazu.

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 | {}

Vytvořte novou databázi.

postgres-# CREATE DATABASE userdb;

Spuštěním následujícího dotazu udělte uživateli oprávnění k databázi, kterou jsme právě vytvořili.

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

Všechny dostupné databáze můžete zkontrolovat pomocí následujícího příkazu.

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)

Krok 5 – Povolení vzdáleného přístupu k serveru PostgreSQL

Server PostgreSQL standardně naslouchá pouze na rozhraní localhost. Chcete-li povolit vzdálený přístup k vašemu PostgreSQL serveru, otevřete postgresql.conf soubor.

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

Přejděte dolů do sekce PŘIPOJENÍ A OVĚŘOVÁNÍ a změňte/upravte následující řádek odstraněním symbolu hash.

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

Změňte řádek na následující.

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

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Dalším krokem je nakonfigurovat server tak, aby přijímal vzdálená připojení, úpravou souboru pg_hba.conf soubor.

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

Přístup ke vzdáleným připojením můžete poskytnout různými způsoby. Vzdálená připojení můžete omezit buď na jednoho uživatele nebo na jednu databázi nebo na všechny, a omezit připojení na každou IP adresu nebo důvěryhodné umístění.

# 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

V souboru jsou také další položky a metoda ověřování pro ně uvedená je ident . Budete muset změnit hodnotu ident na md5 pokud se chcete přihlásit přes webové rozhraní.

Přidejte požadovanou konfiguraci a poté soubor uložte stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Restartujte PostgreSQL server, aby se změna projevila.

$ sudo systemctl restart postgresql

Ověřte změny pomocí ss utility.

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

To ukazuje, že PostgreSQL server naslouchá na výchozím portu na všech rozhraních.

Krok 6 – Instalace phpPgAdmin, Nginx a PHP

phpPgAdmin se obvykle dodává s úložištěm PostgreSQL nebo Fedory, ale ne ve Fedoře 34. Proto jej budete muset nainstalovat ručně. Spolu s phpPgAdmin musíte také nainstalovat webový server Nginx a software PHP.

Stáhněte si nejnovější verzi phpPgAdmin ze stránky vydání Github. V době psaní tohoto návodu je nejnovější dostupná verze 7.13.0.

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

Rozbalte stažený archiv.

$ tar -zxvf phpPgAdmin-7.13.0.tar.gz

Vytvořte adresář, kde bude váš web žít.

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

Přesuňte extrahované soubory do /var/www/phppgadmin/html adresář.

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

Nainstalujte server Nginx a PHP spolu s příslušnými moduly PHP.

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

Nakonfigurujte bránu firewall Fedory.

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

Pro aktivaci pravidel znovu načtěte firewall.

$ sudo firewall-cmd --reload

Konfigurovat PHP

Otevřete soubor /etc/php-fpm.d/www.conf pro úpravy pomocí nano editor .

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

Musíme nastavit unixového uživatele/skupinu PHP procesů na nginx . Najděte user=apache a group=apache řádků v souboru a změňte je na 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
...

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Restartujte proces PHP-fpm.

$ sudo systemctl restart php-fpm

Nakonfigurujte Nginx

Spusťte následující příkaz pro přidání konfiguračního souboru pro váš web.

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

Vložte následující kód do editoru.

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;
  }
}

Stiskněte Ctrl + X zavřete editor a stiskněte Y až budete vyzváni k uložení souboru.

Tento soubor předpokládá, že budeme hostit phppgadmin.example.com v adresáři /var/www/html/phppgadmin .

Otestujte konfiguraci Nginx.

$ sudo nginx -t

Měli byste vidět následující výstup indikující, že vaše konfigurace je správná.

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

Spusťte a povolte službu Nginx.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Spusťte http://phppgadmin.example.com ve vašem prohlížeči a měli byste vidět výchozí stránku phpPgAdmin ve vašem prohlížeči.

Klikněte na PostgreSQL odkaz na levém postranním panelu a zadejte uživatele a heslo, které jste vytvořili dříve, abyste se mohli přihlásit a získat přístup k portálu.

Krok 7 – Instalace SSL (volitelné)

SSL můžeme povolit pomocí služby Let's Encrypt SSL. K tomu si nainstalujte nástroj Certbot.

$ sudo dnf install certbot-nginx

Vygenerujte certifikát SSL.

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

Budete požádáni o vaši e-mailovou adresu a souhlas s podmínkami služby. Když budete požádáni o přístup HTTPS, vyberte metodu Secure pro přesměrování všech požadavků z HTTP na HTTPS.

Měli byste mít přístup k phpPgAdmin zadáním https://phppgadmin.example.com ve vašem prohlížeči.

Konfigurace SSL pro automatické obnovení

Otevřete editor Crontab.

$ EDITOR=nano sudo crontab -e

Vložte následující řádek do spodní části.

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

25 2 * * * část tohoto řádku znamená „spustit následující příkaz ve 2:25 každý den“. Můžete si vybrat kdykoli.

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Váš certifikát SSL bude automaticky obnoven.

Závěr

Tímto končí náš tutoriál o tom, jak nainstalovat PostgreSQL a phpPgAdmin na server založený na Fedoře 34. Pokud máte nějaké dotazy, napište je do komentářů níže.


Fedora
  1. Jak nainstalovat a nakonfigurovat Postgres 14 na Fedoře 34

  2. Jak nainstalovat a nakonfigurovat Ansible na Fedoře 35

  3. Jak nainstalovat Python 2 a Python 3 na Fedoru 35

  1. Jak nainstalovat PostgreSQL a phpPgAdmin na OpenSUSE Leap 42.1

  2. Jak nainstalovat Postgresql a phpPgAdmin na Ubuntu 15.04

  3. Jak nainstalovat a nakonfigurovat Mariadb ve Fedoře 35

  1. Jak stáhnout a nainstalovat PostgreSQL na Windows

  2. Jak nainstalovat PostgreSQL na Ubuntu 20.04

  3. Jak nainstalovat PostgreSQL na Debian 10