Bernardo Albuquerque

WEB Developer

Corrigindo o Erro de Instalação do PHP 5.2.13 com Apache 2.2.15 no Windows

Alguns desenvolvedores que assim como eu preferem instalar seu ambiente de desenvolvimento em PHP sem a utilização de assistentes/utilitários como o XAMPP, se deparam com um problema ao tentar utilizar o Apache 2.2.15 junto com o PHP v. 5.2.13 no Windows.

Isso porque ao instalar o PHP v. 5.2.13 o Apache Web Server simplesmente para de funcionar!

Depois de alguma pesquisa eu encontrei o culpado do problema… Algumas extensões não estão funcionando corretamente nesta versão do PHP para Windows. Com isso, para cada instalação a extensão que está com erro poderá ser diferente, dependendo das extensões escolhidas pelo usuário na hora da instalação.

Para descobrir qual extensão está causando o problema, vá até o terminal do Windows e digite:

C:\php -v

Caso o seu PHP não esteja no path do sistema, acesse, pelo terminal, o diretório de instalação do PHP e digite o comando “php -v”, sem as aspas.

Com isso, o PHP irá exibir mensagens de erro dizendo qual(is) extensão(ões) está(am) provocando o mal funcionamento.

Agora que sabemos quem está provocando o erro podemos realizar duas ações:

A primeira e mais simples ação a ser tomada é ir ao arquivo de configuração do PHP, o php.ini, e desabilitar as extensões que estão gerando o erro, com isso feito é só reiniciar o Apache Web Server e ver se tudo está funcionando corretamente. Contudo, você só poderá tomar essa atitude se as extensões que estão gerando o erro não forem usadas pelas suas aplicações. Caso contrário, quem não irá funcionar perfeitamente é o sistema que utiliza tal extensão.

A segunda opção é procurar no site do PHP ou do desenvolvedor da extensão a correção para a extensão que está gerando o erro. Ao encontrar a extensão correta para a sua versão do PHP, acesse o diretório de instalação do PHP e copie a extensão para o diretório \ext, que no meu caso fica em C:\PHP\ext

Caso o seu problema não esteja nas extensões você pode verificar se o PHP está reclamando da biblioteca  do Windows Vista, msvcr71.dll, se for o seu caso, clique aqui para baixá-la e salve-a no diretório windows/system32.
Agora com a librarie msvcr71.dll, instalada no diretório windows/system32, rode novamente o comando php -v no prompt do Windows e veja se tudo correu bem.

Para garantir que tudo está correto, crie um script php com o conteúdo <?php phpinfo(); ?> e coloque no document root (diretório de páginas web). Inicie o Apache Web Server e acesse essa página.

Se correu tudo bem, ela exibirá as informações sobre a instalação do PHP no seu sistema, caso contrário, se aparecer apenas uma página em branco ou alguma extensão que está habilitada não aparece na lista de extensões exibida pela página que o script criou, abra o seu httpd.conf e pesquise se existe a diretiva PHPIniDir apontando para o caminho do seu php.ini, caso ela não esteja lá, adicione. No meu caso, ficou assim:

PHPIniDir “C:/PHP/php.ini”.

Com isso feito, reinicie novamente o Apache e execute o script.

Verificando arquivos XML com xmlwf e o pacote expat

Desenvolvedores que utilizam o XML sabem que qualquer erro é fatal!
Por isso, um software que auxilie na verificação de erros de sintaxe em extensos arquivos XML é sempre bem vindo.
Pensando nisso, estou repassando a dica do portal Dicas-L, que anunciou um programinha super-útil para verificação de arquivos XML.
O programa é o xmlwf, que verifica a sintaxe de arquivos XML.

Para utilizá-lo executamos o seguinte comando:

$ xmlwf nome_do_seu_arquivo.xml

E em caso de erro a saída seria parecida com essa:

nome_do_seu_arquivo.xml:39:2: mismatched tag

Sua instalação é simples. Usuários Debian ou de outras distribuições que utilizam o apt-get podem utilizar o pacote expat que possui o xmlwf.

apt-get install expat

Para saber mais sobre o pacote expat, visite a homepage do projeto.

Dica: jQuery.spritely para animar backgrounds

jQuery.spritely é um plugin do jQuery para a criação de backgrounds animados em HTML puro e JavaScript.
É um plugin peso leve, com alguns métodos simples que você pode usar em qualquer página HTML, e qualquer parte da página podem interagir com um sprite.
Para vê-lo em ação acesse http://www.spritely.net/ e clique em qualquer lugar da página para ver a magia. :)

Criando Virtual Host do Apache no Windows

Apache HTTP Server... O Melhor!!!Fiz um passo a passo para documentar a configuração dos VirtualHosts do Apache no Windows, para facilitar a vida da galera do tio Bill e também para deixar documentado que um dia eu já desenvolvi usando o Windows.

1º Passo: Acesse o arquivo de configuração do Apache, que na minha instalação se encontra em: “C:\Apache Software Foundation\Apache2.2\conf\httpd.conf” e insira o código do VirtualHost no fim do arquivo. O código que vamos inserir deve parecer algo assim:

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot "D:/workspace/LayoutAdmin/"
ServerAdmin bernardomais@gmail.com
ServerName simplecommerce.localhost
ServerAlias simplecommerce.localhost www.simplecommerce.localhost
ScriptAlias /simplecommerce.localhost/ "D:/workspace/LayoutAdmin"
</VirtualHost>

Salve o arquivo e passe ao próximo passo.

2º Passo: Edite o arquivo “hosts” que no Windows XP fica dentro do diretório: “%SystemRoot%\system32\drivers\etc\”, onde %SystemRoot% é o caminho do diretório “WINDOWS”. O arquivo hosts deve parecer algo como:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Este é um arquivo HOSTS de exemplo usado pelo Microsoft TCP/IP para Windows.
#
# Este arquivo contém os mapeamentos de endereços IP para nomes de host. Cada
# entrada deve ser mantida em uma linha individual. O endereço IP deve
# ser colocado na primeira coluna, seguido do nome de host correspondente.
# O endereço IP e o nome do host devem ser separados por pelo menos um
# espaço.
#
# Adicionalmente, comentários (como estes) podem ser inseridos em linhas
# individuais ou após o nome de computador indicado por um símbolo '#'.
#
# Por exemplo:
#
#      102.54.94.97     rino.acme.com           # servidor de origem
#       38.25.63.10     x.acme.com              # host cliente x

127.0.0.1       localhost

Acrescente os seus virtual hosts ao final do arquivo, incluindo o IP e o nome do host logo abaixo da linha:

127.0.0.1       localhost

Para o nosso exemplo as linhas que deveriamos acrescentar seriam:

127.0.0.1	simplecommerce.localhost
127.0.0.1	www.simplecommerce.localhost

Deixando o nosso arquivo de hosts parecido com este:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Este é um arquivo HOSTS de exemplo usado pelo Microsoft TCP/IP para Windows.
#
# Este arquivo contém os mapeamentos de endereços IP para nomes de host. Cada
# entrada deve ser mantida em uma linha individual. O endereço IP deve
# ser colocado na primeira coluna, seguido do nome de host correspondente.
# O endereço IP e o nome do host devem ser separados por pelo menos um
# espaço.
#
# Adicionalmente, comentários (como estes) podem ser inseridos em linhas
# individuais ou após o nome de computador indicado por um símbolo '#'.
#
# Por exemplo:
#
#      102.54.94.97     rino.acme.com           # servidor de origem
#       38.25.63.10     x.acme.com              # host cliente x

127.0.0.1       localhost
127.0.0.1	simplecommerce.localhost
127.0.0.1	www.simplecommerce.localhost

Agora nosso VirtualHost já está criado e precisamos fazer o Apache reconhecer nossas novas configurações, então, reinicie o seu Apache e acesse o endereço configurado no VirtualHost diretamente no seu browser. Para nosso exemplo acessaríamos o endereço simplecommerce.localhost ou www.simplecommerce.localhost.

Se tudo correu bem você já poderá ver seu projeto.

E se você quiser adicionar mais VirtualHosts à sua configuração vá, novamente, até o arquivo httpd.conf e insira quantas entradas para hosts forem necessárias logo abaixo da que já criamos e insira no arquivo hosts do Windows as suas novas entradas… Não se enquecendo de reiniciar o Apache para que as novas configurações entrem em ação.

Como proteger seu email dos spams e pescadores de emails com imagens

Hoje em dia é difícil encontrar alguém que não tenha um endereço de e-mail. Não ter um e-mail é algo parecido com não ter certidão de nascimento ou carteira de identidade. Com isso, alguns aproveitadores, conhecidos como spammers, utilizam-se de softwares pescadores de e-mails para incluir nossos e-mails em listas de spam.

Mas, para quem não tem paciência de deletar milhares de spams e quer livrar sua caixa de e-mail do lixo eletrônico, pode usar a técnica de criar uma imagem com os dados de seu email. E esta tarefa ficou ainda mais fácil com o serviço chamado “E-Mail Icon Generator” que pode ser acessado gratuitamente no endereço http://services.nexodyne.com/email/index.php.

O E-Mail Icon Generator cria uma imagem com o seu endereço de e-mail e dependendo do provedor usado ele ainda gera uma imagem personalizada. O serviço ainda lhe dá as opções de baixar a imagem, clicando em:

“To save this icon, click here

Ou de utilizar a imagem diretamente no servidor do E-Mail Icon Generator, inserindo o endereço da imagem exibido em:

To display this image elsewhere, use the URL:
http://services.nexodyne.com/email/icon/b7f7K/dG%3D/1w%3D/0/image.png

Na tag HTML “img” da seguinte forma:

<img alt="seu_email@seu_provedor.com"
src="http://services.nexodyne.com/email/icon/b7f7K/dG%3D/1w%3D/0/image.png" />

Assim, conseguimos fugir das redes de scripts pescadores de e-mails. Por enquanto…

Referências:

The Developer’s Conference 2009 na UFF

Em novembro, a Universidade Federal Fluminense será palco do maior evento Java no Brasil.

O Núcleo de Tecnologia PROAC/PROPPI (NTP2), em parceria com a Globalcode, tem a honra de realizar a 3ª edição do The Developer’s Conference 2009 (TDC 2009), com a participação de Chris Schalk, Developer Advocate do Google, que trabalha atualmente no time de Google App Engine, plataforma de Computação em Nuvem do Google, além dos principais nomes da comunidade Java mundial: Ed Burns (Sun Microsystems), Rod Johnson (SpringSource) e Mike Keith (Oracle).

O evento, que será realizado no dia 11 de novembro, é direcionado a desenvolvedores experientes, arquitetos de software, gerentes de projetos, professores e alunos universitários. A equipe do NTP2 já está se preparando para o sucesso do evento.

O TDC 2009 terá tradução simultânea e divulgação, em tempo real, pelo twitter.

Para mais informações, clique aqui.

Não deixe de participar!

Inserindo imagens no Gmail sem anexar

Nos últimos anos eu tenho visto que muitos membros da comunidade de software livre, assim como eu, tem dado preferência ao webmail GMail (o e-mail do Google), para gerenciar suas mensagens de e-mail e por isso eu estou sempre ligado nas novidades e utilidades que o sistema nos fornece.

Uma funcionalidade que simplificou a minha vida e pode ser útil para você é o botão de “Inserir Imagem” na tela de confecção do e-mail, pois, com ele você pode incluir imagens em seus e-mails sem precisar anexar ou copiar/colar arquivos.

Botão "Inserir Imagem"

Botão "Inserir Imagem"

Você pode subir imagens do computador ou incluir imagens que já existam na web. Mas, essa opção não fica ativa por default, por isso, para habilitar o botão na interface de confecção de e-mail do GMail acesse as configurações

Tela de configurações do GMail

Tela de configurações do GMail

clique no link Labs

Clique no link Labs

Clique no link Labs

No Labs você verá várias funcionalidades e recursos opcionais em teste fornecidos pelo Google. Habilite manualmente a opção “Inserção de imagens” escolhendo a opção Ativar

Selecione Ativar

Selecione Ativar

e clique no botão Salvar Alterações para ativar a opção.

Clique em Salvar Alterações

Clique em Salvar Alterações

Permitindo acesso remoto ao servidor MySQL no Linux

O MySQL, por padrão, ao ser instalado está configurado para permitir acesso local somente, por medidas obvias de segurança. Contudo, se você precisa acessá-lo a partir de uma máquina remota, habilite o seu uso a partir de qualquer máquina. Para fazer isso use os seguintes procedimentos:

Como root no terminal do Linux digite:

vim /etc/mysql/my.cnf

E altere a seguinte linha:

bind-address = 127.0.0.1

Mudando para:

bind-address = 0.0.0.0

Agora reinicie o serviço mysql com:

/etc/init.d/mysql restart

Entre no prompt do mysql com o comando:

mysql –u root –p

Esse comando irá solicitar a senha de root do MySQL (cuidado para não confundir com a senha de root do Linux, é a senha de root do MySQL que deve ser digitada). Pressione enter e veja a mensagem de boas vindas do MySQL. Deve ser algo parecido com isso:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.0.75-0ubuntu10.2 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Então digite o seguinte comando:

GRANT ALL ON *.* TO ‘root’@'%’ IDENTIFIED BY ‘suasenha‘;

Esse comando é bem explicativo, ele garante (GRANT) todos (ALL) os privilégios de acesso a todos (*.*) as databases do banco, ao (TO) usuário (’root’) em todas as máquinas (’%’) usando a senha do usuário root (IDENTIFIED BY ’suasenha’). Traduzindo em miúdos, você acessa tudo no banco com o usuário root em qualquer máquina remota.

Se você quiser dar acesso somente a uma maquina específica troque ‘%’ pelo endereço IP da máquina que irá acessar o MySQL, por exemplo: para dar acesso somente a máquina 192.168.0.2, o comando ficaria assim:

GRANT ALL ON *.* TO 'root'@'192.168.0.2' IDENTIFIED BY 'suasenha';

Lembrando-se de mudar suasenha pela senha do usuário root do MySQL.

Agora pode testar a conexão com o banco de dados de outra máquina da rede.

Abraços!

Descompactando arquivos com o terminal do Linux

Por várias vezes eu fui questionado por novos usuários de Linux sobre como descompactar os diversos formatos de arquivos utilizados no dia-a-dia, tais como: zip, rar, tar.gz, tar.bz2.
Para espanto dos newbies eu sempre informo que a melhor maneira é usar o terminal!

E para provar que isso é verdade eu descrevo abaixo um pequeno Cheat Sheet dos comandos utilizados, veja como são simples:

zip:

gunzip nomedoarquivo
rar:

rar x nomedoarquivo
tar:

gzip nomedoarquivo
tar.gz:

tar -xvzf nomedoarquivo
tar.bz2:

tar -xvjpf nomedoarquivo

[pt_BR] Instalando Tomcat 6 no Ubuntu

Esse post é uma livre tradução do artigo Installing Tomcat 6 on Ubuntu com algumas correções, adaptações e acréscimos que julguei necessários.

Se você estiver executando o Linux Ubuntu e quer usar o Servlet Container Tomcat, você não deve usar a versão dos repositórios do Ubuntu (instaláveis a partir do apt-get), pois, ela simplesmente não funciona corretamente. Em vez disso você vai precisar usar o processo manual de instalação que eu estou descrevendo aqui.

Antes de instalar o Tomcat, você precisa ter a certeza de que tem instalado o Java em sua máquina. Eu suponho que se está tentando instalar o Tomcat você já instalou o Java, mas se você não tiver certeza verifique com o comando dpkg, da seguinte forma:

dpkg --get-selections | grep sun-java

Esse comando dará esta saída se você tem o Java instalado:

sun-java6-bin						install
sun-java6-jdk						install
sun-java6-jre						install

Se o comando não tem nenhum resultado, você pode instalar a última versão do Java com este comando:

sudo apt-get install sun-java6-jdk

Instalação:

Agora vamos baixar e descompactar o Tomcat a partir do site do Apache. Você deve verificar para certificar-se que não há outra versão.

wget http://linorg.usp.br/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz

Após o download deve-se descompactar o arquivo em /usr/local/apache-tomcat-6.0.20. Esse diretório pode ser alterado, mas para manter a organização do sistema use-o. E caso esteja usando uma outra distribuição do Linux descompacte no diretório /opt.

sudo tar -xvzf apache-tomcat-6.0.20.tar.gz -C /usr/local/

A melhor coisa a fazer é usar um local permanente. Eu escolhi /usr/local/apache-tomcat-6.0.20, mas você pode movê-lo para outro lugar se quiser, como o diretório opt/.

sudo mv apache-tomcat-6.0.20 /opt/

Mude o nome do diretório de apache-tomcat-6.0.20 para apenas tomcat para evitar excessos de digitação, com o comando:

$ mv  apache-tomcat-6.0.20 tomcat

Agora dê permissões de leitura e escrita ao diretório para seu usuário, tornando-se dono do diretório:

$ sudo chown -R  /opt/tomcat  ou $ sudo chown -R  /usr/local/tomcat

Substitua pelo seu nome de usuário.

Tomcat exige definir a variável JAVA_HOME. A melhor maneira de fazer isso é colocá-lo em seu arquivo .bashrc que fica no seu diretório home. Você também pode editar o arquivo startup.sh se assim o quiser.

O melhor método é editar o seu arquivo .bashrc e adicionar a linha abaixo. Você vai ter que fazer logout do shell para que as alterações tenham efeito.

vim ~/.bashrc

E entre no modo de edição do arquivo digitando a ‘i’.

Adicione a seguinte linha:

export JAVA_HOME=/usr/lib/jvm/java-6-sun

Pressione [Esc] e depois ‘:’ e ‘wq’ da seguinte forma:

:wq

O comando acima sai do modo de edição do arquivo .bashrc, salva e fecha o arquivo.

Neste ponto, você pode iniciar o Tomcat apenas executando o script startup.sh que fica no diretório tomcat/bin/.

Iniciando Automaticamente

Para fazer o Tomcat iniciar automaticamente no boot do computador, você pode adicionar um script para fazer o auto-start e o shutdown do Tomcat.

sudo vim /etc/init.d/tomcat

Agora digite ‘i’ para entrar no mode de edição e cole o seguinte texto:

#!/bin/bash

# Tomcat auto-start

#

# description: Auto-starts tomcat

# processname: tomcat

# pidfile: /var/run/tomcat.pid

export JAVA_HOME=/usr/lib/jvm/java-6-sun

case $1 in

start)   sh /usr/local/tomcat/bin/startup.sh  ;;

stop)    sh /usr/local/tomcat/bin/shutdown.sh ;;

restart) sh /usr/local/tomcat/bin/shutdown.sh ;

         sh /usr/local/tomcat/bin/startup.sh  ;;

esac

exit 0

Após colar o texto digite [Esc] e ‘:’ e wq da mesma forma como explicado acima.
Você precisa fazer o script executável com o comando chmod:

sudo chmod 755 /etc/init.d/tomcat

O último passo é associar esse script para as pastas de inicialização com um link simbólico. Execute esses dois comandos e devemos estar no caminho.

sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat

Tomcat agora deve estar totalmente instalado e operacional. Enjoy!

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.