Apache + SSL + PostgreSQL + Mod_auth_pgsql + PHP

Colegas! Sem tempo? Isso é fato. Administre ele, tudo dará certo! Instalando o Apache com SSL, autenticando no PostgreSQL, rodando PHP e armazenando dados do PHP no PostgreSQL. Tentei ser o menos técnico possível, "o que não sou é técnico". Assim de maneira simples e eficiente configuramos um servidor Web.

[ Hits: 40.525 ]

Por: Frank em 02/06/2006


O banco de dados PostgreSQL e suas configurações



Bom, vamos por a mão na massa?

Primeiro o banco PostgreSQL. Informe no "configure" o local de instalação do banco:

# cd postgresql-8.1.3
# ./configure --prefix=/usr/local/pgsql
# make
# make install


Se tudo tiver dado certo, você vai estar com o PostgreSQL instalado na sua máquina. Os binários vão estar instalados em /usr/local/pgsql/bin/, as libs em /usr/local/pgsql/lib/, os docs em /usr/local/pgsql/doc/, as manpages em /usr/local/pgsql/man.

Agora vamos adicionar o usuário e grupo para o PostgreSQL poder rodar:

# groupadd postgres
# useradd -g postgres -s /bin/bash -d /var/lib/pgsql postgres
# mkdir -p /var/lib/pgsql/data
# chown -R postgres:postgres /var/lib/pgsql/


Iniciando o PostgreSQL:

# su - postgres
$ initdb -D /var/lib/pgsql/data
$ postmaster -i -D /var/lib/pgsql/data >logfile 2>&1 &


Se tudo ocorreu perfeitamente, você poderá executar o comando <ps ax> e o PostgreSQL estará rodando.

$ ps ax
17544 pts/3 S 0:00 /usr/bin/postmaster -i -D /var/lib/pgsql/data
17545 pts/3 S 0:00 postgres: stats buffer process
17547 pts/3 S 0:00 postgres: stats collector process

Criando o banco de dados para o usuário postgres:

$ /usr/local/pgsql/bin/createdb postgres

Logar no banco e efetuar algumas alterações. A senha é nula como default:

$ /usr/local/pgsql/bin/psql -U postgres
Welcome to psql 8.1.1, the PostgreSQL interactive terminal.

Type:  copyright for distribution terms
       h for help with SQL commands
       ? for help with psql commands
       g or terminate with semicolon to execute query
       q to quit

postgres=#
Você já está logado no banco, agora alterar a senha do usuário postgres:

postgres=# alter user postgres with encrypted password 'minha-senha';

Você alterou a senha do administrador do banco que é o usuário postgres, mude a parte 'minha-senha' para uma senha de sua preferência.

Agora vamos preparar o PostgreSQL para autenticar o Apache.

Criamos uma tabela no banco com a seguinte estrutura:

postgres=# CREATE TABLE usuarios (user VARCHAR(20), pass VARCHAR(20));
postgres=# \q

O armazenamento de dados na tabela é tarefa de qualquer programa que tenha acesso ao PostgreSQL.

Lembramos que no campo "pass" deve ser armazenado senhas encriptadas usando a função crypt().

Segue um exemplo para facilitar nossa "receita de bolo"...

$ touch /usr/local/pgsql/apache/revela.pl

Editar o arquivo e acrescentar o seguinte conteúdo:

#!/usr/bin/perl
print crypt($ARGV[0],"dl") . "n";

Salve o arquivo e atribua execução:

# chmod +x /usr/local/pgsql/apache/revela.pl

Execute:

# /usr/local/pgsql/apache/revela.pl teste
dl8hesA6pYtUIn

Observe que a senha "teste" deve ser armazenada como "dl8hesA6pYtUIn" no campo "pass".

O exemplo de perl nos dá noção do que fazer. Esta função você tem disponível em várias linguagens, como perl, php, python, e outras...

Existem mais configurações e segurança ao banco, porém o que pretendemos não é somente o banco, então seguimos em frente. Essas configurações já são suficientes para nosso objetivo.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. O banco de dados PostgreSQL e suas configurações
   3. Apache e seus pacotes e configurações
   4. PHP e suas configurações...
   5. Configurações de autenticação e finais
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Organizando as idéias

Escrevendo em arquivos PDF

Celestia, simulador espacial em tempo real

Call Center no Linux

Como fazer o seu servidor Linux enviar avisos em seu celular Claro sem custo

  
Comentários
[1] Comentário enviado por cytron em 19/11/2006 - 19:36h

Cara! Aqui tá tudo certo, fiz direitinho, já revisei, já dei um lynx -dump e mostrou q o apache tá rodando mod_ssl, mas o apache só roda se eu usar start ao invés de startssl, quando tento um startsll o apache retorna:

httpd could not be started

e não inicia.

tá tentei também apachectl-mod_ssl start e até com startssl.

Quando tento com start ele roda mas não reconhece https, e com startssl também dá o mesmo erro quando rodo apachectl startssl

Estou vasculhando a net atrás de uma solução... mas parece que isso só acontece comigo! hehe!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts