Servidor Internet (parte 1)

Este é o primeiro de uma séria de cinco, onde você aprenderá como montar um servidor de Internet completo, com serviços de HTTP e HTTPs (Apache), BD (PostgreSQL), PHP, IMAP e POP3 (Postfix), antivírus (ClamAV), FTP seguro (Pure-FTPd), Gateway (OpenBSD) e DNS (Bind). Aqui será vista a instalação e configuração do Apache com SSL, PostgreSQL e PHP.

[ Hits: 118.009 ]

Por: Carlos Eduardo Ribeiro de Melo em 01/10/2004


Instalando o PostgreSQL



Agora iniciaremos o processo de instalação do PostgreSQL. Preste muita atenção! Caso seu SO venha com Apache "enjaulado", ou seja, pré-instalado com CHROOT como acontece no OpenBSD, algumas partes da configuração deverão ser executadas.

Caso você tenha instalado o Apache de acordo com este artigo, pule os passos da configuração que possuem um (chroot) em cima.

Primeiramente baixe os códigos-fonte (http://www.postgresql.org). Após isso descompacte-os:

# tar zxvf postgresql-7.4.5.tar.gz
# cd postgresql-7.4.5/


Agora vamos configurá-lo.

Lembre-se: Caso você não utilize Linux, você deverá instalar antes o compilador gmake (http://www.gnu.org/software/make).

# ./configure --prefix=/usr --with-openssl

Uma breve explicação sobre as opções utilizadas:
  • --prefix=/usr -> Especifica o local onde o PostgreSQL será instalado. Ele será instalado em vários subdiretórios, não diretamente neste diretório.
  • --with-openssl -> Adiciona o suporte à encriptação SSL.

OBS: Caso a configuração não possa ser feita no diretório /usr, tente fazê-la sob o diretório /usr/local. Pode ser que na configuração, onde são checadas todas as dependências, seja dado algum erro por falta de alguma ferramenta do qual o PostgreSQL dependa. Caso isso aconteça, tente instalar essa ferramenta.

Pronto! Agora é só compilar e instalar.

# make && make install

Configuração do PostgreSQL


Antes de mais nada devemos criar o superusuário do PostgreSQL. Seu nome é, por padrão, postgres.

# useradd -d /var/pgsql postgres
# mkdir /var/pgsql
# chown postgres /var/pgsql


Assim, o usuário será criado. O parâmetro -d indica o diretório home do usuário postgres, onde serão armazenados os arquivos do banco de dados. Após isso criamos o seu diretório home e o tornamos como o dono do diretório.

Agora é necessário iniciar o banco de dados, criando o diretório de armazenagem de dados e configurações.

# su postgres -c '/usr/bin/initdb /var/pgsql/data'

Assim, o banco de dados será criado em /var/pgsql/data e o dono do diretório será o usuário postgres.

Agora para aqueles que possuem o Apache instalado com CHROOT. Quando o Apache é iniciado, o mesmo consegue enxergar apenas o seu diretório (/var/www), interpretando-o como o diretório raiz (/). Sendo assim, devemos criar um diretório tmp dentro da jaula do Apache, para que o arquivo .pid do PostgreSQL seja "enxergado" pelo PHP.

(chroot)
# mkdir /var/www/tmp
# chmod 777 /var/www/tmp


Agora é necessária a configuração do PostgreSQL para que este utilize o diretório tmp do Apache e não o do Sistema. Basta ir até o diretório /var/pgsql/data e alterar o arquivo postgresql.conf:

# cd /var/pgsql/data
# vi postgresql.conf


Agora procure as seguinte linha e altere seu valor para o valor aqui representado:

unix_socket_directory='/var/www/tmp'

Todo comando do PostgreSQL como o createdb, dropdb, psql, entre outros, você irá necessitar especificar onde fica o diretório de arquivos temporários que o PostgreSQL está utilizando. Para isso, acrescente ao comando o parâmetro "-h /var/www/tmp" e assim o comando funcionará normalmente.

Para iniciar o PostgreSQL com o sistema, insira o comando no arquivo rc.local - Linux: /etc/rc.d/rc.local / *BSD: /etc/rc.local -, logo no final do arquivo:

if [ -x /usr/bin/pg_ctl ]; then
   echo -n ' postgresql'
   su postgres -c '/usr/bin/pg_ctl -D /var/pgsql/data -l /var/pgsql/postmaster.log start'
fi

Pronto! O PostgreSQL está instalado e configurado. Basta criar os bancos de dados e, quando necessário, alterar o arquivo pg_hba.conf de acordo com as suas necessidades.

Listas de Discussão Oficiais:
http://www.postgresql.org.br/index.php?corpo=listas

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Baixando o código-fonte
   3. Instalando o Apache
   4. Instalando o PostgreSQL
   5. Instalando o PHP
   6. Considerações finais
Outros artigos deste autor

Entendendo os scripts de inicialização do Gentoo

Configure seu Linux pela Web!

Leitura recomendada

Modificando o TimeZone: 2 métodos

CUPS - Gerenciador de impressões

LXC-Container e KVM - CentOS 6.2 x86_64 rodando em outro CentOS x86_64

Instalando gerenciador de projetos Redmine usando o PostgreSQL sobre o nginx

GRUB com imagens aleatórias e KDM com vídeo de fundo

  
Comentários
[1] Comentário enviado por m4sk4r4 em 01/10/2004 - 10:21h

Olá Carlos,

Gostei muito do artigo, Parabéns, e já tou ancioso
para ler as outras séries do artigo.

Mais aproveito também este espaço, para fazer umas perguntas .
No caso do postgre, ele tem um superusuário para iniciar
o serviço, esse mesmo usuário que deverá ser usado
para criar os banco de dados, tabelas?
Um novo database a ser criado, deve ser em /var/pgsql/data ?

Última pergunta, o comando chroot poderia ser usado no caso do postgre.

#chroot postgre /var/pgsql

Ou isso prejudicaria o funconamento do postgre?


Flwz, e mais uma vez, Parabéns.

[2] Comentário enviado por cvs em 01/10/2004 - 10:23h

muito interessante... e logo o servidor de ftp que tava afim de dar uma olhada não veio dessa vez? heheheh maldade :D

Espero ancioso as outras partes :-)

[3] Comentário enviado por dudu_away em 01/10/2004 - 10:29h

Caro m4sk4r4, o superusuario deve ser utilizado para executar os qualquer comando que venha pelas linhas de comando do linux.

Para criar banco de dados:

# su postgres -c 'createdb banco_de_dados'

No caso de criar as tabelas, vc utiliza o comando

# psql -Upostgres banco_de_dados

e será aberto o shell do postgresql. Daí vc pode executar qualquer comando SQL tipo CREATE TABLE. Existem outras formas de criar como importando um arquivo. O comando ficaria assim:

# psql -Upostgres banco_de_dados -c '\i arquivo'

No caso do chroot não é possível utilizá-lo se vc pretende rodar o postgresql com o Apache, pq o arquivo .pid não seria visto pelo mesmo daí daria erro no PHP...

[]'s

[4] Comentário enviado por removido em 02/10/2004 - 00:05h

Poww simplesmente showww, essa sequência de artigos que você propôs a escrever veio para a quebrar a banca =)...

parabéns e adorei a abordagem ao PostgreSQL

estou no aguardo pelas as outras edições!.

Guilherme L. Stolfo
guinet(not_spam)gmail.com

[5] Comentário enviado por dudu_away em 02/10/2004 - 22:16h

Ai m4sk4r4, dei uma olhada na sua pergunta e vi q tava mal respondida.... hehehe...

O novo database deve ser criado no local onde vc pos pra ser o home do usuario postgres (que no sistema é considerado usuário comum) ou o usuário postgres deve ser o dono do diretório q vc utilizar pra ser o database..... E podem ser criados vários databases em um msm diretorio.... o diretorio q citei /var/pgsql/data e o diretorio utilizado para guardar os dados e arquivos de configuração do postgresql. Blz? Espero ter ajudado...

[]'s

[6] Comentário enviado por taudujas em 03/10/2004 - 00:16h

Parabens cara, vou fazer isso aqui no meu Slackware 10 e depois fazer uma imagem do HD para manter comigo. Abraços!

[7] Comentário enviado por engos em 05/10/2004 - 09:21h

Beleza de artigo, espero que a série continue tão boa quanto esse primeiro artigo.

Só uma observação que não gostei, quando você fala sobre a instalação do PHP, em "--prefix=/usr/local -> Explicado anteriormente". Caso a pessoa já tivesse o Apache e PostgreSQL instalado e estivesse interessado em instalar apenas o PHP teria que lêr todo o artigo para saber onde foi explicado e o que significa?

É só um detalhe, mas acho importante.

Parabéns pelo artigo, já estou na espera pela seqüência.

[]s

[8] Comentário enviado por duardo em 05/10/2004 - 10:54h

ótimo artigo , estou esperando pela continuação, valew...

[9] Comentário enviado por fabrizmat em 06/10/2004 - 07:48h

Muito bom. parabéns

[10] Comentário enviado por reimassupilami em 27/01/2005 - 08:32h

ótimo artigo hein... Estou mesmo montando um servidor usando apache+php+postgre, mas é difícil encontrar material assim... geralmente econtramos com mysql apenas...

valeu cara...

[11] Comentário enviado por reimassupilami em 31/03/2005 - 08:34h

olá dudu_away... cara, eu usei seu artigo, está bom mesmo, foi ideal pra mim... agora estou precisando instalar o php5... vc sabe se os parâmetros para configuração e compilação são os mesmos?

[12] Comentário enviado por Antoniaze em 01/04/2005 - 21:47h

Salve Comunidade que continue sempre assim...
Caro DUDU valeu mesmo ....
Este foi pelo qual estou ligado no linux...
ESPERAVA ESTE ARTIGO A MUITO TEMPO....
Valeu velho ....Parabens...

[13] Comentário enviado por dudu_away em 11/04/2005 - 20:37h

Aew rei massupilami... desculpa a demora... ;-)

Bom... pra php5 fica a mesma coisa... se vc tiver alguma dúvida, basta dar uma olhada na seção --help do .configure...

./configure --help

Abraços

[14] Comentário enviado por reimassupilami em 07/11/2005 - 15:36h

olha só, tive o seguinte problema: se eu configurar o socket em outro diretorio diferente de /tmp ele inicia normalmente, porem comandos como o createuser, por exemplo continuam buscando o socket em /tmp, e dae nao funcionam... existe mais algum arquivo de configuração q pode estar fazendo referencia a esse diretorio? a solução por enquanto foi deixar o diretorio do socket em /tmp mesmo

outra coisa, como defino a senha do superusuario, quando é feita a instalação?

[15] Comentário enviado por cmeisterhofer em 28/06/2006 - 11:07h

Ola!
Ainda engatinhando em linux, e bota engatinhado.
Usuario de Access, migrando de MSXP para linux slackware 10.2.
Segui a risca a receita e configurei o postgres.
Nao deu nenhuma messagem de erro.
Me desculpe a minha ignorancia, como faco para ele rodar em modo grafico, ou ele so roda em modo texto.
Como fazer para rodar entre um e outro, outros aplicativos como Opera por exemplo instala o icone la em internet.

Obrigado.
Claus

[16] Comentário enviado por cmeisterhofer em 30/06/2006 - 20:58h

Nao tem ninguem ai.
Claus

[17] Comentário enviado por cmeisterhofer em 30/06/2006 - 21:00h

Alguem tem alguma receita de como fazer para compartilhar a internet com o velox

Claus

[18] Comentário enviado por fabiomais em 31/03/2010 - 09:06h

Gostaria de fazer uma pergunta?
Alguém sabe me dizer se tem jeito de conectar se a internet passando por três servidores linux??


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts