Redes de Computadores LAMP Gustavo Reis gustavo.reis@ifsudestemg.edu.br
Acrônico para a combinação de Linux, Apache, MySQL e PHP ou 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.
Projeto da The Apache Software Foundation; O projeto Servidor Apache HTTP é um esforço para desenvolver e manter um servidor HTTP de código aberto para sistemas operacionais modernos como Microsoft Windows, UNIX, Linux, entre outros; O objetivo principal é prover um servidor seguro, eficiente e extensível respeitando os padrões atuais HTTP.
Configurado através do arquivo principal /etc/apache2/apache2.conf; Diretivas principais do apache2.conf: ServerRoot /etc/apache2 diretório-raiz a partir do qual estão mantidos os arquivos de configuração, logs e erros do servidor; Timeout 300 define o número máximo em segundos entre uma requisição feita e uma resposta recebida; Include /etc/apache2/mods-enabled/*.load responsável por carregar os módulos do servidor web; Include /etc/apache2/mods-enabled/*.conf responsável por configurar os módulos;
Diretivas principais do apache2.conf: Include /etc/apache2/ports.conf arquivo que define a porta à qual o servidor standalone responde por padrão. Default porta 80; Include /etc/apache2/sites-enabled/ diretório onde é definido os domínios que serão hospedados pelo servidor web.
Diretivas principais do /etc/apache2/sites-enabled/000- default: Alias /lamp /var/www/minicurso define aliases para diretórios reais, ou seja, o diretório real no file system que será acessado por meio do servidor Web pelo seu alias; NameVirtualHost www.lamp.com.br:80 diretiva usada para mapear o nome do servidor virtual para o IP ao qual este responderá; <VirtualHost www.lamp.com.br:80> </VirtualHost> diretiva existente para que cada servidor virtual tenha suas próprias características;
Conteúdo do arquivo /etc/apache2/mods-enabled/php5.conf: <IfModule mod_php5.c> <FilesMatch "\.ph(p3? tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_value engine Off </Directory> </IfModule> </IfModule>
Conteúdo do arquivo /etc/apache2/modsenabled/php5.load: LoadModule php5_module /usr/lib/apache2/modules/libphp5.so Como fazer o servidor web Apache interpretar scripts PHP?
O Aptitude é uma interface em modo texto para o sistema de pacotes do Debian GNU/Linux. Ele permite que o usuário/administrador veja as listas de pacotes e realize operações como instalação, atualização e remoção de pacotes. /etc/apt/sources.list: local onde encontra-se os endereços dos repositórios de instalação dos pacotes do Debian.
deb http://ftp.br.debian.org/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free deb http://kde4.debian.net/ lenny main deb http://ftp.de.debian.org/debian/ testing main deb-src http://ftp.de.debian.org/debian/ testing main deb http://www.debian-multimedia.org lenny main deb http://ftp.br.debian.org/debian/ lenny-proposed-updates main contrib non-free deb http://mirrors.kernel.org/debian lenny main contrib non-free deb-src http://mirrors.kernel.org/debian lenny main contrib non-free
aptitude update: baixa as listas de pacotes novos/atualizáveis; aptitude search php: pesquisa por um pacote pelo nome e/ou expressão. Neste caso será pesquisado o pacote PHP; aptitude install libapache2-mod-php5 php5-mysql: instala o módulo PHP5 para o Apache e o PHP para fazer conexões com o banco de dados MySQL; aptitude remove pacote: remove um determinado pacote.
O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo; Para instalar o MySQL no Debian digite o comando aptitude install mysql-server-5.0; Desta forma será baixado o pacote do MySQL e instalado no Debian;
Durante a instalação do MySQL será pedido a senha de root do banco. Digite 123456. O usuário root é o Administrador do banco; O MySQL permite fazer o seu gerenciamento através de uma interface modo texto. Ex.: mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 516 Server version: 5.0.51a-24+lenny2 (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
mysql> show databases; mostra os bancos de dados existentes no MySQL; + + Database + + information_schema agenda cacti joomla lojadvd lojadvd_teste moodle mysql squid + + 9 rows in set (0.00 sec) mysql>
mysql> use agenda; coloca como padrão o banco de dados chamado agenda. Desta forma podemos manipular as tabelas e registros encontrados neste banco; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed Mysql>
mysql> show tables; mostra as tabelas do banco agenda; + + Tables_in_agenda + + egw_access_log egw_accounts egw_acl egw_addressbook phpgw_vfs2_versioning + + 5 rows in set (0.00 sec) mysql> mysql> show tables; mostra as tabelas do banco agenda; mysql -u root -p < banco.sql; executa o script banco.sql dentro do MySQL criando o banco de dados com suas respectivas tabelas.
mysql> show tables; mostra as tabelas do banco agenda; + + Tables_in_agenda + + egw_access_log egw_accounts egw_acl egw_addressbook phpgw_vfs2_versioning + + 5 rows in set (0.00 sec) mysql> mysql> show tables; mostra as tabelas do banco agenda; mysql -u root -p < banco.sql; executa o script banco.sql dentro do MySQL criando o banco de dados com suas respectivas tabelas.