LAMP – Linux+Apache+Mysql+PHP
abril 22, 2009

Aqui vai um pequeno tutorial de instalação de um servidor LAMP em um sistema operacional Debian GNU/Linux:
Sistema operacional utilizado:
Debian 4.0 Etch
Após uma instalação mínima do sistema, será necessário configurar a sources.list e atualizar o sistema:
# aptitude update
# aptitude upgrade
Depois instalar os pacotes essenciais para o LAMP:
# aptitude -y install build-essential
O primeiro passo para uma configuração de um servidor LAMP, é a instalação do servidor Web:
-
-
Apache 2.2
-
Instalando os pacotes essenciais:
# apache2 – Servidor Apache 2.2
# aptitude -y install apache2 apache2-utils
O diretório do apache aonde contém seus arquivos de configuração é:
Diretório: /etc/apache2/
/etc/apache2/apache2.conf — Arquivo de configuração principal do Apache;
/etc/apache2/conf.d/charset — Codificação de caractere utilizado;
/etc/apache2/mods-available/ — Módulos instalados mas não habilitados;
/etc/apache2/mods-enabled/ — Módulos habilitados.;
/etc/apache2/ports.conf — Porta padrão do Apache;
/etc/apache2/sites-available/ — Diretório dos hosts virtuais;
/etc/apache2/sites-enabled/ — Hosts virtuais habilitados.
Comandos de administração do apache no debian:
# /etc/init.d/apache2 start | stop | restart | reload
Habilitando módulos no apache:
# a2enmod modulo – Habilita o módulo instalado.
# a2dismod modulo – Desabilita o módulo.
Agora vamos instalar o php no servidor:
-
PHP 5
php5 – Pacote de instalação do PHP
libapache2-mod-php – Módulo do php para o apache
php5-mysql – Pacote para poder conectar ao banco de dados Mysql
Instalando os pacotes essenciais:
# aptitude -y install php5
# aptitude -y install libapache2-mod-php
# aptitude -y install php5-mysql
Caso o banco de dados seja PostgreSQL:
# aptitude -y install php5-pgqsl
Para quem precisar de algum módulo do php aqui vai uma lista módulos:
php5-curl - Módulo CURL para php5 php5-gd - Módulo GD para php5 php5-imap - Módulo IMAP para php5 php5-json - Serialização JSON para PHP5 php5-ldap - Módulo LDAP para php5 php5-odbc - ODBC módulo para php5 php5-snmp - Módulo SNMP para php5 php5-sqlite3 - Módulo SQLite3 para php5 php5-suhosin - Módulo avançado proteção para php5 php5-sybase - Módulo Sybase / MS SQL Server para php5 php5-tidy - Módulo tidy para php5 php5-xmlrpc - Módulo XML-RPC para php5 php5-xsl - Módulo XSL para php5
Caso seja necessário outra módulo:
# aptitude -y search php5
Depois de instalado o php e o servidor o web vamos criar um arquivo em php para realizar o teste:
# vim /var/www/teste.php
<?php phpinfo( ); ?>
Salve o arquivo e acesse o endereço no browser:
http://localhost/teste.php
Ou remotamente:
http://ipdoservidor/teste.php
Instalando o SGBD:
-
-
MySQL
-
# aptitude -y install mysql-server
Antes de usar o banco deve-se rodar um comando para criar uma base de dados que o mysql vai utilizar para guardar informações do próprio SGBD (Senha, usuários etc):
# mysql_install_db
# mysqladmin -u root password [senha]
Para conectar ao banco via prompt:
# mysql -u root -p [enter]
Para administrar o banco de forma gráfica instale o phpmyadmin:
# aptitude -y install phpmyadmin
Compartilhamento via NFS
fevereiro 20, 2009

