domingo, 9 de agosto de 2009

Servidor Web com Postgresql e PHP no Ubuntu9.04

Este tutorial abrange a instalação e configuração de um Servidor Web Apache, SGDB PostgreSql, Php5 e ferramentas de administração e manutenção do sistema, para uso com o CakePHP.

Para testá-lo usei um Ubuntu 9.04 recém instalado.

Para começarmos, vamos abrir um terminal (alt+F2 - gnome-terminal - executar), para mudar para administrador digite:
$ sudo bash
após a senha o prompt mudará para # e estaremos logados como administrador

Instalar o apache

# apt-get install apache2

Confirmar se o apache está rodando
reiniciar o apache
# /etc/init.d/apache2 restart

Alt+F2 - Firefox - executar

digitar http://localhost na barra de localização
Se tudo estiver bem aparecerá a mensagem : It works!

Para tirar esta mensagem e ver a pasta raiz do apache, basta renomear ou excluir arquivo index.html em /var/www

Ativar o modo rewrite do apache, necessário para o CakePHP trabalhar

# ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

# gedit /etc/apache2/sites-available/default

Libere as permissões AllowOverride para a pasta www mudando de none para All

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Reiniciar o apache

# /etc/init.d/apache2 restart


Instalar o PHP
# apt-get install php5

Instalar o Postgresql
# apt-get install postgresql postgresql-contrib postgresql-doc postgresql-client


Instalar o phppgadmin - para gerenciar o Postgresql

# apt-get install phppgadmin


Liberar o phppgadmin para aceitar logon do usuário postgres, vem desativado por padrão

# gedit /etc/phppgadmin/config.inc.php

Procure a linha
$conf['extra_login_security'] = true;
e troque por false
$conf['extra_login_security'] = false;

Alterar a senha do postgres - Após a instalação o Postgresql adicionou automaticamente um usuário ao Sistema chamado “postgres” . Para alterar a senha deste usuário podemos efetuar os comandos:
# su postgres

o prompt muda para $ agora vamos abrir o terminal do postgresql
$ psql

o prompt muda para =#
para criar ou mudar a senha:
=# \password postgres
neste exemplo, altere para postgres e confirme
Para sair do psql
=# \q
Para voltar prompt do root
$ exit

Testar o PhpPgAdmin - abra o firefox e digite na barra de localização
http://localhost/phppgadmin/

No logon digitar usuário postgres, senha postgres

Para liberar o phppgadmin para acesso a maquinas externas
# gedit /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

*Se quiser restringir alguns Ips para terem acesso ao PhpPgAdmin - troque o all pelos números de Ips liberados

Pgadmin3 - uma opção interessante ao PhpPgAdmin para uso local

# apt-get install pgadmin3

Instalar o Webmin - administrador de sistemas via Web

Baixe a versão .deb do Webmin da página de donwloads http://www.webmin.com/download.html

Clique no pacote baixado, que será aberto pelo Gdebi, e depois clique em instalar; acrescente sua senha e aguarde o Gdebi baixar as dependências necessárias e fazer a instalação.Para acessar o Webmin - abra o firefox no endereço:
https://localhost:10000

Atenção: Será necessário criar uma exceção para o firefox abrir o protocolo de segurança do Webmin.

Se o Firerox oferecer a exceção, é só aceitá-la, caso ele não ofereça. Vá em preferências - avançado - certificados - Na aba servidores, clique em adicionar exceção.


Configurações extras - não utilizei, mas a informação pode ser útil

A configuração padrão do PostgreSQL faz com que apenas conexões locais (via soquete UNIX) sejam permitidas. Vamos alterar Para que ele aceite conexões de outros micros da rede
# gedit /etc/postgresql/8.32/main/postgresql.conf
Edite o arquivo e procure a linha

listen_addresses = ‘localhost’
altere para:
listen_addresses = ‘*’

Agora vamos editar o arquivo que controla quais hosts terão permissões de conexão, como os clientes se autenticam, quais usuários do PostgreSQL podem ser usados e que bancos de dados eles podem acessar.
# gedit /etc/postgresql/8.3/main/pg_hba.conf

A sintaxe é a seguinte:
host all all ip_do_servidor/32 md5

Para o nosso objetivo não se precisou alterar nada no arquivo, bastou garantir as linhas padrões:

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


Criar um novo usuário
para login com o phppgadmin

$ su postgres
o prompt muda para $
abrir o terminal do postgresql
$ psql
para criar um novo usuario chamado francisco
=# CREATE ROLE francisco;
para definir senha para usuario francisco
=# \password francisco
para dar permissões para o usuário francisco criar banco de dados
=# ALTER ROLE francisco CREATEROLE CREATEDB;

FranciscoLima