Instalando e configurando postgreSQL em banco de dados dedicado
Í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

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

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