Linux - instalace a nastavení Nginx, PostgreSQL a phpPgAdmin
Modelová situace: Máme Linux Ubuntu server a chceme na něm nainstalovat a zprovoznit webserver Nginx s databázovým serverem PostgreSQL včetně webové správy phpPgAdmin.
Instalaci a nastavení webserveru Nginx jsme se věnovali již v systémovém dotazu:
Linux - instalace a nastavení Nginx, PHP a MySQL (LEMP) .
Toto je pokračování kdy nastavíme PostgreSQL a phpPgAdmin:
#instalace PostgreSQL
#spuštění PostgreSQL
#po spuštění PostgreSQL se může objevit chyba
- lze jí vyřešit např. příkazem
#instalace phppgadmin
#nastaveni nginx virtualhostu pro phppgadmin na portu 82
#symlink do sites-enabled
#povolení portu 82 ve firewalld
#instalace PDO ovladače do PHP
#vyzkoušet připojení k databázi PostgreSQL
#založení uživatele user3 do PostgreSQL
#založení databáze mydb do PostgreSQL pro user3
#připojení k mydb jako uživatel user3
-----------------------------------------------------------------------------------------------
Starší článek věnovaný PostgreSQL:
PostgreSQL - vytvoření databáze, uživatele a oprávnění
ODPOVĚĎ
Instalaci a nastavení webserveru Nginx jsme se věnovali již v systémovém dotazu:
Linux - instalace a nastavení Nginx, PHP a MySQL (LEMP) .
Toto je pokračování kdy nastavíme PostgreSQL a phpPgAdmin:
#instalace PostgreSQL
apt install postgresql postgresql-contrib
#spuštění PostgreSQL
/usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start
#po spuštění PostgreSQL se může objevit chyba
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.
pg_ctl: could not open PID file "/var/lib/postgresql/10/main/postmaster.pid": Permission denied
- lze jí vyřešit např. příkazem
service postgresql start
(či systemctl start postgresql
)#instalace phppgadmin
apt install phppgadmin
#nastaveni nginx virtualhostu pro phppgadmin na portu 82
vim /etc/nginx/sites-available/phppgadmin
server {
listen 82;
root /usr/share/phppgadmin;
index index.php index.html index.htm index.nginx-debian.html;
#server_name phppgadmin;
location / {
try_files $uri $uri/ =404;
client_max_body_size 100M;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
#symlink do sites-enabled
ln -s /etc/nginx/sites-available/phppgadmin /etc/nginx/sites-enabled/
#povolení portu 82 ve firewalld
firewall-cmd --zone=public --permanent --add-port=82/tcp
firewall-cmd --reload
systemctl reload nginx
#instalace PDO ovladače do PHP
apt install php-pgsql
systemctl reload nginx
#vyzkoušet připojení k databázi PostgreSQL
sudo -i -u postgres
psql
\q
#konec#založení uživatele user3 do PostgreSQL
sudo -i -u postgres
createuser --interactive -P user3
heslo
n
y
n
#založení databáze mydb do PostgreSQL pro user3
createdb -O user3 mydb
#připojení k mydb jako uživatel user3
psql -U user3 -h 127.0.0.1 mydb
-----------------------------------------------------------------------------------------------
Starší článek věnovaný PostgreSQL:
PostgreSQL - vytvoření databáze, uživatele a oprávnění