Apache2 + PHP + PostgreSQL + phpPgAdmin

cvs

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.

[ Hits: 96.597 ]

Por: Thiago Alves em 23/05/2005 | Blog: http://www.seeufosseopresidente.com.br


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.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Downloads
   3. Instalações e configurações
   4. Conclusões
Outros artigos deste autor

Kernel 2.6 hacks

Compilação distribuída usando o distcc

Servidor de e-mail com OpenBSD - Postfix & Cia

Incremente o iptables com patch-o-matic

Instalando OpenBSD no vmware

Leitura recomendada

Acesso remoto para principiantes

Como configurar um túnel com Vtun

Conexão ADSL no Fedora Core

Configurando sua placa wireless no Linux

Utilizando endereços personalizados no seu servidor web: passo-a-passo

  
Comentários
[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:

[b]# /usr/local/pgsql/bin/createdb test[/b]

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts