Instalar XAMPP para Desenvolvimento Fácil, embarcado

Pilhas de middlewares como essas poderiam revolucionar o software livre, o desenvolvimento de software de multicamada

Pilhas de softwares livres como XAMPP da Apache Friends estão simplificando o desenvolvimento do software livre, tornando mais fácil escrever e distribuir aplicativos em um ambiente estável e padronizado. Tradicionalmente, AMPP -- Apache, MySQL, PHP e Perl -- foram todos instalados e configurados como produtos separados. A tendência de combiná-los em pilhas de middlewares embarcados promete tornar o desenvolvimento de software livre mais competitivo com o desenvolvimento™ de aplicativos J2EE, pelo menos para aplicativos inferiores. Nesse artigo, você aprenderá como instalar, configurar e fazer backup de XAMPP no Mandrake Linux™ 10.0 e também como configurar e administrar XAMPP, bem como instalar seus próprios aplicativos em um ambiente XAMPP.

Nils-Erik FrantzellComputer Science Department, UC Santa Cruz

Nils-Erik Frantzell atualmente está estudando ciência da computação na Universidade da Califórnia, Santa Cruz. Seus interesses incluem Linux, programação da Web (particularmente PHP), interligação de redes, tecnologias de software livre e se divertir com hardware de computador. Quando não está no computador, ele passa seu tempo cuidando de seus peixes carnívoros enquanto ouve música eletrônica. É possível entrar em contato com Nils-Erik em nfrantze@ucsc.edu.



30/Nov/2004

O chegada do Java 2 Enterprise Edition™ alterou dramaticamente a paisagem de software, fornecendo uma pilha de middlewares que simplificou consideravelmente a tarefa de configurar e implementar aplicativos™ Java. Por um tempo, a comunidade de software livre foi deixada para trás porque lhe faltava uma arquitetura integrada semelhante.

Recentemente, com a introdução de pilhas de softwares livres embarcados como XAMPP da Apache Friends, essa situação começou a mudar. Essas pilhas ainda são bem simples e rudimentares quando comparadas com J2EE, mas elas são, apesar disso, uma etapa importante no caminho para a integração completa de sistemas. O PHP 5.0 (que torna o PHP completamente orientado a objetos) é um bom indicador de que essa tendência irá se acelerar.

O foco desse artigo está em uma das pilhas de softwares livres embarcados: XAMPP da Apache Friends.

Apresentando O XAMPP

XAMPP é um pacote de AMPP (Apache MySQL, PHP, Perl) que é uma das poucas pilhas de middlewares AMPP não-comerciais disponíveis no Linux. Com sua forte integração, o XAMPP torna possível executar qualquer coisa, desde uma página inicial pessoal até um site de produção com todos os recursos (embora apenas para propósitos de desenvolvimento; o XAMPP não se destina ao uso em um servidor de produção devido a problemas de segurança).

O XAMPP realmente brilha nas seguintes áreas:

  • Ele é fácil de instalar e configurar.
  • Contém uma série de pacotes úteis que tornam fácil executar ações como gerar relatórios de tráfego e acelerar conteúdo de PHP.
  • Ele foi testado completamente nas distribuições de SUSE, Red Hat, Mandrake e Debian Linux, assim como no Windows® e Solaris.

Para esse artigo, instalaremos o XAMPP sob o Mandrake Linux 10.0. Vamos começar examinando os pacotes padrão fornecidos com o XAMPP.

Pacotes Básicos

Pacotes básicos incluem sistema, programação e software do servidor:

  • Apache, o famoso servidor da Web
  • MySQL, um banco de dados de software livre excelente, gratuito
  • PHP, a linguagem de programação (nas versões 4.3.8 e 5.0.1 no momento em que esse documento foi escrito)
  • Perl, a linguagem de programação
  • ProFTPD, um servidor FTP
  • OpenSSL, para suporte à camada de soquetes seguros

Pacotes de Gráficos

O XAMPP inclui os seguintes pacotes relacionados a gráficos:

  • GD, a biblioteca "Desenho de Gráficos"
  • libpng, a biblioteca de referências de PNG oficial
  • libjpeg, a biblioteca de referências de JPEG oficial
  • ncurses, a biblioteca de gráficos de caracteres

Pacotes de Bancos de Dados

E o que seria uma pilha integrada sem alguns pacotes de bancos de dados como:

  • gdbm, a implementação de GNU do UNIX padrão® biblioteca dbm
  • SQLite, um mecanismo de banco de dados SQL extremamente pequeno, de configuração zero
  • FreeTDS, uma biblioteca do banco de dados que fornece aos programas UNIX e Linux a capacidade de conversar com bancos de dados Microsoft® SQL e Sybase

Pacotes XML

Para desenvolvimento de XML, o XAMPP inclui o seguinte:

  • expat, uma biblioteca de analisadores XML
  • Salbotron, um kit de ferramentas XML
  • libxml, um analisador XML C e um kit de ferramentas para GNOME

Pacotes de PHP

Para desenvolvimento de PHP, o XAMPP inclui o seguinte:

  • PEAR, a biblioteca de PHP
  • Uma classe pdf que gera documentos PDF dinâmicos com PHP
  • TURCK MMCache, um aprimorador de desempenho de PHP

Outros Pacotes

E finalmente, o XAMPP demonstra sua versatilidade incluindo os seguintes pacotes:

  • zlib, uma biblioteca de compactação
  • mod_perl, que incorpora um interpretador Perl persistente no Apache
  • gettext, um conjunto de ferramentas que ajuda pacotes de GNU a produzir mensagens multilíngues
  • mcrypt, um programa de criptografia
  • Ming, uma biblioteca de saída Flash (SWF)
  • Freetype2, um de fonte de software
  • IMAP C-Client, uma API de programa de correio

Agora, vamos falar sobre a instalação do XAMPP.


Instalando e Efetuando Daemon

Para instalar o XAMPP, faça download do binário mais recente a partir do Web site da Apache Friends (consulte Recursos para obter um link). Descompacte esse arquivo tar em /opt utilizando o seguinte comando:

tar xvfz xampp-linux-1.4.7.tar.gz -C /opt

É isso! O XAMPP agora está instalado em /opt/lampp. Qualquer instalação anterior que estava em /opt foi sobrescrita. Se você estiver executando uma versão mais antiga do XAMPP e não quiser fazer download do pacote inteiro novamente, a Apache Friends possui um pacote de upgrade disponível para download.

Agora que tudo está instalado, vamos iniciar os novos daemons. Altere seu diretório de trabalho atual para /opt/lampp (cd /opt/lampp) e insira o seguinte:

./lampp start

É necessário observar o seguinte:

Iniciando XAMPP para Linux 1.4.7...
XAMPP: Iniciando Apache com SSL (e PHP5)...
XAMPP: Iniciando MySQL...
XAMPP: Iniciando ProFTPD...
XAMPP para Linux iniciado.

O XAMPP agora está instalado e em execução. A melhor maneira de verificar isso é abrir um navegador e digitar host local na barra de endereço e pressionar a tecla Enter. Você deve ser redirecionado para a página de boas-vindas do XAMPP.

Figura 1. A Página de Boas-vindas do XAMPP
A Página de Boas-vindas do XAMPP

Clique no link Status no navegador à esquerda para ver se os serviços necessários foram iniciados corretamente. Se tudo estiver bem, você deve ver a seguinte página:

Figura 2. Página de Status de Serviço
Página de Status de Serviço

Parabéns! Você acaba de instalar e configurar um ambiente de desenvolvimento de AMPP totalmente funcional. Agora vamos instalar um aplicativo simples para demonstrar como você pode utilizar o ambiente.


Instalando um Aplicativo Simples

Para fazer uso de recursos básicos do XAMPP, é necessário um aplicativo simples. O melhor aplicativo seria um que utilizasse um back end do banco de dados; um banco de dados relativamente simples contendo uma tabela seria bom.

O banco de dados de teste conterá uma tabela com uma coluna. Vamos seguir a tradição milenar (de computador) de programas de teste e plano para a sua tabela conter um único registro de "Hello World!". Nós acessaremos esse banco de dados utilizando um script Perl e um PHP. Ambos os scripts acessarão o banco de dados, recuperando a única linha e enviando-a para a tela.

A Ferramenta

Nosso banco de dados será criado e administrado utilizando phpMyAdmin, uma excelente ferramenta de administração de MySQL baseada na Web escrita em PHP. Ela possui uma notável interface com o usuário e permite que você faça coisas de complexidade variada, indo desde a criação, desenvolvimento e alteração de bancos de dados e de tabelas até a exportação de dados, o gerenciamento de chaves e o processamento de arquivos SQL. phpMyAdmin é uma ferramenta notável porque:

  • Ela ajuda os iniciantes a se familiarizem com MySQL sem precisar tratar com o que podem ser interfaces da linha de comando intimidantes.
  • Ela permite que usuários avançados executem as tarefas de rotina mais simples com velocidade e tranquilidade.
  • Ela é prática para aqueles casos em que você deseja fornecer a alguém privilégios de administração sem lhe permitir o todo-poderoso acesso ao shell.

Criando o Banco de Dados

Para criar o banco de dados de teste em phpMyAdmin:

  1. Vá para a página inicial do XAMPP (host local).
  2. Selecione phpMyAdmin no navegador à esquerda sob Ferramentas.
  3. No campo Criar Novo Banco de Dados na página inicial do phpMyAdmin, insira hello_world e clique em Criar.

Agora, você deve criar uma tabela dentro desse banco de dados e especificar quantos campos a tabela deve conter (um campo é análogo a uma coluna). Vamos chamar nossa tabela "hello_table" e fazê-la conter um campo para ter nosso registro de "Hello World!". Insira hello_table no campo de texto de Nome e insira 1 no campo de texto de Campos . Quando tiver concluído, clique em Ir.

Agora, é hora de executar a última etapa da criação do banco de dados: escolha um nome e uma definição de tipo de dado para a nossa coluna. Vamos ficar com o tema "hello" e nomear a nossa coluna "hello_column"; insira hello_column no campo de texto de Campo .

Como nós estaremos armazenando a cadeia "Hello World!" em nossa coluna, seu tipo deve ser um tipo de caractere com um comprimento 12 (o comprimento da cadeia "Hello World!"). O tipo padrão varchar é suficiente. No campo de texto de Comprimento/Valores próximo ao Tipo, insira 12 para um comprimento máx. de 12 caracteres. Não se preocupe com o restante dos campos dessa página. Vá em frente e clique em Salvar.

Se tudo foi feito corretamente, você deve ver o seguinte:

Figura 3. Resumo do Banco de Dados do Hello World
Resumo do Banco de Dados do Hello World

Agora, vamos inserir nosso registro de "Hello World!". Clique na guia Inserir e insira "Hello World!" no campo de texto de Valor . A lista suspensa Função pode ser ignorada nesse caso. Clique em Ir para inserir seu registro do "Hello World!" no banco de dados.

Para confirmar que o registro foi inserido com êxito, clique na guia Navegar . Sua lista "hello world" deve ser exibida.

Programação de Script

Agora que o back end está instalado e em execução, é hora de tratar da parte de programação de script. Utilizaremos dois scripts, um em Perl e um em PHP. Nossos únicos requisitos para cada script serão: uma conexão com o banco de dados, um acesso ao banco de dados e uma saída para a tela da linha recuperada.

Lista 1. Conexão com o Banco de Dados Simples e Recuperação em PHP Utilizando PEAR::DB
require_once 'DB.php'; // must be included in any script that uses PEAR::DB

// it is a huge security risk to store your database connection information
// in the same file as your code. We have done it here solely for the purpose
// of this example. Please store your database connection information in another
// file that is not in your document root directory and adequately protected.
// database connection information

$db_host    = "localhost";  	  // hostname of the database server
$db_user    = "root";           // database user's username
$db_pass    = "";      		  // database user's password, nothing by default
$db_name    = "hello_world";    // the name of the database to connect to
$db_type    = "mysql";          // the type of database server.

// your data source name string. This contains the connection
// information for your database.
$dsn = "$db_type://$db_user:$db_pass@$db_host/$db_name";

// creates a database connection object or a database error
// object based on the success of the database connection.
$db = DB::connect($dsn, TRUE);

// if an error was encountered, the script exits with an error message
if (DB::isError($db)) {
    die($db->getMessage());
}
// SQL query that you wish to use to query the database
$sql = "SELECT * FROM hello_table";

// query the database, store result in $result
$result = $db->query($sql);

// exits with an error message if the query was unsuccessful
if(DB::isError($result)){
		 die($result->getMessage());
}
// fetch rows from the database until no more rows exist.
// output the "hello_column" field of each row to the screen.
// once no more rows exist, exit with an error message.
while($row = $result->fetchRow(DB_FETCHMODE_OBJECT)){
		 if(DB::isError($row)){
		 		 die($row->getMessage());
		 }
		 print("<H1>$row->hello_column</H1>");
		 $result->free();
}
$db->disconnect(); //disconnect from the database

