Pular para o conteúdo

Apache2 + PHP + PostgreSQL + phpPgAdmin

Vamos ver como instalar e configurar o Apache, PHP e PostgreSQL e também como instalar e configurar uma ferramenta para a administração do banco de dados, o phpPgAdmin.
Thiago Alves cvs
Hits: 96.880 Categoria: Linux Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar

Parte 3: Instalações e configurações

Bom, depois de baixado, vamos compilar e instalar os programas. Primeiro vamos instalar o PostgreSQL:

# tar jxf postgresql-8.0.2.tar.bz2
# cd postgresql-8.0.2
# ./configure --with-tcl --with-python --with-perl --with-openssl


Com esses parâmetros ele vai habilitar suporte para tcl, python, perl e openssl e não é preciso definir suporte ao php, não me perguntem o porque... hehehe.

# make
# make install


Pronto, foi instalado o PostgreSQL, vamos agora para a configuração para iniciar facilmente e também configurar o usuário que vai acessar o banco como root:

# useradd -d /home/postgres -g users -s /bin/bash postgres
# passwd postgres


Atenção heim, esse é o usuário root do banco de dados, então é preciso definir uma senha pra poder acessar ele, o PostgreSQL vai buscar a senha dele no /etc/shadow.

# mkdir /home/postgres && chown -R postgres.users /home/postgres
# mkdir /usr/local/pgsql/data
# chown -R postgres /usr/local/pgsql/data
# su - postgres
# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
# /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
# /usr/local/pgsql/bin/createdb test
# /usr/local/pgsql/bin/psql test


Bom, a maior parte dessa configuração foi baseada no arquivo INSTALL. Se tudo deu certo, no final ele vai entrar na linha de comando do psql.

Para iniciar o banco de dados você deve sempre executar essa linha de comando:

# /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &

Ou podemos seguir a dica desse artigo:
e criar um rc.postgresql da seguinte forma:

# cd postgresql-8.0.2/contrib/start-scripts/
# cp linux /etc/rc.d/rc.postgresql
# chmod a+x /etc/rc.d/rc.postgresql


Vamos agora instalar o Apache.

# tar zxf httpd-2.0.54.tar.gz
# cd httpd-2.0.54
# ./configure --enable-so --enable-ssl
# make
# make install


Daí ele vai ser instalado no /usr/local/apache2, feito isso já vamos pular pro senhor PHP:

# tar jxf php-4.3.11.tar.bz2
# cd php-4.3.11

# ./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/apache2/conf \
--with-pgsql=/usr/local/pgsql \
--with-openssl

# make
# make install
# cp php.ini-dist /usr/local/apache2/conf/php.ini


Agora, depois de instalado o php, vamos configurar o arquivo /usr/local/apache2/conf/httpd.conf, edite ele e adicione as seguintes linhas:

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

A outra linha que carrega o módulo do php normalmente já é inserida no arquivo de configuração do Apache automaticamente na hora da instalação, mas caso dê erro, a linha é a seguinte:

LoadModule php4_module        modules/libphp4.so

Agora vamos instalar o PhpPgAdmin:

# tar jxf phpPgAdmin-3.5.3.tar.bz2
# cd phpPgAdmin-3.5.3/conf
# cp config.inc.php-dist config.inc.php
# vim config.inc.php


Dessa maneira vamos editar o arquivo de configuração do phpPgAdmin, os parâmetros que acho necessários:

$conf['servers'][0]['desc'] = 'PostgreSQL';
Nesse acima você pode colocar o nome do banco de dados, pra quando você possuir mais de um servidor de banco dados, você configurar um segundo servidor e assim colocar outro nome pra não confundir.

$conf['servers'][0]['host'] = 'localhost';
Aqui você coloca o ip ou nome da máquina que está o banco de dados, normalmente fica na mesma máquina que o Apache está instalado, então coloque localhost.

Ainda é preciso alterar mais duas coisas na configuração, os dois seguintes campos:

$conf['servers'][0]['pg_dump_path'] = '/usr/bin/pg_dump';
$conf['servers'][0]['pg_dumpall_path'] = '/usr/bin/pg_dumpall';


Como instalamos o pgsql em outro diretório, o bin dele fica no /usr/local/pgsql/bin, ou seja, esse binários ficam dentro dessa pasta e não do /usr/bin, existe duas maneiras pra resolver:
  1. Criar links simbólicos dos binários lá no /usr/bin;
  2. Alterar a linha para ir no caminho correto.

Eu vou alterar a linha para ela ir no caminho correto do binário, ficando da seguinte forma:

$conf['servers'][0]['pg_dump_path'] = '/usr/local/pgsql/bin/pg_dump';
$conf['servers'][0]['pg_dumpall_path'] = '/usr/local/pgsql/bin/pg_dumpall';

Agora temos que liberar acesso pro usuário postgres, por padrão o phpPgAdmin não deixa o postgres fazer logon no sistema de gerenciamento via web, então vamos alterar a seguinte linha:

$conf['extra_login_security'] = true;

Para:

$conf['extra_login_security'] = false

Agora sim, salve e saia. Agora é preciso colocar o diretório do phpPgAdmin no diretório de publicação do Apache, que normalmente fica em /usr/local/apache2/htdocs:

# mv phpPgAdmin-3.5.3 /usr/local/apache2/htdocs/phpPgAdmin

Agora está pronto, basta acessar o link:

http://localhost/phpPgAdmin/
ou
http://ip-do-servidor/phpPgAdmin

e assim deve aparecer a tela para login. Coloque o usuário postgres e a senha que foi definida na criação do mesmo.

   1. Introdução
   2. Downloads
   3. Instalações e configurações
   4. Conclusões

Slackware com kernel 2.6.10 - passo a passo

MPlayer - The Movie Player

Tornando o OpenBSD stable

Slackpkg, uma ótima ferramenta para Slackware

Instalação e configuração do Gkrellm

Estudo comparativo de alguns gerenciadores e aceleradores de download

Hotspot com Ubuntu Server 11.04 32-Bits

OpenMeetings - Configuração no Ubuntu Server 11.10

Emuladores para seu sistema operacional

Navegando em modo texto com imagens

#1 Comentário enviado por cvs em 24/05/2005 - 08:16h
Tem alguém de marcação comigo, só pode... hehehehe
#2 Comentário enviado por shocker em 24/05/2005 - 09:53h
Ótimo artigo cvs!
Parabéns!

[]'s
Alan Cota.
#3 Comentário enviado por filype em 30/12/2005 - 03:23h
Meu, muito bom este arqtigo! parabens cvs
#4 Comentário enviado por removido em 17/07/2006 - 14:55h
gostei do artigo, parabéns
#5 Comentário enviado por yzakius em 21/07/2007 - 00:20h
Olá amigo, eu fiz tudo certinho mas quando chega na hora de:

# /usr/local/pgsql/bin/createdb test

Ele dá esse erro:

createdb: could not connect to database postgres: could not connect to server: Arquivo ou diretório não encontrado
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Alguma dica?
Obrigado
#6 Comentário enviado por goss em 01/01/2008 - 11:37h
TIve o mesmo problema que vc yzak , pra resolve isso delete a pasta do postres desconpactado e execute todos os comando de compilação como root ou seja o ./configue e o make e make install.

Um abraço
#7 Comentário enviado por presunto12 em 19/06/2008 - 06:20h
Olá.. goss, esperimente matar o conteudo da pasta data e começar da linha # su - postgres...
deu certo pra mim... nao encontrei mais este problema...
abraços...
#8 Comentário enviado por mmacoli em 28/09/2010 - 16:23h
PARABENS PELO POST ME AJUDOU A INSTALAR O PHPPGADIN!!
Apesar de a versão para o PHP 5 estar bugada!!!
As tabelas nao ficam amostra no menu esquerdo!!

Vlw
#9 Comentário enviado por rai3mb em 23/05/2012 - 19:09h
Configurei meu path do pg_dump corretamente conforme o que é retornado por

whereis pg_dump

Mas mesmo assim continuo recebendo o erro: Export error: Failed to execute pg_dump (given path in your conf/config.inc.php : /usr/lib/postgresql/8.4/bin/pg_dump). Please, fix this path in your configuration and relog.

Alguem sabe o que pode ser?

Contribuir com comentário

Entre na sua conta para comentar.