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




terça-feira, 25 de agosto de 2009

Primeiros Passos - Definir senha ROOT no Ubuntu

Você que está iniciando a sua jornada no LINUX e ainda não definiu a sua senha root, siga os comandos abaixo.

Quando você acessar pela primeira vez o seu terminal "Aplicativos > Acessórios > Terminal", você vai ver o seguinte:

nome_usuário@ubuntu:~$

você vai entrar com os comandos:
$ sudo passwd

//vai aparecer a seguinte mensagem

[sudo] password for nome_usuário:

//nesse momento você deve confirmar a senha que você definiu no momento da instalação do ubuntu. Após a confirmação da senha do usuário, você vai ver ter a seguinte mensagem:

Digite a nova senha UNIX: digite_a_senha_root
Redigite a nova senha UNIX: digite_a_senha_root

você acabou de definir a senha root do seu sistema, sempre que necessario, você deve acessar do seu Terminal "su root", você deve digitar a senha que você definiu. Você deve observar que o sinal de cifrão "$", foi substituido pelo senha de jogo da velha "#".

Você deve se acostumar, sempre que você ver qualquer comando precedido pelo sinal de "#" quer dizer que você deve estar logado como root, ou deve utilizar do comando "sudo" antes do comando.

Abraço até a Próxima

Rogerio de Paula