sexta-feira, 19 de agosto de 2011

LAMP: Linux, Apache, MySQL e PHP



Todo usuário um pouco mais avançado no Linux deve conhecer o termo LAMP. Para os que não conhecem, vou começar transcrevendo o que a Wikipedia tem a dizer sobre LAMP:

LAMP é um acrônimo para a combinação:
  • Linux
  • Apache
  • MySQL
  • PHP, Perl ou Python
  • Recentemente a letra P começou a fazer referência a PERL ou Python como linguagens de programação alternativas ao PHP.
A combinação dessas tecnologias é bastante popular devido ao baixo custo de aquisição (Software Livre) e também pela performance e escalabilidade. Um outro bom motivo para adoção do LAMP é a facilidade de trocar de servidor já que a grande maioria dos serviços de hospedagem contam com estes softwares. Isso para outras linguagens e bancos de dados normalmente é um inconveniente, tendo em vista as diferentes configurações e restrições dos servidores. PHP é uma linguagem de script e uma das vantagens é que não há o risco de você não ter o código fonte que está funcionando no servidor, diferente de Java e Asp.Net que são pré-compiladas.
 Neste artigo, não pretendo "chover no molhado". Mais do que mostrar como configurar o LAMP no OpenSuSE, pretendo mostrar como tirar algum proveito dele. Nesta linha de pensamento, vou mostrar como instalar o dotProject, uma alternativa Open Source ao MS Project, uma ferramenta para gerenciamento de projetos.

terça-feira, 19 de julho de 2011

Bug no Flash-Plugin do Firefox

Mais um "buguezinho" chato: o Flash plugin no Firefox fica dandos uns "paus", mostrando uns lags e coisas do gênero, no lugar da imagem.

Descobri uma maneira de corrigir isto:

1) Entrar no "famoso" about:config
2) filtrar por dom.ipc
3) colocar tudo em modo false.

Veja os detalhes na figura abaixo:


Depois disto, os videos e imagens irão aparecer normais no Flash Player Plugin.

************ ATUALIZAÇÃO ****************
************   09/11/2012     *****************

ATENÇÃO!!!

Se você acompanha este Blog e fez as recomendações acima, é provável que esteja tendo problemas com o plugin nas versões mais novas do Firefox!!! Para reverter a situação, altere novamente os parâmetros abaixo, "setando-os" com o valor True.

dom.ipc.plugins.enabled = True
dom.ipc.plugins.flash.subprocess.crashreporter.enabled = True

Eu não sou conspiracionista, mas acho que o plug-in do Flash vai acabar com o Firefox!!!

sexta-feira, 3 de junho de 2011

Recuperando a senha do root


Esqueceu a senha do root? Eis o remédio!

Já mostrei como recuperar a senha do root no artigo Sistema de Recuperação. Mas como este é um assunto relevante, decidi colocar um destaque para este tema.

Existem muitas maneiras para se fazer isto. Existe a maneira "hacker" e a maneira 100% garantida.

Versão "hacker" simples e rápida

Achei um fragmento na "net" com a seguinte dica:
processo mais simples que esse eu não conheço:

Antes de iniciar o opensuse, na tela do grub, acrescente, na linha de opções do kernel:

linux init=/bin/bash

o sistema vai iniciar no prompt, a partição foi montada como somente leitura, para rescrever a senha, precisamos alterar para modo gravação com o seguinte comando:

mount -o remount -rw /

Blz, hora de resetar a senha, execute:

passwd

E informe a nova senha, confirme em seguida.

Testei. E, por enquanto, funciona!

A forma acima, sempre encontrada em forums como a "best of the best", funciona quando tudo está normal, ou seja, se o único problema for o esquecimento da senha, mas todo o resto funcionar (dá boot normalmente).

Sempre uso a forma a seguir, pois foi a que aprendi no forum oficial do openSuSE. Apesar de ter muito mais etapas no processo, ela te dá mais detalhes sobre o funcionamento do linux e a possibilidade de contornar situações imprevistas. Vamos lá...

Versão 100% garantida

Faremos isto usando o Sistema de Recuperação do OpenSuSE.

O sistema de recuperação do opensuse nada mais é que a possibilidade de você dar boot pelo DVD e "assumir" o sistema em modo root. Veja como fazer isto seguindo as figuras abaixo.


Selecionando o Sistema de Recuperação do DVD de instalação

Não deixe de apertar F2 e selecionar nosso idioma. Senão o teclado vai ficar uma bagunça!


Pronto para entrar em modo root?

Digite root e aperte Enter, para assumir o controle em modo root!


Montando a partição de boot do sistema

Existe um truque no openSuSE para você montar a partição de boot "original" e assumir o controle como se você tivesse dado boot normalmente. Este truque consiste em montar a partição "original" e usar o comando chroot. Mas, para isto, tem um pequeno detalhe técnico que vou mostrar agora. Siga as instruções!

1) montando a partição
Esta é a parte mais fácil:

mount /dev/sda2 /mnt

2) montando os dispositivos virtuais (detalhe técnico)

mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys

3) a "mágica" do chroot

 Agora que está tudo preparado,  basta digitar

chroot /mnt

Pronto, agora você está em seu HD, como se tivesse dado o boot por ele, e com os privilégios do super usuário root! Veja na figura abaixo a sequência completa destes comandos e como o prompt muda para a cor vermelha, sinalizando que você está em modo root.Agora é só digitar:

passwd

digitar a nova senha do root!


Algumas explicações necessárias


Por questões de simplicidade, alguns detalhes foram omitidos, como por exemplo de onde vem a informação que a partição de boot (ou do root) é a /dev/sda2!

Tomando por base um sistema com um único HD, isto faz muito sentido, pois em tais casos, geralmente /dev/sda1 é a partição de swap e /dev/sda2 a partição de boot.
Em outras situações onde existem dois ou mais HD as coisas podem estar de forma diferente e usar o fdisk pode ser a maneira mais apropriada para descobrir quem é quem. Para estas e outras situações, talvez seja melhor você ler meu artigo anterior, o Sistema de Recuperação.



Até o próximo artigo...

quinta-feira, 2 de junho de 2011

Bug: KDE do 11.4 não monta NTFS USB Driver

Um Bug chato que aparece no openSuSE 11.4, depois de atualizar o Kernel: o "auto mount" não funciona quando o sistema de arquivos em questão é o NTFS. E isto tanto vale para Pen Drivers quanto para discos externos.

Existe uma solução documentada pelo forum do openSuSE, que replico aqui, caso alguém precise:

The device notifier reports an error when
trying to mount my external ntfs drive:

org.freedesktop.UDisks.Error.Failed: Requested filesystem type is neither
well-known nor in /proc/filesystems nor in /etc/filesystems

The drive worked fine before the update to kernel 2.6.37.6-0.5-desktop x86_64.


Reproducible: Always

Steps to Reproduce:
1.Insert a NTFS USB drive
2.
3.
Actual Results:
Device is not mounted.

Expected Results:
Device should be mounted and accessible through dolphin or other file browsers.

Adding "ntfs" to /etc/filesystems seems to fix the problem

Sacaram? É só editar o arquivo /etc/filesystems adicionando ntfs na penúltima linha.
vfat
hfs
minix
reiserfs
ntfs
*
Atente para o detalhe de que aquele asterisco (*) na linha final deve ser mantido lá.

domingo, 29 de maio de 2011

Sistema de Recuperação

Uma das coisas que me fazem gostar muito do Linux é que, salvo uma pane muito grave, dificilmente você se vê numa situação de "perda total", onde a "única alternativa" é formatar e reinstalar tudo outra vez!

Recentemente, me deparei com uma situação inusitada que, embora tenha acontecido em um ambiente virtual e controlado, bem pode acontecer numa situação do dia-a-dia, como por exemplo você clonar uma partição do HD (boot, por exemplo) e depois tentar recuperá-la em outro HD.

O pessoal do suporte costuma fazer muito isto! Digamos que uma empresa comprou 15 máquinas idênticas para seus colaboradores. Ao invés do pessoal do suporte instalar tudo em todas as máquinas, instala-se tudo em uma máquina e depois é só cloná-la e restaurar o clono nas outras. Mole, mole...

Mas podem ocorrer algumas "pegadinhas" como esta que ocorreu comigo, embora haja uma boa explicação para isto!

Ao tentar o boot em uma máquina virtual que importei de outro ambiente (uso muito o VirtualBox), deparei-me com a situação mostrada na figura abaixo.


Como vocês podem ver na figura acima, o sistema não conseguiu completar o boot porque não encontrou a partição de boot! Prestem atenção na seguinte informação:

Could not find /dev/disk/by-id/ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8-part2.

Bem, o que interessa aqui é o detalhe do /disk/by-id/!

Normalmente, as partições são identificadas no Linux por algo como /dev/sdaN, onde N é o número da partição. Isto é o que chamamos de device name. As versões mais novas do Linux estão identificando o(s) disco(s) e suas respectivas partições agora pelo ID do dispositivo (device ID). Isto também tem uma boa razão para ser assim, principalmente quando você pode ter muito baratamente muitos discos em um mesmo sistema!.

Enfim, caso isto ocorra com você, vou mostrar como corrigir isto, usando o Sistema de Recuperação do OpenSuSE.

O sistema de recuperação do opensuse nada mais é que a possibilidade de você dar boot pelo DVD e "assumir" o sistema em modo root. Veja como fazer isto seguindo as figuras abaixo.


Selecionando o Sistema de Recuperação do DVD de instalação

Não deixe de apertar F2 e selecionar nosso idioma. Senão o teclado vai ficar uma bagunça!


Pronto para entrar em modo root?

Digite root e aperte Enter, para assumir o controle em modo root!


Explorando o ambiente

Usando o fdisk

O FDISK


Normalmente, em sistemas com um só HD, /dev/sda1 é a partição de swap e /dev/sda2 a partição de boot. Em outras situações onde existem dois ou mais HD as coisas podem estar de forma diferente e usar o fdisk pode ser a maneira mais apropriada para descobrir quem é quem.

O fdisk é o particionador de linha de comando do linux. Ele pode ser usado para obter informações a respeito do(s) disco(s) instalado(s) no sistema. Em nosso caso, vamos acionar o fdisk para ver como nosso disco foi particionado. É só digitar:

fdisk /dev/sda

NOTA: Se você é um daqueles raros que ainda usa uma placa mãe não SATA, com HD IDE, então use /dev/hda.

Uma vez no fdisk, tecle p e Enter, para exibir as partições de /dev/sda

Agora podemos ver que sda tem duas partições -> sda1 e sda2. sda1 é a partição de swap e sda2 é nossa partição de boot. Pronto, já temos as informações que precisamos para resolver o problema!


Montando a partição de boot do sistema e assumindo o controle como o root "de verdade".

Existe um truque no openSuSE para você montar a partição de boot "original" e assumir o controle como se você tivesse dado boot normalmente. Este truque consiste em montar a partição "original" e usar o comando chroot. Mas, para isto, tem um pequeno detalhe técnico que vou mostrar agora. Siga as instruções!

1) montando a partição
Esta é a parte mais fácil:

mount /dev/sda2 /mnt

2) montando os dispositivos virtuais (detalhe técnico)

mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys

3) a "mágica" do chroot

 Agora que está tudo preparado,  basta digitar

chroot /mnt

Pronto, agora você está em seu HD, como se tivesse dado o boot por ele, e com os privilégios do super usuário root! Veja na figura abaixo a sequência completa destes comandos e como o prompt muda para a cor vermelha, sinalizando que você está em modo root.


A tela após você assumir o root do sistema


Verificando as pastas do sistema "original"


Resolvendo o problema


Agora que estamos no controle do sistema "original" (verdadeiro), podemos corrigir o problema.


O GRUB e o arquivo menu.lst
Todos sabem(?) que o Grub é o gerenciador de boot do Linux. E sabem também que ele usa um arquivo chamado menu.lst, para obter as informações necessárias para o boot, certo? Ok. Então vamos verificar os dados contidos em menu.lst do nosso sistema "original".

Basta usar um belo cat /boot/grub/menu.lst para ver algo como o mostrado na tela abaixo.




Ops, Grub!

Podemos ver na figura acima que o grub procura a partição de boot em /dev/disk/by-id/ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8-part2. Ocorre que ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8 é o ID do HD de origem, mas estamos em outro HD, não é mesmo? Então o ID aqui é diferente e o Grub se ferra!


FSTAB

Outro arquivo usado pelo sistema e que pode atrapalhar o processo de boot é o fstab. O fstab guarda as informações a respeito das partiçoes do(s) disco(s) e seus respectivos pontos de montagem. Veja ne figura abaixo o resultado do comando cat /etc/fstab.


cat /etc/fstab


Como podemos ver na figura acima, as informações contidas no fstab usam disk-by-id. Este é outro arquivo que vamos ter que editar.

Alterando as configurações das partições

Há duas maneiras de corrigir inconsistências no fstab: através do yast ou editando o arquivo diretamente.

Eu prefiro trabalhar com arquivos de configuração editando-os diretamente. Mas isto porque já me sinto seguro em fazer alterações neles. Se você está iniciando, pode fazer quase tudo diretamente no yast, o utilitário de console para configuração do sistema (o yast2 é para o modo gráfico).

Usando o yast

Para entrar no yast, basta digitar yast na linha de comando.

Tela inicial do yast

Para chegar no particionador via yast, basta selecionar Sistema / Particionador. Veja na figura abaixo o yast exibindo o modo como a partição /dev/sda1 está montada em /etc/fstab.


/dev/sda1 em /etc/fstab, vista pelo yast

Como podemos ver na figura acima, /dev/sda1 está montada via fstab como a opção Device ID e é justamente isto que está causando o problema. Basta agora mudar para Device name e pronto.
Salvando esta modificação e voltando à linha de comando, podemos dar um novo cat /etc/fstab para ver o resultado. Deve ser algo como o mostrado na figura abaixo.

/etc/fstab modificado pelo yast

Podemos ver na figura acima que /dev/sda1 (a partição de swap) agora está montada pelo device name em fstab. Note que a partição /dev/sda2 continua montada pelo seu Device ID.

Editando fstab diretamente


Depois que você ganha experiência, tende a editar os arquivos de configuração diretamente. Vamos fazer isto com /etc/fstab, usando o joe. O joe é um editor de textos do console que acho melhor que o vi! Para chamá-lo, basta digitar joe, seguido do caminho/arquivo a ser editado.


Editando /etc/fstab com o joe

Para saber o que fazer com o joe, basta apertar Ctrl+K, depois H, para obter ajuda na tela.
Depois que editar fstab com o joe, basta Ctrl+K X, para salvar e sair.


Hora de editar /boot/grub/menu.lst


/boot/grub/menu.lst antes de editar


/boot/grub/menu.lst editado

 Note na figura acima que as informações de partição foram modificadas para Device name, à semelhança de /etc/fstab.


/boot/grub/device.map


Há um último lugar onde as informações do HD estão gravadas no formato /dev/disk/byid. Trata-se do arquivo device.map, usado também pelo grub. Podemos abrí-lo com o joe e editá-lo, como mostrado nas figuras abaixo.



/boot/grub/device.map antes da edição

/boot/grub/device.map depois da edição


De volta ao controle!


Depois de todas as alterações feitas a gravadas, basta reiniciar o sistema, para ver se tudo deu certo! Basta digitar

reboot


De volta ao sistema "original"

Até o próximo artigo...