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: 94.892 ]

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

Aplicando o patch do grsecurity no kernel 2.4

Tornando seu Apache mais seguro com o ModSecurity

MPlayer - The Movie Player

Montando um PDC com OpenBSD

Instalando o VMWare no Slackware

Leitura recomendada

Como verificar conexões abertas no Linux

Compartilhando internet via rádio entre um servidor Linux e clientes Windows

Monitoramento de portas com netcat

Provedor de Internet com BrazilFW - BFW

Servidor web com CentOS + Apache

  
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