Hi,
LAMP: Linux, Apache, MySQL e PHP. Realmente um assunto batido na internet. Decidi fazer este artigo de uma forma simples, mas que deixe um LAMP funcional. Este artigo está baseado em uma Debian Lenny estável!
1. Instalando o Apache
~$
~$ sudo apt-cache search apache2
apache2 – Apache HTTP Server metapackage
Ok, temos o pacote, vamos a instalação:
~$
~$ sudo apt-get install apache2
…
Depois de instalado o apache está pronto para ser usado, use seu browser de preferência em http://127.0.0.1 e veja a mensagem de “It Works”.
2. Entendendo o básico da configuração do apache2
O apache2 fica instalado em /etc/apache2/. Neste diretório temos os seguintes arquivos e diretórios responsáveis pela configuração do apache2:
apache2.conf: Arquivo principal da configuração do apache2.
envvars: Arquivo resposável pelas variáveis do apache2 no sistema.
httpd.conf: Arquivo para suas configurações locais (pessoais).
ports.conf: Arquivo resposável pela configuração das portas do apache2.
conf.d: Diretório que contem os scripts iniciados com o apache2.
mods-available: Diretório contendo os módulos disponíveis.
mods-enabled: Diretório contendo os módulos usados no momento pelo apache2.
sites-available: Diretório com os scripts de configuração dos “sites” disponíveis.
sites-enabled: Diretório com os “sites” ativos no apache2.
Depois da versão 2.x , o apache vem com o modelo de organização dos arquivos de configuração e “sites” mais eficiente. Com a ídeia de *-available e *-enabled podemos controlar melhor uma maior quantidade de arquivos.
Por exemplo, no diretório mods-available temos todos os módulos disponíveis para serem usados no apache, ou seja, este diretório não é lido (reconhecido pelo apache) em sua inicialização. O diretório mods-enabled sim. Neste diretório – comumente – temos links simbólicos para os módulos que desejamos usar no apache2.
Vamos exemplificar, existe em mods-available um módulo disponível chamado ldap.load (na verdade este é um simples script para o apache2) que habilita o ldap. Para ativar este módulo você só precisa criar um link simbólico no diretório mods-enabled, vejamos:
~$
~$ cd /etc/apache2/
~$ ls mods-available | grep ldap
ldap.load
~$ cd mods-enabled
~$ sudo ln -s ../mods-available/ldap.load ldap.load
Simples, desta forma criamos um link simbólico para o módulo disponível “ldap”.
A configuração de “sites” para o apache2 também segue a mesma linha de raciocínio: *-available para “sites” disponíveis e *-enabled para “sites” que estão em uso!
Vamos a um sites exemplo, quero criar um “site” em nosso servidor com o caminho http://127.0.0.1/meuprojetos/ onde os arquivos de “meusprojetos” estarão em /home/bleno/projetos/meusprojetos/ vejamos:
~$
~$ cd /etc/apache2/sites-available/
~$ sudo cat > meusprojetos
Alias /meusprojetos/ “/home/bleno/projetos/meusprojetos/”
<Directory “/home/bleno/projetos/meusprojetos/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
[Ctrl+C]
~$ cd ../sites-enabled/
~$ sudo ln -s ../sites-available/meusprojetos meusprojetos
Pronto, o que fizemos foi criar o arquivo de configuração do “site” meusprojetos e criar (ativar) o arquivo de configuração para o apache2 (em sites-enabled).
Os arquivos de configuração de sites podem ser bem mais complexos que este simples exemplo acima, onde cabe um único post sobre os mesmos. Vas vamos entender este arquivo de configuração simples:
Alias /meusprojetos/ “/home/bleno/projetos/meusprojetos/”
Nesta primeira linda definimos o alias (apelido) do site para o apache2 e o diretório onde está o “site”. Simples.
<Directory “/home/bleno/projetos/meusprojetos/”>
Aqui definimos a tag <Directory …> onde vamos passar as configurações do apache2 para o diretório em questão.
Options Indexes MultiViews FollowSymLinks
Aqui passamos as opções (Options) gerais do diretório onde:
Indexes: Esta diretiva informa ao apache2 que se não encontrar nenhuma arquivo conhecido (html, htm, php e etc… definido em “DirectoryIndex” no apache2.conf), o apache2 cria uma lista dos arquivos existente no diretório atual.
MultiViews: Habilita negociação de conteúdo. Permitindo o envio de um arquivo no idioma do navegador do cliente.
FollowSymLinks: O apache2 vai seguir os links simbólicos para este diretório.
AllowOverride None
O apache2 não vai procurar o arquivo .htaccess para este “site” (diretório).
Order allow,deny
Allow from all
Libera acesso a qualquer máquina para este “site” (diretório).
Apache previamente configurado, é só reiniciar o serviço para ativar as novas configurações. Só para lembrar:
~$
~$ sudo /etc/init.d/apache2 restart
Obs: É possível que o apache retorne um erro como o abaixo ao reiniciar o serviço:
Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
Como o erro informa, não existe um “nome de dominio” para o servidor, então, ele está assumindo um “ServerName” 127.0.1.1. Para resolver isso, edite seu apache2.conf e adicione o seu “ServerName” (nome do servidor):
~$
~$ vi /etc/apache2/apache2.conf
Adicione a seguinte linha ao seu arquivo de configuração:
ServerName www.nomedoservidor.bla.bla…
Pronto, apache instalado e com uma configuração básica, vamos ao php5. Let´s go…
3. Instalação do php5 para o apache2
Aqui o processo é simples, praticamente automático para a instalação, precisaremos dos seguintes pacotes:
php5
libapache2-mod-php5
Então, instale-os:
~$
~$ sudo apt-get install php5 libapache2-mod-php5
Depois de instalado o php5 se aloja em /etc/php5/ onde temos 2 diretórios: apache2 e conf.d
Para testar o phh5 com o apache2, iremos criar um arquivo em /var/www/ (que é o diretório “base” do apache2… lembra do “It Works”, ele está aqui… é o diretório raiz do apache2) com o nome de teste.php para testar o php5:
~$
~$ cd /var/www/
~$ cat > teste.php
<?php
phpinfo();
?>
[Ctrl+C]
Pronto, criamos o arquivo. Para testar, com seu browser preferido acesse http://127.0.0.1/teste.php, provavelmente vai abrir as configurações atuais do php5.
4. Instalando e configurando o MySQL
Para instalar o MySQL precisaremos dos seguintes pacotes:
mysql-server
mysql-client
php5-mysql
Instalando:
~$
~$ sudo apt-get install mysql-server mysql-client php5-mysql
Depois de instalado o mysql fica alojado em /etc/mysql/ onde temos o arquivo my.cnf que é o arquivo de configuração padrão do banco de dados.
Praticamente a instalação do Apache, PHP5 e MySQL foi abordada até aqui, veremos só algumas dicas:
*** Criando usuário “root” e password para o mysql e acesso externo (remoto):
Acesse seu mysql:
~$
~$ sudo mysql -u root
Crie sua senha e dê permissão para todos os hosts:
mysql> GRANT ALL ON *.* TO ‘root’@'%’ IDENTIFIED BY ’suasenha’;
mysql> flush privileges;
mysql> exit
O % informa que qualquer ip (host) pode se conectar via usuário root.
Agora edite seu arquivo my.cnf:
~$
~$ cd /etc/mysql/
~$ sudo vi my.cnf
Edite a configuração da linha bind-address para:
bind-address = 0.0.0.0
Assim o mysql vai receber conexões de todos os ips e todas as interfaces de rede (caso queira, você pode restringir a que ip o mysql vai receber conexões).
Comente a linha de configuração skip-external-locking com um # na frente do mesmo, para ele “pular o bloqueiro externo”.
Pronto, reinicie os serviçõs, o mysql já estará recendo conexões remotas!
*** Instalando o PhpMyAdmin
O PhpMyAdmin é um ótimo gerenciador do banco de dados MySQL via web feito em php, assim você pode administrar o MySQL de forma simples e via browser. Para instalar, simples:
~$
~$ sudo apt-get install phpmyadmin
Ele fica alojado em /etc/phpmyadmin/ onde contém os seus arquivos de configuração.
Lembre-se de reiniciar o apache2 para efetivar as configurações dos novos pacotes instalados. Teste seu PhpMyAdmin em http://127.0.0.1/phpmyadmin/
Espero que tenha gostado, o Apache, Php e MySQL são assuntos muito extensos, seus arquivos de configuração permitem várias combinações. Existe muito material bom na internet. Pesquise mais sobre os mesmos.
;)