Há pouco tempo atrás precisei utlizar o NFS para compartilhar os backups realizados em dois servidores, no meu caso queria que os dois servidores tivessem os mesmos backup’s.
Utilizando o NFS consegui de forma rápida e prática resolver esse problema e ainda me permitiu criar scripts de manutenção e backup para rodarem de madrugada.
Sobre o NFS….
1. Introdução.
NFS (acrônimo para Network File System) é um sistemas de arquivos distribuídos desenvolvido inicialmente pela Sun Microsystems a fim de compartilhar arquivos e diretórios entre computadores conectados em rede, formando assim um diretório virtual.
2. Instalação do Debian.
Crie uma instalação limpa* do Debian Etch.
*Remova todos os pacotes de instalação, inclusive o sistema básico.
3. Configurações dos servidores de Backup.
Linux Debian verção 4.0 Etch r6
3.1 Descrição das partições:
Para a instalação dos servidores de backup serão utlizados 4 HD’s de 1 tera. As partições devem ser feitas (no nosso caso) da seguinte maneira:
/dev/sda1 0 Gb Swap
/dev/sda2 10 Mb /
/dev/sda3 Espaço total (1 TB) /home
/dev/sdb1 Espaço total (1 TB) /home1
/dev/sdc1 Espaço total (1 TB) /home2
/dev/sdd1 Espaço total (1 TB) /home3
OBS: Essa mesma configuração deve ser realizada nos dois servidores.
4. Pós instalação.
OBS: O símbolo “# “ significa que os comandos devem ser realizados como root.
Antes de continuarmos vamos atualizar o sistema recém instalado.
4.1 Configure seu apt (sources.list) da seguinte forma:
# vim /etc/apt/sources.list
deb http://mirrors.kernel.org/debian stable main
deb-src http://mirrors.kernel.org/debian stable main
deb http://ftp.us.debian.org/debian stable main contrib non-free
deb http://ftp.debian.org/debian stable main contrib non-free
deb http://ftp.br.debian.org/debian stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb http://ftp.br.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.br.debian.org/debian/ etch main
deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib
Atualizando o sistema:
# aptitude update
# aptitude upgrade
# aptitude –y install build-essential
OBS: Procedimento realizado para os dois servidores.
4.2 Procedimento realizado no servidor 192.168.1.2 (“Espelho”).
Instalando os pacotes do NFS:
# aptitude -y install portmap
# aptitude -y install nfs-common
# aptitude -y install nfs-kernel-server
4.2.1 Configurando as placas de rede:
#vim /etc/network/interfaces
Servidor 192.168.1.2:
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.10
network 192.168.1.0
4.2.2 Configurando o NFS.
A configuração do NFS é feita no servidor em um único arquivo, o “/etc/exports“. Para compartilhar as partições que criamos (home, home1, home2 e home3) do servidor ativo editamos o seguinte arquivo no servidor espelho.
# vim /etc/exports
/home 192.168.1.1(rw,no_root_squash)
/home1 192.168.1.1(rw,no_root_squash)
/home2 192.168.1.1(rw,no_root_squash)
/home3 192.168.1.1(rw,no_root_squash)
# exportfs -a
*Esse comando evita que você reinicie todos os serviços do NFS.
4.2.3 Legenda:
– rw — Permite leitura e escrita aos compartilhamentos.
– 192.168.1.1 – libera o acesso somente para este ip.
– no_root_squash — Permitir que o root monte o compartilhamento.
Salve o arquivo e execute o seguinte comando:
4. Procedimento realizado no servidor 192.168.1.1 (Ativo).
O servidor ativo irá montar os compartilhamentos e fazer a cópia de todos os seus becapes para o servidor espelho (192.168.1.2).
4.3.1 Configurando as placas de rede:
auto lo eth0
Servidor 192.168.1.1:
#vim /etc/network/interfaces
iface lo inet loopback
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.10
network 192.168.1.0
4.3.2 Editar o o arquivo fstab.
# vim /etc/fstab
Para que seja montados todos os compartilhamentos durante o boot é necessário adicionar as seguintes linhas abaixo:
192.168.1.2:/home /home4 nfs auto,soft 0 0
192.168.1.2:/home1 /home5 nfs auto,soft 0 0
192.168.1.2:/home2 /home6 nfs auto,soft 0 0
192.168.1.2:/home3 /home7 nfs auto,soft 0 0
Salve o arquivo e execute o comando:
# mount -a
Esse comando faz com que todos as partições sejam remontadas.
A opção soft permite que o compartilhamento do servidor seja desconectado. Caso os programas tente acessá-lo passam a exibir mensagens de “não é possível ler o arquivo”, ao invés de travarem.
Backup em Fita-DAT com TAR
janeiro 30, 2009

O tar é uma ferramenta muito poderosa para backup.
Alguns dias atrás utilizei esse ferramenta para realizar backup’s em Fitas-DAT.
Logo abaixo vai algumas dicas para quem precisa realizar esses tipos backup’s.
1. Identificando o dispositivo:
# dmesg |grep st0
st 2:0:0:0: Attached scsi tape st0
st0: try direct i/o: yes (alignment 512 B)
2. Procedimento de backup em linha do comando (Shell):
Os comandos devem ser executados como root “#”.
Criar um novo arquivo na fita-dat:
# tar -cvf /dev/st0 <arquivo(s)>
Compactado:
# tar -czvf /dev/st0 <arquivo(s)>
Adicionar arquivos/diretórios:
# tar -rvf /dev/st0 <arquivo(s)>
Restaurar arquivos/diretórios:
# tar -xvf /dev/st0 <arquivo(s)>
Visualizar o conteúdo da fita-dat:
# tar -tvf /dev/st0
Gerando log dos arquivos que foram becapeados:
# tar -tvf /dev/st0 > arquivo.log
Deletar arquivos da fita-dat:
# tar –delete -f /dev/st0 <arquivo(s)>
Procedimento de backup via cron (agendar a tarefa):
Agendando backup’s no cron:
#crontab -e
3. Legenda
TAR
-c -cria um novo arquivo tar;
-M -cria, lista ou extrai um arquivo multivolume;
-p -mantém as permissões originais do(s) arquivo(s);
-r -acrescenta arquivos a um arquivo tar;
-t -exibe o conteúdo de um arquivo tar;
-v -exibe detalhes da operação;
-w -pede confirmação antes de cada ação;
-x -extrai arquivos de um arquivo tar;
-z -comprime ou extrai arquivos tar resultante com o gzip;
-j -comprime ou extrai arquivos tar resultante com o bz2;
-f -especifica o arquivo tar a ser usado;
-C -especifica o diretório dos arquivos a serem armazenados.
Referências:
Monitorando o banco de dados PostgreSQL
janeiro 15, 2009
Pgtop
O pgtop é um utilitário que permite monitorar a performasse de seu SGBD. Muito útil para identificar query’s problemáticas que estão consumindo carga de processamento ou memória.
Antes da instalação algumas informações importante:
- Sistema operacional: Debian GNU/Linux 4.0 Eetch r6
- Banco de dados instalado na máquina: PostgreSQL-8.3.3
Dependências necessárias para instalação:
- Perl
- Getopt
- DBI
- Term
- DBD
Download do pacote:
# wget http://ftp.casaafacerilor.ro/mirrors/CPAN/authors/id/C/CO/COSIMO/pgtop-0.05.tar.gz
# aptitude -y install libdbd-pg-perl
# aptitude -y install libterm-readkey-perl
# tar -zxvf pgtop-0.05.tar.gz
# cd pgtop-0.05
# perl Makefile.PL
# make
# make test
# make install
Após a instalação execute o comando:
# pgtop -s 1 -d database -u postgres
-s Seta o delay (o padrão é 5).
-d Informa a database que você quer monitorar.
-u Informa o usuário do banco.

Tela do comando pgtop
Para mais informações execute os comandos: