PostgreSQL (la maggior parte delle persone lo chiama Postgres) è un sistema avanzato di gestione di database relazionali a oggetti (ORDBMS). Postgres è un server di database open source con oltre 18 anni di sviluppo attivo che rende Postgres la scelta migliore per applicazioni di classe enterprise.
Postgresql è multipiattaforma e funziona su molti sistemi operativi come Linux, OSX, Windows e la famiglia BSD. È la scelta giusta quando si dispone di un'applicazione con carichi di lavoro di database di grandi dimensioni. Postgres è stato utilizzato da molte grandi organizzazioni tra cui Yahoo, Instagram e Disqus. Postgres è offerto anche come software as a service (SaaS) da ad es. Heroku e AWS (Amazon Web Services).
In questo tutorial, ti mostrerò come installare Postgres sul tuo server con OpenSUSE Leap come sistema operativo. Quindi installerò phpPgAdmin in modo da poter gestire il nostro database Postgres dal browser web.
Prerequisito
- OpenSUSE Leap 42.1
- Privilegi di root
Passaggio 1:installa PostgreSQL
Il repository openSUSE contiene due versioni di Postgres. In questo passaggio, installeremo PostgreSQL 9.4 su openSUSE con il comando zypper.
Installa PostgreSQL con zypper:
zypper in postgresql94 postgresql94-contrib postgresql94-server
Avvia postgresql con systemctl:
systemctl start postgresql
Passaggio 2:configurazione dell'utente predefinito
In questo passaggio, imposteremo una password per l'utente postgres. Postgresql utilizza un concetto simile al sistema utente Linux chiamato "ruolo" per l'autenticazione e l'autorizzazione di base. Per impostazione predefinita, postgresql crea un nuovo utente chiamato "postgres" per gestire il server postgresql.
Facciamo il primo passo per configurare il database postgresql accedendo all'utente postgres dal terminale:
sudo su
su - postgres
Ora useremo il comando psql. psql è il front-end della riga di comando per PostgreSQL, possiamo eseguire direttamente query PostgreSQL da esso.
psql
Dalla shell di psql, possiamo cambiare la password dell'utente "postgres" con il comando "password" qui sotto:
\password postgres
New Password:
Inserisci la tua nuova password per l'utente postgres.
Passaggio 3:crea un nuovo utente PostgreSQL
In questo passaggio creeremo un nuovo utente/ruolo con privilegi di superutente, creeremo un nuovo database e concederemo all'utente l'accesso.
Per creare un nuovo utente, dobbiamo accedere come utente postgres, quindi creare un nuovo ruolo e database con il comando seguente:
su - postgres
createuser -s nano
createdb nano_db
Nota:
L'opzione -s viene utilizzata per assegnare al nuovo utente i privilegi di superutente.
nano è il nuovo nome utente.
nano_db è il nuovo nome del database.
Ora accedi alla shell postgresql psql e dai una password al nostro nuovo ruolo e concedi l'accesso al database.
psql
alter user nano with encrypted password '[email protected]';
grant all privileges on database nano_db to nano;
Userò qui la password "[email protected]" per l'utente nano e concederò i privilegi al database nano_db.
Questo utente verrà utilizzato per accedere a postgresql dall'interfaccia phpPgAdmin basata sul Web perché non dovremmo consentire a nessun utente predefinito o utente senza una password di accedere a postgresql da phpPgAdmin.
Fase 4 - Configura PostgreSQL
In questo passaggio, configureremo PostgreSQL per l'ascolto sull'IP pubblico in modo da poterlo accedere con strumenti di modellazione DB in remoto dal nostro computer desktop. Puoi saltare questo passaggio se non desideri accedere a Postgres in remoto.
Vai alla directory postgresql "/var/lib/pgsql/" e modifica il file di configurazione principale "postgresql.conf" con il tuo editor preferito:
cd /var/lib/pgsql/
cd data/
vim postgresql.conf
Decommenta la riga 59 e cambia il valore da localhost a "*".
Decommentare la riga 63 per configurare la porta predefinita.
listen_addresses = '*'
port = 5432
Salva il file ed esci dall'editor.
Per consentire l'accesso dall'applicazione web phpPgAdmin al database PostgreSQL, dobbiamo modificare il file pg_hba.conf e modificare alcune impostazioni di configurazione.
Modifica il file "pg_hba.conf" con vim:
vim pg_hba.conf
Alla fine della riga, cambia la configurazione per l'autenticazione in md5:
#TYPE Database User Address Method
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Se vuoi consentire nuove connessioni dall'esterno del server come usando PgAdmin3, puoi aggiungere più record "host", ad es. per l'IP del tuo desktop.
Salva ed esci.
Ora riavvia il servizio PostgreSQL con il comando systemctl:
systemctl restart postgresql
Fase 5 - Installa e configura phpPgAdmin
phpPgAdmin è un'applicazione basata sul web per gestire i database PostgreSQL. Si basa su PHP e fornisce una GUI per gestire i database e creare ruoli. In questo passaggio installeremo phpPgAdmin e poiché è accessibile dal browser web utilizzeremo apache2 come server web.
Installa phpPgAdmin con questo comando zypper:
zypper in phpPgAdmin
Il comando installerà automaticamente le dipendenze PHP e il server web apache.
Quindi, vai alla directory phpPgAdmin e modifica il file di configurazione config.inc.php.
cd /etc/phpPgAdmin/
vim config.inc.php
Nella riga di configurazione dell'host 18, impostare il valore su "localhost".
$conf['servers'][0]['host'] = 'localhost';
Se desideri consentire a un utente con nome "postgres" o "root" di accedere a postgresql con phpPgAdmin, puoi impostare la sicurezza aggiuntiva su false, ma non è consigliabile impostarla false. controlla la riga 93.
$conf['extra_login_security'] = true;
Salva ed esci.
Quindi attiva il PHP e l'estensione della versione in apache poiché sono necessari a phpPgAdmin:
a2enmod php5
a2enmod version
Ora riavvia tutti i servizi con il comando systemctl:
systemctl restart postgresql
systemctl restart apache2
Fase 6 - Test
Accedi a phpPgAdmin dal browser web con l'URL:
http://192.168.1.101/phpPgAdmin/
Accedi con utente nano e password '[email protected]'.
se accedi con l'utente 'postgres' e la password corretta, non è consentito.