Instalação do Postgres 9.4 no CentOS 6 / 7 e phpPgAdmin

Neste post será apresentado como instalar o postgres 9.4 através do seu repositório.

1) Instalação do repositório :

CentOS 6 x64

rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm

CentOS 7

rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm

2) Instalando o banco

yum install postgresql94-server postgresql94-contrib

3) Iniciando e habilitando o serviço no boot

CentOS 6

service postgresql-9.4 initdb
service postgresql-9.4 start
chkconfig postgresql-9.4 on

CentOS 7

/usr/pgsql-9.4/bin/postgresql94-setup initdb
systemctl enable postgresql-9.4
systemctl start postgresql-9.4

4) Configurando o Iptables / Firewalld e SELinux

Configuração do Iptables :

vim /etc/sysconfig/iptables

Adicione as linhas :

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Restarte o serviço :

service iptables restart

Configuração do Firewalld:

firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

Configuração do SELINUX :

setsebool -P httpd_can_network_connect_db 1

5) Configurando o Postgres:

Acesse o prompt do postgres:

su - postgres
psql

Altere a senha do usuário postgres:

postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# \q

Instale o PostgreSQL Adminpack chamado o comando abaixo no prompt:

postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION

Crie o usuário , role e database:

Entre no prompt do usuário postgres:
su - postgres

Crie o usuário admindb :

$ createuser admindb

Crie o banco phppg :

$ createdb phppg

Entre no banco :

$ psql
psql (9.4.0)
Type "help" for help.

postgres=# alter user admindb with encrypted password 'centos';
ALTER ROLE

postgres=# grant all privileges on database phppg to admindb;
GRANT
postgres=#

6) Definindo acesso e autenticação via md5

Altere o arquivo /var/lib/pgsql/9.4/data/pg_hba.conf conforme apresentado abaixo :

10.0.5.0/24 é a rede autorizada para conseguir chegar no banco.

[...]
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             10.0.5.0/24        md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
[...]

Restart o serviço :

Centos 6

service postgresql-9.4 restart

Centos 7

systemctl restart postgresql-9.4

7) Configurando o PhpPGAdmin :

Instale o epel release:

yum install epel-release

Agora instale o PHPPgAdmin :

yum install phpPgAdmin httpd

vá no arquivo /etc/httpd/conf.d/phpPgAdmin.conf e altere para que fique igual ao meu exemplo:


Alias /phpPgAdmin /usr/share/phpPgAdmin

<Location /phpPgAdmin>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
#Require host example.com
</IfModule>
<IfModule !mod_authz_core.c>

Restarte o Apache :

Restart o serviço :

Centos 6

service httpd restart

Centos 7

systemctl restart httpd

Após a configuração acesse :

http://10.0.5.101/phpPgAdmin/

Captura de Tela 2015-03-18 às 20.45.05

Translate »