Ambiente LAMP
• Introdução
• LAMP
• MySQL • Apache • PHP• Camada Aplicacional
• PHPMyAdmin • OPSView• Bibliografia
Introdução
LAMP é a designação genérica para um Ambiente suportado sobre:
Linux (Operating System) +
Apache (Web Server) +
MySql (DataBase Server) +
PHP (Script Language)
É actualmente um dos ambientes mais utilizados no desenvolvimento de Aplicações NÃO críticas (em termos de Integridade e complexidade) em serventia WEB.
Introdução
Quando a Integridade Atómica da informação ou outras Características Funcionais especificas (Ex: Chaves Estrangeiras) se tornam factores críticos, é usual substituir a componente de Gestão de Bases de Dados por uma que adicione esta característica de raiz, como seja o POSTGRESql.
Também a Complexidade da aplicação pode recomendar a utilização de uma Linguagem de Scripting mais estruturada de Raiz, substituindo assim o PHP por uma outra como sejam o RUBY ou o PYTHON.
Introdução
LAMP caracteriza-se ainda por ser um Ambiente OPEN SOURCE e sem quaisquer custos de aquisição associados, que pela sua Robustez, Simplicidade, Portabilidade e Eficácia se destaca perante outras soluções integradas existentes.
MySQL
O Gestor de Bases de Dados usado sobre ambiente LAMP:
http://dev.mysql.com/
Características Técnicas mais relevantes:
•Portabilidade •Compatibilidade
•Desempenho e Estabilidade •Pouca exigência de Recursos •Facilidade no Uso
MySQL
Instalação:
emerge -va mysql
Configuração:
emerge --config =dev-db/mysql-4.1
Configurar o Arranque automatico:
rc-update add mysql default
Gestão do Daemon:
/etc/init.d/mysql start | stop | restart | status
As configurações do MYSQL encontram-se no file:
MySQL
Gestão via Linha de Comandos (Exemplos):
Linha de Comando> Mudança de Password (de ROOT):
/usr/bin/mysqladmin -u root -h localhost password 'nova_passord'
Linha de Comando> Acesso ao MySQL Server (como ROOT):
Apache
O Web Server usado sobre ambiente LAMP:
http://httpd.apache.org/
Características Técnicas mais relevantes:
•Portabilidade •Compatibilidade
•Desempenho e Estabilidade
•Facilidade no Uso e Configuração
•Modularidade, o que garante capacidades de Expansão •Mecanismos de segurança intrínsecos e configuráveis
Apache
Instalação:
No file /etc/make.conf adicionar a seguinte Linha (evocação Apache e
MySQL):
USE=" -dri -X -fam -gtk -gnome -qt3 -qt4 -kde -dvd -alsa –cdr … mysql apache2"
Instalar:
emerge -va apache2
Configurar o Arranque automático:
rc-update add apache2 default
Gestão do Daemon:
/etc/init.d/apache2 start | stop | restart | status
As configurações do APACHE encontram-se na Directoria:
Apache
Exemplos de Configuração:
No File principal de configuração: …/httpd.conf. Directoria base de resposta do Web Server
ServerRoot "/usr/lib/apache2"
User e Grupo por defeito na Ligações solicitadas
User apache Group apache
Apache
Na File: …/modules.d/00_error_documents.conf
Configuração das paginas de erros do Apache Na File: …/modules.d/00_default_settings.conf
Configurações referentes ás Ligações (Persistência, TimeOut, etc…) Na File: …/modules.d/40_mod_ssl.conf
Configurações respeitantes à resposta HTTPS (Canal encriptado) Na File: …/modules.d/00_mpm.conf
Configurações respeitantes à resposta em RunTime do Daemon Na File: …/vhosts.d/00_default_ssl_vhost.conf
Apache
Na File: …/vhosts.d/00_default_vhost.conf
Colocar o Apache à escuta em determinado IP/Porto
Listen 80
Virtual Host baseados em Nomes (é pré-definido o IP:Porto de resposta)
NameVirtualHost *:80
Ex. de definição de um Virtualhost para resposta a: teste.pt e www.teste.pt
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/localhost/htdocs
ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
ServerName teste.pt
PHP
A Linguagem de Script usada sobre ambiente LAMP:
http://www.php.net/
Características Técnicas mais relevantes:
•Portabilidade
•Velocidade e Robustez
•Estruturação e Tipagem Fraca
•Modularidade, o que garante capacidades de Expansão •Sintaxe fácil e similar a outras existentes (Ex: C, Perl)
PHP
Instalação:
emerge -va dev-php/php mod_php
Na ligação ao Apache
Na File: /etc/conf.d/apache2
Há que garantir a existência da seguinte directiva:
APACHE2_OPTS="-D DEFAULT_HOST -D PHP5”
Há que garantir a existência da seguinte File:
/etc/apache2/modules.d/70_mod_php5.conf
Com as seguintes definições mínimas:
<IfDefine PHP5>
PHP
As configurações do PHP encontram-se no file:
/etc/php/apache2-php5/php.ini
Algumas configurações relevantes:
Activação do eaccelerator (PHP Cache)
zend_extension ="/usr/local/lib/eaccelerator.so"
Limita o acesso a variáveis originárias na resposta HTTP, exclusivamente através de Arrays internos Validados.
register_globals = Off
Configura o anuncio do PHP no Servidor (nas respostas HTTP)
Camada Aplicacional
Após a instalação e configuração do Ambiente LAMP, o Servidor encontra-se finalmente preparado para suportar uma ou mais Aplicações em serventia aos seus Utilizadores.
A variedade de Aplicativos possíveis de funcionar plenamente sobre este Ambiente não é mensurável… e todos os dias aparecem novas aplicações, de concepção nova ou oriundas de outras plataformas num processo de migração.
No âmbito da disciplina de IRS, optou-se simplesmente por instalar dois aplicativos: Uma interface Web para gestão do MySQL (PHPMyAdmin) e ainda um Monitor de Comunicações e Aplicacional (OPSView).
PHPMyAdmin
Uma Interface WEB para gestão do MySQL:
http://www.phpmyadmin.net
Características Técnicas mais relevantes:
•Interface WEB Intuitiva
•Suporte à maior parte das funções SQL
•Importação e Exportação de Dados em múltiplos formatos •Administração de Múltiplos Servers
PHPMyAdmin
Instalação:
Após descarregar o .TGZ File da origem, dever-se-á descomprimir este para uma Directoria em serventia WEB. No nosso caso:
/var/www/localhost/htdocs/phpmyadmin
Dever-se-á garantir a existência de um File de configurações nesta directoria: config.inc.php
Com a seguinte informação mínima inicial:
$cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp';
PHPMyAdmin
Poder-se-á aceder agora via um Browser:
http://server.g2.lrcd.local/phpmyadmin
Validando-se inicialmente com as credenciais: root/password
Já no quadro inicial da aplicação, pode-se aceder a todo um manancial de interfaces de gestão com as diversas DBs, entre as quais se encontra a de Administração: mysql
PHPMyAdmin
No separador SQL iremos agora dar as permissões necessárias ao User root, simultaneamente mudando a sua Password de Acesso:
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'nova_password' WITH GRANT OPTION;
Poder-se-á agora fechar o Browser e proceder à alteração da File de configurações: config.inc.php:
…
$cfg['Servers'][$i]['auth_type'] = 'http'; $cfg['Servers'][$i]['user'] = '';
PHPMyAdmin
A partir deste momento, poderá aceder livremente ao PHPMyAdmin via Web Browser, podendo gerir directamente Users, Bases de Dados, Tabelas, Dados, etc…
Uma grande parte das operações possíveis de efectuar via Linha de comandos são desta forma disponibilizadas via WEB, de uma forma muito mais intuitiva e amigável.
OPSView
Um Monitor de Comunicações e Aplicações:
http://www.opsview.org/
Características Técnicas mais relevantes:
•Escalabilidade
•Flexibilidade e Facilidade no Uso
•Monitorização Distribuída com Alta disponibilidade intrínseca •Suporte SNMP melhorado
OPSView
Instalação:
Após descarregar o .TGZ File da origem, dever-se-á descomprimir este para uma Directoria: /usr/local/trunk. Os Scripts actuais de instalação prevêem preferencialmente uma distribuição DEBIAN ou RED HAT e por tal, estes comportam falhas que devem ser colmatadas individualmente, a maioria das quais respeitantes a Falta de dependências (necessárias
previamente instalar) ou Testes de localizações erróneos.
A instalação assume uma previa instalação do NAGIOS (Monitor) e do
MRTG no Servidor, e faz uso do User nagios para criação de certificados (via pacote SSL):
su – nagios
ssh-keygen -t dsa # SEM Password
OPSView
Como nagios evocar scripts de preparação da instalação:
installer/perl-install ./preinstall
Agora como root, existem uma série de scripts de instalação que devem ser invocados, scripts estes que em principio deveriam instalar todos os pré-requisitos aplicacionais:
su – root
cd /usr/local/trunk/opsview-core/installer ./postinstall
OPSView
Configurar o Arranque automatico dos Daemons:
rc-update add opsview default
rc-update add opsview-web default
A File de configurações encontra-se em:
/usr/local/nagios/etc/opsview.conf
Os Scripts de Gestão dos Daemons são: Motor principal:
/etc/init.d/opsview start | stop | status
Interface Web:
OPSView
Endereço de acesso à interface WEB do OPSView:
http://server.g2.lrcd.local:3000
As credenciais de acesso iniciais de Administração são:
Login: admin
OPSView
Dever-se-á agora proceder à configuração de Users de gestão, Hosts e Serviços a monitorar, e deixar o OPSView a angariar dados:
OPSView
O OpsView revelou-se uma ferramenta de monitorização potente e de fácil utilização. Infelizmente, devido a ser relativamente recente e sem portes para algumas distribuições (como é o caso da GenToo), obrigou a uma instalação de raiz via SOURCES. Revelou-se árdua a sua instalação e, muitas vezes, com erros de configuração, o que nos leva a aconselhar esperar por novas e mais maduras Releases.
Referências Web (Bibliografia) mais relevantes
VMWare Server: http://www.vmware.com/products/server/ GenToo Dist: http://www.gentoo.org/doc/en/handbook/index.xml BIND: http://www.bind9.net/ MySQL: http://dev.mysql.com/Apache Web Server:
http://httpd.apache.org/ PHP: http://www.php.net/ PHPMyAdmin: http://www.phpmyadmin.net OPSView: