Provendo dados em um servidor PostgreSQL através do Apache e PHP

Aprenda a configurar um serviço HTTP com suporte a PHP e acesso a bancos de dados no PostgreSQL.

[ Hits: 26.253 ]

Por: Stefano Fontes em 10/11/2010


Iniciando



Para efeito deste artigo utilizei as seguintes configurações de teste:
  • Sistema Operacional: FreeBSD 4.5;
  • Servidor HTTP Apache versão 1.3.23;
  • PHP versão 4.1.2;
  • Compilador gcc versão 2.95.3;
  • Make e outras ferramentas de desenvolvimento normalmente incluídas na distribuição.

Apesar de ter utilizado as configurações acima, muito provavelmente os procedimentos aqui descritos serão válidos, talvez com pequenas adaptações, em outros ambientes providos por outros sistemas operacionais da família UNIX, tais como o Linux, bem como utilizando-se versões mais recentes do Apache e PHP; entretanto nestes casos recomenda-se fortemente a leitura dos arquivos README e INSTALL, se houverem, nos arquivos .tar.gz respectivos.

Portanto adapte as instruções aqui fornecidas a cada situação específica.

Observação importante:

Aqui descreveremos a instalação estática do suporte ao PHP no Apache; se você quiser ou necessitar instalá-lo como um módulo, consulte a documentação do Apache e/ou do PHP, pois são procedimentos diferentes de instalação, e você terá que necessariamente escolher um OU outro.

O primeiro passo é descompactar os arquivos .tar.gz em algum diretório do sistema:

# cd /usr/local
(mova, copie ou faça o download dos arquivos-fonte neste diretório)
# tar -xzvf apache-1.3.23.tar.gz
# tar -xzvf php-4.1.2.tar.gz


Vá para o diretório do Apache criado após a descompactação:

# cd apache_1.3.23

Configure inicialmente o apache somente com o caminho de instalação:

# ./configure --prefix=/var/www

Vá a seguir para o diretório do PHP, configure-o, construa-o e instale-o com as seguintes opções:

# cd ../php-4.1.2
# ./configure --with-apache=/usr/local/apache_1.3.23 --with-psql=/usr/local/pgsql --without-mysql
# make
# make install


Observe bem que:

1) O diretório especificado após a opção --with-apache é o diretório de compilação que foi criado logo após a descompactação dos arquivos-fontes do APACHE, e NÃO seu diretório de instalação;

2) O diretório especificado após a opção --with-pgsql é o diretório de INSTALAÇÃO do POSTGRESQL, assumindo que o mesmo já está instalado no sistema, e cuja instalação e configuração não abordaremos neste artigo por fugir de seu escopo; para tanto, consulte a documentação do PostgreSQL, que é muito clara e detalhada sobre sua instalação e configuração;

3) A opção --without-mysql foi utilizada pois não utilizaremos aqui o MySQL; para utilizar este SGBD os procedimentos não diferem radicalmente dos aqui descritos, entretanto você terá que ler a documentação do PHP para fazer as devidas adaptações.

Ainda no diretório de compilação do PHP, copie o seguinte arquivo como segue:

# cp php.ini-dist /usr/local/lib/php.ini

A seguir, retorne novamente ao diretório de compilação do apache (onde você descompactou os arquivos-fontes), e reconfigure-o com as seguintes opções:

# cd /usr/local/apache_1.3.23
# ./configure --prefix=/var/www --activate-module=src/modules/php4/libphp4.a


Aqui observe que:

1) O caminho do diretório especificado após a opção --activate-module NÃO inicia em /src, e SIM em src (sem a barra inicial); isto porque o diretório especificado está contido no próprio diretório de compilação do apache, e não diretamente sob o diretório raiz (root);

2) Outro ponto importante a observar é que o arquivo especificado "libphp4.a" realmente ainda NÃO EXISTE no diretório especificado! Ele será construído durante o processo. Portanto se você verificou previamente o diretório especificado e não o encontrou lá, não se surpreenda!

A seguir compile e instale o apache:

# make
# make install


A seguir vá até o diretório de instalação do Apache (no nosso exemplo /var/www), entre no diretório "conf" e edite o arquivo "httpd.conf" (ou outro equivalente se você estiver usando outra versão do Apache):

# cd /var/www/conf
# vi httpd.conf


A seguir acrescente, descomente ou edite a seguinte linha, se já existir:

AddType application/x-httpd-php .php

Salve e saia do editor.

Para testar o servidor Apache, inicie-o através do seguinte comando:

# /usr/local/apache/sbin/apachectl start

Ou utilize outro caminho no qual você encontre o executável "apachectl", de acordo com sua instalação ou com o comando "which".

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Iniciando
   3. Testando
   4. Criando um banco de dados de teste
   5. Acessando o banco de dados
   6. Conclusão
Outros artigos deste autor

Configurando disquete e pendrive para boot sem suporte na BIOS

Criando um repositório criptografado de dados com Cryptsetup (dm-crypt) sem (re)particionamento do HD

Leitura recomendada

Abordagem exemplificada à Orientação a Objetos com PHP

Sistema PDV com PHP-GTK2 e ACBrMonitor (parte 2)

Como criar um sistema de autenticação de usuários usando PHP/MySQL

Criando um contador de downloads com PHP e MySQL

PHP com PostgreSQL - Estruturando a conexão

  
Comentários
[1] Comentário enviado por jcb em 19/11/2010 - 00:22h

schaf , show de bola seu artigo ...
porém, no arquivo teste.php na linha 16 ($linhas = pg_numrows($result);) só tem um erro ae, que o certo é pg_num_rows.
Abs

[2] Comentário enviado por schaf em 26/11/2010 - 12:40h

Prezado jcb:

Muito grato pelo seu comentário.
Entretanto, a correção, por você (muito bem) observada, foi mencionada por mim no artigo, logo abaixo do código do teste.php, e deve-se ao fato de diferença de versões do PHP utilizadas.
Para maior esclarecimento reproduzo abaixo o referido trecho do artigo:

"Observação importante: Como utilizei a versão 4.3.10-22 do PHP, as funções acima pg_exec, pg_numrows e pg_freeresult aqui possuem estes nomes; entretanto, os nomes atuais destas funções são respectivamente: pg_query, pg_num_rows e pg_free_result; portanto se você estiver utilizando uma versão mais recente do PHP faça estas substituições."

Muito grato pela contribuição!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts