Pular para o conteúdo

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.
Frank pr0m3t3u
Hits: 42.407 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Parte 2: 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.

   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
Nenhum artigo encontrado.

Instalação automatizada de servidores com Kickstart (parte 2)

Servidor Messenger Openfire passo-a-passo no Linux

Grade Computacional com OurGrid no Debian Lenny

GNU/Linux de Bolso como Ferramenta Anti-Vírus

Como ver as informações de rede no Linux

#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

Entre na sua conta para comentar.