Cada script se conecta ao banco de dados, recupera uma linha de dados e envia aquela linha para a tela. Os acessos ao banco de dados do PHP são feitos utilizando PEAR::DB, uma camada prática de abstração do banco de dados que permite que o mesmo código de acesso ao banco de dados seja utilizado independentemente de qual banco de dados é implementado. Infelizmente o XAMPP ainda não é fornecido com uma camada de abstração do banco de dados para Perl.

Colocando os Scripts

Portanto, agora nós temos tudo que precisamos. Nosso banco de dados está instalado e em execução e temos dois scripts com os quais testá-lo. Tudo o que temos a fazer agora é colocar os scripts no local correto. Vamos dar uma rápida olhada em como o XAMPP está distribuído na unidade de disco rígido na Lista 2.

O diretório que nos interessa aqui é /opt/lampp/htdocs/, o diretório de Apache Documents. Qualquer página da Web e os arquivos associados que você deseja que sejam exibidos quando alguém acessar seu endereço-raiz do Web site é colocada aqui. Como pudemos visualizar a página de boas-vindas do XAMPP, esse diretório já possui arquivos nele. Vamos dar uma rápida espiada na lista de diretórios para confirmar isso (digite ls /opt/lampp/htdocs):

drwxr-xr-x 2 root root 4096 Jan 24 2003 apache
-rwxr-xr-x 1 nobody root 163 Oct 31 2003 index.html
drwxr-xr-x 2 nobody root 4096 Sep 12 21:54 webalizer
drwxr-xr-x 5 root root 4096 Jun 15 06:24 xampp

Como você pode ver, já existe material aqui. Vamos criar nosso próprio diretório chamado hello_world (mkdir hello_world) no qual serão armazenados nossos scripts. A partir de agora, você pode acessar todos os materiais no diretório hello_world digitando localhost/hello_world. Agora, salve seus dois scripts naquele diretório. Você terminou!

Testando o Aplicativo

Para testar o aplicativo, vá para o navegador de sua escolha e insira localhost/hello_world. É necessário observar o seguinte:

Figura 4. Hello World!
Hello World!

Parabéns! Você configurou um aplicativo no XAMPP.


Aprimoramento de Segurança

O propósito do XAMPP é ser um ambiente de desenvolvimento. Ele é configurado para fornecer ao programador domínio livre sobre o conjunto de ferramentas sem nenhuma restrição. Como um resultado dessa liberdade de movimento, a instalação do XAMPP padrão é extremamente insegura. Por exemplo, não há quase nenhum login necessário para qualquer coisa.

Para versões do XAMPP 0.9.5 e posteriores, é possível reforçar a segurança executando o comando:

/opt/lampp/lampp security

Você receberá prompts com várias instruções que observam que inseguranças existem e lhe será fornecida uma escolha se deve corrigir essa insegurança. Embora isso torne a sua instalação do XAMPP mais segura, você ainda deve evitar executar o XAMPP em um servidor de produção. A Lista 3 ilustra os prompts de segurança:

Lista 3. Problemas de Segurança com Prompt no XAMPP
XAMPP: Quick security check...
XAMPP: Your XAMPP pages are NOT secured by a password.
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Password protection active. Please use 'lampp' as user name!
XAMPP: MySQL is accessable via network.
XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] yes
XAMPP: Turned off.
XAMPP: Stopping MySQL...
XAMPP: Starting MySQL...
XAMPP: The MySQL/phpMyAdmin user pma has no password set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL pma password.
XAMPP: Setting phpMyAdmin's pma password to the new one.
XAMPP: MySQL has no root passwort set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Write the password somewhere down to make sure you won't forget it!!!
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL root password.
XAMPP: Setting phpMyAdmin's root password to the new one.
XAMPP: The FTP password is still set to 'lampp'.
XAMPP: Do you want to change the password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Reload ProFTPD...
XAMPP: Done.

Executando Backups

Portanto, sua instalação do XAMPP esteve ativa e em execução por algumas semanas e você acumulou um considerável conjunto de dados que não deseja que sejam um risco a partir do travamento de uma unidade de disco rígido. O que você faz sobre backups?

Isso é muito simples com o XAMPP. Altere seu diretório de trabalho atual para /opt/lampp (cd /opt/lampp) e insira o seguinte comando:

./lampp backup

Você irá desejar incluir sua senha-raiz da MySQL se a tiver configurada no final daquele comando. Você deve, então, ver o seguinte:

Fazendo backup de bancos de dados...
Fazendo backup da configuração, do log e de arquivos htdocs...
Calculando checksums...
Construindo arquivo de backup final...
Backup concluído.
Tome conta de /opt/lampp/backup/xampp-backup-15-09-04.sh

Para restaurar seu backup, execute o seguinte comando como raiz:

sh backupfilename

Você verá o seguinte se tudo for bem:

Verificando integridade de arquivos...
Restaurando configuração, log e arquivos htdocs...
Verificando versões...
Instalado: XAMPP 1.4.7
Backup do: XAMPP 1.4.7
Restaurando bancos de dados da MySQL...
Restaurando bancos de dados do usuário da MySQL...
Backup completo. Aproveite!
Pode ser necessário reiniciar o XAMPP para completar a restauração.

Reinicie o XAMPP (cd /opt/lampp, ./lampp restart) e seus dados restaurados devem estar prontamente disponíveis.


Pronto para Executar rAMPP?

Mesmo que ainda esteja para serem vistas pilhas de soluções integradas competindo totalmente algumas vez com soluções J2EE, o recente release do PHP 5.0 (sua inclusão principal inclui orientação integral para objetos) acoplado ao rápido crescimento do banco de dados da MySQL indica que as pilhas de soluções integradas do AMPP estão se tornando mais conhecidas entre desenvolvedores. Isso significa que pilhas de middlewares de software livre como o XAMPP podem ter algum espaço suficiente na parte mais baixa do mercado de software.

Recursos

  • Faça download do XAMPP em Apache Friends, uma organização sem fins lucrativos que promove o servidor da Web da Apache e possui as informações e releases mais recentes do XAMPP.
  • Localize recursos abrangentes de PHP no developerWorks.
  • A série Caminho para a melhor programação (developerWorks) é uma série prática excelente para aguçar a sua perspectiva do Perl. Para obter informações adicionais sobre Perl, procure o site do developerWorks.
  • Esses dois artigos, Conectando Aplicativos PHP ao Apache Derby (developerWorks, Setembro de 2004) e Desenvolver Aplicativos Perl com o Apache Derby (developerWorks, Outubro de 2004) são uma leitura obrigatória para o desenvolvedor de aplicativos PHP e Perl.
  • O projeto phpMyAdmin contém muitas informações importantes como downloads da impressionante ferramenta de administração MySQL baseada na Web.
  • Practical Unix & Internet Security (O'Reilly & Associates, 1996) é uma referência excelente em todos os aspectos de segurança do sistema a partir do gerenciamento de usuários até o preparo de uma política de segurança.
  • PHP.net oferece uma biblioteca de funções procuráveis on-line que é um grande auxílio na descoberta de informações detalhadas sobre métodos PHP e na captura de construções de linguagem.
  • O PHP Extension and Application Repository (PEAR) oferece componentes que tornam a programação de PHP mais simples, incluindo o sempre conhecido PEAR::DB.
  • Para ajuda com MySQL, o manual de referência da MySQL contém informações detalhadas sobre todos os aspectos do banco de dados conhecidos.
  • Visite o Projeto do Servidor HTTP da Apache para obter as construções e informações mais recentes sobre o servidor http mais conhecido da Web.
  • Encontre mais recursos para desenvolvedores Linux na zona Linux do developerWorks.
  • Faça download de versões de período experimental, sem encargos, de produtos de middleware IBM que são executados no Linux, incluindo o WebSphere® Studio Application Developer, WebSphere Application Server, DB2® Universal Database, Tivoli® Access Manager e Tivoli Directory Server, e explore artigos como fazer e suporte à tecnologia, na seção Acelere-inicie seu aplicativo Linux do developerWorks.
  • Envolva-se com a comunidade do developerWorks participando de blogs do developerWorks.
  • Navegue em Manuais nesses e em outros tópicos técnicos.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux, Software livre
ArticleID=382490
ArticleTitle=Instalar XAMPP para Desenvolvimento Fácil, embarcado
publish-date=11302004