domingo, 30 de agosto de 2009

Instalar e configurar "APACHE2, PHP5, POSTGRESQL e PHPPGADMIN "UBUNTU"

Abaixo descrevo como Instalar e configurar "APACHE2, PHP5, POSTGRESQL e PHPPGADMIN no Linux Ubuntu.

Vamos para a instalação. Abra um terminal console como root e siga os passos abaixo:

Antes de começarmos, vamos atualizar nossa lista de pacotes "sorces list", com o comando já mais que conhecido.
# apt-get update

Agora começar instalando o POSTGRESQL, em seguida vamos as explicações sobre o comando.
# apt-get install postgresql postgresql-contrib postgresql-doc postgresql-client

Vamos as explicações:
* a primeira parte do comando, apt-get install, maneira que vamos instalar. Em outro momento vou mostrar como instala através do "dpkg".
* instalamos o último pacote do POSTGRESQL (postgresql)
* Pacote de facilidades adicionais (postgresql-contrib-8.3)
* Documentação para para o gerenciamento de bases do Postgresql (postgresql-doc)
* Um modo cliente para o PostgreSql (postgresql-client)


Após a instalação do banco "POSTGRESQL" é adicionado automaticamente um usuário ao sistema chamado "postgres" normalmente com senha em branco. Para alterar a senha deste usuário utilizamos o comando:
# passwd postgres

Este usuário é que possui acesso administrativo a todos arquivos, console “psql” e banco PostgreSql.

Para entrar no console psql, entre como usuário postgres:
# su postgres

digite a senha e em seguida abra o console:
# psql

Para definir a senha do usuário administrador do banco de dados do próprio banco de dados PostgreSql digite a sintaxe:
# ALTER USER postgres WITH PASSWORD 'senha';
se o comando for digitado corretamente, após o comando o console vai mostrar "ALTER ROLE".

Esta sintaxe, pode ser utilizado para alterar a senha de qualquer usuário dentro do console "psql".

Saia do console:
# \q
# exit

A configuração padrão do postgresql faz com que apenas conexões locais (via soquete UNIX) sejam permitidas. Para alterar essa condição, acesse o arquivo postgresql.conf, com o seguinte comando:

# nano /etc/postgresql/8.3/main/postgresql.conf

Procure a linha:
listen_addresses = 'localhost'

altere para:
listen_addresses = '*'

Se você quiser limitar o acesso, você pode substituir o "*", por:
localhost = claro, para acesso local;
numero_ip dos computadores que vão acessar o banco.

Após salvar o arquivo, será preciso reiniciar o PostgreSql (não basta apenas fazer um "reload").
# /etc/init.d/postgresql-8.3 restart

ou

# /etc/init.d/postgresql-8.3 strop
# /etc/init.d/postgresql-8.3 start

Agora vamos editar o arquivo pg_hba.conf.
# nano /etc/postgresql/8.3/main/pg_hba.conf

Este arquivo controla:
* Os hosts têm permissão de conexão.
* Como os clientes se autenticam;
* Quais usuários do PostgreSQL podem ser usados;
* Os Bancos de dados que podem ser acessados;

Para o nosso objetivo que é o uso da Aplicação Web PhpPgAdmin bastou garantir as linhas padrões:

# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all ip_do_servidor/32 md5

Para não deixarmos dúvidas, vamos entender essas linhas de comando, caso você queria muda-las para atender uma necessidade pontual.

* host: Define regras para protocolo TCP/IP, essa opção pode ser:
# host
# local
# hostssl

* all: Define qual banco dados que essa regra se aplica. Se deixarmos "all" será para todos, mas você pode simplesmente adicionar o nome do banco de dados.

* all: Define qual usuário tem permissão para usar essa regra. Se deixarmos "all" será para todos, mas você pode simplesmente adicionar o nome do "usuário".

* ip_do_Servidor/32: Define um ip que pode se conectar ao servidor. Você pode/ deve adicionar o ip do computador que vai se conectar ao banco de dados. Para você não ter que criar uma linha para cada computador, você pode definir uma faixa de ip.

* md5: Método de autenticação: (Abaixo os três metodos que conheço).
# md5 padrão.
# trust para aceitar.
# reject para negar.

antes de Instalar o "phppgAdmin", vamos instalar o apache2, e o php5, até porque os dois programas serão necessarios para executar o "phppgadmin", vamos lá:

Instalando o apache 2:
# apt-get install apache2

Verifique no seu browser seu funcionamento pelo endereço http://localhost/, você deve ver a mensagem "Trabalhando" ou "it work".

Dentro da pasta /var
Por padrão a pasta onde ficam alocados os sites no seu servidor é "/var/www/" .

Instalando o php 5:
# apt-get install php5

Por padrão quando instalamos o "php5", junto é intalado o pacote: "libapache2-mod-php5", para que o apache reconheça páginas ".php"

Reestarte o serviço do apache para que estas alterações sejam reconhecidas
# /etc/init.d/apache2 restart

Agora vamos instalar o "phppgadmin".
# apt-get install phppgadmin

PACOTES OPORTUNISTAS
Aqui também cabe a instalação de pacotes oportunistas que possam melhorar ainda mais o servidor como os pacotes:

* php5-mhash (mhash é uma biblioteca que provê uma interface com um grande número de algoritmos de hash. Um exemplo comum de algoritmo hash é o MD5, que cria um número a partir de um arquivo, para posterior verificação de autenticidade das cópias deste arquivo.)

* php5-odbc (Graças ao ODBC, se tornou possível a aplicações escritas em linguagens diferentes utilizar a mesma lógica para interagir com bancos de diferentes fornecedores.)

* php-pear (Rapositório de extensões e Aplicações Php)
# apt-get install php5-mhash php5-odbc php-pear

Agora os cabeçalhos e os módulos PostgreSql para o Php5
# apt-get install php5-pgsql libpq-dev

O módulo userdir é o que habilita um usuário ter seu site dentro da sua pasta pessoal. É interessante a habilitação deste módulo no apache. Mas aqui se torna opcional.
# a2enmod userdir
# /etc/init.d/apache2 force-reload

Se você agora abrir o browse e digitar "localhost/phpmyadmin", simplesmente não vai funcionar. por injustiça ou nao, o phpmyadmin foi instalado na pasta /usr/share/, e você não consegue acessar através do browse. Assim temos duas opções, ou fazemos uma cópia inteira do diretório, ou criamos um link simbólico, um amigo meu "RENATO ANDALIK" que é um expecialista em LINUX, acha que o Link simbólico é uma maneira mais elegante de permitir esse acesso. Então vamos ao link simbólico:

# ln –s /usr/share/phppgadmin/ phppgadmin

Vamos re-startar o apache.
# /etc/init.d/apache2 restart



Agora o PHPPGADMIN, está funcionando, mas ainda não é possivel logar. Mas vamos manter a calma porque já estamos quase finalizando.

Configurar phppgadmin. Verifique se o módulo auth-pgsql está instalado.

# cd /etc/apache2/mods-available
# ls auth-pgsql /*verificar se ele está aí – auth-pgsqt*/

Ative o módulo editando o arquivo apache2.conf:
# nano /etc/apache2/apache2.conf

Adicione ao fim do arquivo nos includes a linha:
Include /etc/phppgadmin/apache.conf

Para liberar o phppgadmin para acesso a maquinas externas edite o arquivo apache.conf dentro do diretorio "phppgadmin"
# nano /etc/phppgadmin/apache.conf

Procure por:
order deny,allow
deny from all
allow from 127.0.0.0/255.0.0.0

Para:
order deny,allow
#deny from all (ficou em comentário)
#allow from 127.0.0.0/255.0.0.0 (ficou em comentário)
allow from all

Pronto!
Para testar o PhpPgAdmin, acesse http://localhost/phppgadmin, agora está tudo funcionando, menos o acesso do usuário "postgres" através do Browse, isso por motivos de segurança. Se você quiser mudar essa condição, deve editar o arquivo: config.inc.php que está dentro diretorio /phppgadmin/conf.
# nano /usr/share/phppgadmin/conf/config.php
procure pela linha:
$conf['extra_login_security'] = true;

e mude a opção para
$conf['extra_login_security'] = false;

Reestarte o PostgreSql e atualize o endereço no browser.
#/etc/init.d/postgresql-8.2 restart


Boa sorte, e agora tudo deve estar funcionando.

Abraço forte, e bom desenvolvimento.


Rogerio de Paula

Caso você precise de algum outro pacote, utilize o comando de busca
# apt-cache search postgresql




11 comentários:

Anônimo disse...

Cara,

segui todos os seus passo... não sei onde eu me perdi... mas quando eu acesso o //192.168.1.1 eu só consigo ver a frase "it work". eu não consigo acessar o phppgadmim.

O que eu faço???

Rogerio de Paula disse...

Na verdade, você seguiu quase todos os passos... essa mensagem que você está vendo é um documento "index.html", criado pelo apache. ele está na pasta /var/www .
É só você remove-lo ou alterar seu nome que vai aparecer a raiz do Apache.

Próximo comentário, coloque seu nome no comentário, assim pelo menos posso de dirigir diretamente a você.

Abraço forte,

Rogerio de Paula

Anônimo disse...

Boa Noite! Sr. Rogério muito obrigado pela ajuda, seu artigo ta bem legal, simples e objetivo, t+, Feliz Pascoa!!!

Anônimo disse...

olá gostaria de saber onde mais precisamente eu colocaria o Include /etc/phppgadmin/apache.conf e mais uma este modulo auth-pgsql nao aparece em /etc/apache2/mods-available aqui no ubuntu 9.04, no aguardo, obrigado!

Rogerio de Paula disse...

Vamos lá... Sr. Anonimo.

Você perguntou onde incluir um include...
"/etc/phppgadmin/apache.conf "

Dentro do diretório /etc/apache2, tem um arquivo "apache2.conf", coloque o include na última linha.

Taoista Sem Memoria (Capitão Caverna) disse...

Ótimo tutorial.
Consegui configurar aqui.
Precisei apenas alguns ajustes.

O mod auth-pgsql nao vem instalado, e não sei se isto atrapalha, mas de qualquer forma, instalei ele com o comenado:
"apt-get install libapache2-mod-auth-pgsql"

Outro detalhe, precisei colocar o comando "sudo" na frente de todos comandos.

No mais, agradeço pela qualidade e detalhes no tutorial.

Adonis disse...

# vou testar, depois posto o resultado!

adicerapa disse...

Tutorial muito bom....deu tudo certo.....

adicerapa disse...

Muito bom, funcionou direitinho....

Anônimo disse...

Olá, meu nome é Bruno e você me ajudou muito com esse post. Muito obrigado e parabéns pela clareza e as explicações.

konlinuxguara disse...

Olá!
Gostaria de te parabenizar por tão importantes tutoriais.

Gostaria de manter contato. Meu trabalho neste momento está em configurar o Apache2, Php5, Postgresql, e outra dispositivo como SQUID3, SAMBA para que tenhamos nosso homeoffice como host de nosso site, www.konger.com, que na verdade será como uma holding. Vamos dar aulas, prestar consultorias, a clientes cadastrados conosco.

Confesso que comecei a estudar tudo isso do "zero", já fiz o script de ipvirtua para usar, inicialmente apenas um SERVER, agora acabo de configurar o apache2-php5, e começar a testar.

Por isso, seria ótimo poder contar com sua expertise nessa área.

Aguardando, antecipo meus sinceros agradecimentos, colocando-ma à disposição no que eu puder ajudar.

Sou adict to Debian Squeezy and Slackware

Darcy