quinta-feira, 21 de julho de 2011

Instalar e configurar "Apache2, PHP5, PostgreSQL, Phppgadmin, MySQL e Phpmyadmin no Ubuntu Server”.

Conforme prometido, estou postando neste tutorial uma forma simples e rápida para instalar um servidor Web completo no Ubuntu Server.

Vamos para a instalação. Acesse seu Servidor Linux Ubuntu e mãos-a-obra.

Antes de começarmos, vamos atualizar nossa lista de pacotes "sorces list", com o comando já mais que conhecido. (Lembrando que toda a instalação deve ser feita como “root”).


# 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.


* Instalamos o último pacote do PostgreSQL para a versão do Ubuntu Server.

* Pacote de facilidades adicionais (postgresql-contrib-8.3).

* Documentação 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 utilizada 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:

# vi /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 stop
# /etc/init.d/postgresql-8.3 start


Agora vamos editar o arquivo pg_hba.conf.
# vi /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 métodos 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 necessários para executar o "Phppgadmin", vamos lá:

Instalando o Apache2


# 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 PHP5:


# apt-get install php5

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

Restarte 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 (Repositó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 não, o Phppgadmin foi instalado na pasta /usr/share/, e você não consegue acessar através do browser. Assim temos duas opções, ou fazemos uma cópia inteira do diretório, ou criamos um link simbólico, eu acho 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 é possível 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:


# vi /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"


# vi /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 browser, 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.


# vi /usr/share/phppgadmin/conf/config.php


Procure pela linha:


$conf['extra_login_security'] = true;

Mude a opção para:


$conf['extra_login_security'] = false;

Re-starte o PostgreSQL e atualize o endereço no browser.


#/etc/init.d/postgresql-8.3 restart


Agora vamos instalar o MySQL e o Phpmyadmin:
# apt-get install mysql-server mysql-client phpmyadmin


Pronto!

Boa sorte, e agora tudo deve estar funcionando.

Abraço forte, e bom desenvolvimento.


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


Um comentário:

  1. Prezado,

    Parabéns pelo tutorial.

    O arquivo auth-pgsql não foi instalado. Como faço para fazer isso.

    ResponderExcluir