Instalando e configurando postgreSQL em banco de dados dedicado

De Wiki Integrator do Brasil
Ir para: navegação, pesquisa
Banner-wiki-promocoes.gif

Índice

Introdução

Neste tutorial a seguir, iremos mostrar a instalação e configuração de uma maquina de banco de dados dedicado para uso do PostgreSQL.

O que sera instalado:

  • PostgreSQL
  • PHP
  • NGINX
  • PHPPGADMIN

Antes de começar

Algumas maquinas centOS podem não conter todos os comandos utilizados no tutorial. Instale alguns necessários assim:

yum install wget -y
yum install unzip -y


Instalando o PostgreSQL

1. No endereço abaixo, vamos escolher a versão do postgres desejada. Neste tutorial seguiremos o padrão da versão 9.6.

Versões - https://download.postgresql.org/pub/repos/yum

1.1. Instalando o pacote RPM da versão escolhida:

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat-repo-42.0-9.noarch.rpm

1.2. Instalando os pacotes postgresql, postgresql-server, postgresql-contrib e postgresql-libs

yum install postgresql96 postgresql96-server postgresql96-contrib postgresql96-libs
Alt text

2. Inicializando o initdb:

/usr/pgsql-9.6/bin/postgresql96-setup initdb

2.1. Iniciando o postgreSQL:

service postgresql-9.6 start

2.2. Confirme se o postgresql foi iniciado:

service postgresql-9.6 status
Alt text

Configurando o PostgreSQL

Definindo uma senha para o postgresql

1. Entre no postgres:

sudo -u postgres psql -U postgres template1

2. Use o comando abaixo para definir sua senha:

ALTER USER postgres WITH PASSWORD 'SUA_SENHA_AQUI';


IMPORTANTE: Saiba que o método de senha pode haver mudanças em versões mais atuais.


Criando os atalhos necessarios

1. Crie os atalhos abaixo para configuração do postgreSQL onde sera armazenado os bancos de dados:

ln -s /var/lib/pgsql/9.6/data /var/lib/pgsql
ln -s /var/lib/pgsql/9.6/backups /var/lib/pgsql


Configurando o acesso remoto

1. Acesse o arquivo abaixo:

PS: Utilizaremos o comando vi para editar arquivos neste exemplo.

vi /var/lib/pgsql/9.6/data/pg_hba.conf

1.1. Adicione no final do arquivo o conteudo abaixo:

local all all        md5   
host all all  127.0.0.1   255.255.255.255   md5   
host    all         all         0.0.0.0/0             md5
host    all         all         ::1/128               md5


2. Por fim, precisamos editar tambem o arquivo abaixo e adicionar o coringa ( * ) para liberação remota:

vi /var/lib/pgsql/9.6/data/postgresql.conf

2.1. Adicione a linha abaixo no arquivo:

listen_addresses = '*'

3. Para as mudanças entrarem em vigor, reinicie o banco de dados PostgreSQL:

service postgresql-9.6 restart


Instalando e configurando o PHP

1. Adicione os repositorios REMI e EPEL:

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

2. Instale o pacote yum-utils e ative o php na versão desejada. Neste tutorial usaremos a versão 7.4:

sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php74

3. Atualize o sistema e instale o PHP 7.4 ( este processo pode demorar um pouco ):

sudo yum update
sudo yum install php php-cli

4. Confirme a versão instalada:

php -v

5. Por fim, instale alguns dos pacotes PHP necessários:

yum install --skip-broken php-curl php-idn php-pear php-imagick php-mcrypt php-memcache php-mbstring php-ming php-ps php-pspell php-recode php-snmp php-sqlite php-tidy php-xmlrpc php-xsl mcrypt nano php-pgsql php-fpm proftpd


Instalando e configurando NGINX

1. Habilite o repositorio oficial do NGINX

echo '[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1' >> /etc/yum.repos.d/nginx.repo

2. Instale o nginx:

yum install nginx

PS: Se necessario utilize --skip-broken para evitar erros de dependencias.

2.1 Inicie o nginx:

service nginx start

3. Inicialmente, precisamos adicionar um usuario no sistema no qual servirá de configuração do nginx e FTP:


3.1 Adicionando usuário:

adduser USUARIO

3.2 Configurando uma senha ( após o comando abaixo, sera solicitado uma senha para o usuario):

passwd USUARIO


Configurando o PHP-FPM para trabalhar com nginx

1. Faça o backup do arquivo padrão:

mv  /etc/php-fpm.d/www.conf  /etc/php-fpm.d/www.conf.bk

1.1 Crie um novo arquivo limpo:

vi /etc/php-fpm.d/www.conf

1.2. Adicione o conteudo abaixo no arquivo, lembrando que deve alterar o campo USUARIO para o usuario que criou anteriormente:

; Start a new pool named 'www'.
[www]


listen = /var/run/php5-fpm.sock

listen.allowed_clients = 127.0.0.1



listen.owner = nginx
listen.group = nginx
listen.mode = 0660


user = USUARIO
group = USUARIO


pm = dynamic


pm.max_children = 30


pm.start_servers = 2


pm.min_spare_servers = 2


pm.max_spare_servers = 20
 

;pm.max_requests = 500


slowlog = /var/log/php-fpm/www-slow.log
 

php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on


php_value[session.save_handler] = files
php_value[session.save_path]    = /tmp
php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache


Configurando nginx

1. Faça backup do arquivo padrão:

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bk

1.1 Crie um novo arquivo limpo:

vi  /etc/nginx/conf.d/default.conf

1.2 Adicione o conteudo abaixo no arquivo, lembrando que deve alterar o campo USUARIO para o usuario que criou anteriormente:


server {
    listen       80 default_server;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
    client_max_body_size 25M;

    root /home/USUARIO/public_html;

        index  index.php index.html index.htm;

                try_files $uri $uri/ /index.php?$args;

        }


    location ~ \.php$ {
        root    /home/USUARIO/public_html;

           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass unix:/var/run/php5-fpm.sock;
           fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
           include fastcgi_params;
    }



    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ /\.ht {
        deny  all;
    }
}


Criando diretorio public_html para servir o nginx

1. Inicialemnte, vamos remover da maquina serviços que não serão utilizados, padrão do centOS:

chkconfig httpd off
yum remove httpd -y
chkconfig sendmail off
yum remove sendmail -y

2. Em seguida, vamos criar as session para o PHP e dar as permissões corretas:

mkdir -p /var/lib/php/session
chown root.nginx  /var/lib/php/session
chmod 777 /var/lib/php/session
ls -la /var/lib/php/session


3. Criando diretorio public_html para servir NGINX e serviços na web ( Lembrando que USUARIO é sempre o usuario que criamos para o sistema):

mkdir /home/USUARIO/public_html
chmod 755 /home/USUARIO


4. Por fim, vamos iniciar o PHP-FPM, NGINX e PROFTPD:

service php-fpm start
service nginx start
service proftpd start


Instalando phpPgAdmin para trabalhar com PostgreSQL

1. Inicialmente, vamos entrar no diretorio public_html criado para servir o phpPgAdmin na web:

Lembre-se de substituir sempre o USUARIO pelo seu criado anteriormente.


cd /home/USUARIO/public_html/

2. Baixando phpPgAdmin. Em nosso exemplo iremos baixar a versão 5.6:

wget -O php-pg-admin.tar.gz https://github.com/phppgadmin/phppgadmin/archive/REL_5-6-0.tar.gz

3. Descompacte o tar baixado:

tar -xf php-pg-admin.tar.gz

4. Vamos renomear o diretorio para php-pg-admin:

mv phppgadmin-REL_5-6-0 php-pg-admin


5. Por fim, faremos uma cópia do arquivo de configuração do phpPgAdmin e vamos retirar a senha pré-definida para login no phpPgAdmin:


COPIANDO:

cp -p /home/USUARIO/public_html/php-pg-admin/conf/config.inc.php-dist /home/USUARIO/public_html/php-pg-admin/conf/config.inc.php 


Removendo segurança de login padrão do phpPgAdmin:

sed "s/\$conf\['servers'\]\[0\]\['host'\] = '';/\$conf\['servers'\]\[0\]\['host'\] = 'localhost';/g" /home/USUARIO/public_html/php-pg-admin/conf/config.inc.php -i 

sed "s/\$conf\['extra_login_security'\] = true;/\$conf\['extra_login_security'\] = false;/" /home/USUSARIO/public_html/php-pg-admin/conf/config.inc.php -i

6. Pronto, seu servidor esta configurado. O phpPgAdmin poderá ser acessivel com seu IP da maquina VPS, desta forma de exemplo:

http://SEU-IP-AQUI/php-pg-admin



Extras

1. O firewall pode barrar o acesso ao phpPgAdmin. Se ocorrer, basta limpa-lo com os comandos abaixo:

iptables --flush
iptables-save
setenforce permissive
service nginx restart