LAMP: Ubuntu 14.04, Apache, MySQL e PHP

31 de out de 2015 - Paulo Dias


Oi, tudo bem?

Nesse artigo quero mostrar como instalar o Apache, o MySQL e o PHP no Ubuntu. Para obter esse ambiente é comum utilizar o XAMPP ou alguma aplicação semelhante, mas quero mostrar como instalar cada um deles de forma individual usando os pacotes disponíveis nos repositórios da distribuição. Visto a popularidade das ferramentas que automatizam a instalação desse ambiente, pode parecer que a instalação de cada um desses pacotes seja uma tarefa complicada, mas no Ubuntu, e em qualquer outra distribuição GNU/Linux, esse processo é razoavelmente simples.

Antes de começar, é importante notar que as configurações mostradas nesse artigo são para um ambiente de desenvolvimento, para um ambiente de produção é necessário dar atenção a mais detalhes...

O primeiro passo é atualizar os pacotes com o seguinte comando:

 
sudo apt-get update && sudo apt-get upgrade

Com os pacotes atualizados, instale o Apache através desse comando:


sudo apt-get install apache2
 

Se o Apache foi instalado corretamente, a seguinte página vai ser visualizada na URL http://localhost:

Teste Apache

O próximo passo é instalar o MySQL. A instalação desse pacote pode ser realizada com o seguinte comando:


sudo apt-get install mysql-server
 

Durante a instalação uma tela parecida com a seguinte irá solicitar uma senha para o usuário root do MySQL.

Imagem exemplo da instalação MySQL

Depois da instalação terminar, teste o MySQL efetuando o login com o usuário root:


mysql -u root -p
 

O MySQL solicitará a senha de root que foi definida na instalação. Após informá-la, você verá uma tela como a seguinte:

Imagem exemplo prompt do MySQL

Observação: Para sair do prompt do MySQL digite o comando quit.

Se foi possível realizar o login, o MySQL está instalado corretamente. Porém, é possível acessá-lo apenas da máquina local, se quiser permitir conexões externas é necessário criar o arquivo /etc/mysql/conf.d/allow_external.cnf. com o seguinte conteúdo:


[mysqld]
     bind-address = 0.0.0.0

Agora o Apache e o MySQL já foram instalados, falta apenas o PHP. Para instalá-lo utilize o seguinte comando:

sudo apt-get install php5 php5-mysql

Para testar a instalação do PHP crie o arquivo /var/www/html/teste.php com esse conteúdo:

phpinfo();

Depois, garanta que Apache pode executar o arquivo utilizando o comando:

sudo chmod 755 /var/www/html/teste.php

Se tudo deu certo, uma página semelhante a seguinte vai ser exibida na URL http://localhost/teste.php:

Imagem exemplo PHP

O PHP já está instalado, mas sua configuração padrão está com as mensagens de erro desabilitada. Assim sendo, se houver algum erro no código de um arquivo, você não será avisado. Esse é o comportamento esperado em um ambiente de produção, mas para um ambiente de desenvolvimento é impraticável. Para permitir a exibição de mensagens de erros no PHP é necessário alterar o arquivo /etc/php5/apache2/php.ini.

Nesse arquivo procure por :

display_errors = Off

e altere para:

display_errors = On

Depois de realizar a alteração, reinicie o Apache com o comando:

sudo /etc/init.d/apache2 restart

Feito isso, o PHP vai exibir as mensagens de erro. Faça um teste, altere o arquivo /var/www/html/teste.php com o seguinte conteúdo:

erro_phpinfo();

Pronto, você instalou e configurou o seu LAMP. Porém, ainda é possível adicionar várias bibliotecas para a instalação do PHP. Para verificar uma lista das bibliotecas disponíveis use o comando:

apt-cache search php5

Será exibida uma listagem parecida com essa:

libapache2-mod-php5 - linguagem de scripts imersa em HTML, roda no servidor (módulo Apache 2)
php5 - linguagem de script incorporável em HTML, lado servidor (metapacote)
php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - arquivos comuns para pacotes construídos a partir do código fonte do php5
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-gd - GD module for php5
php5-gmp - GMP module for php5
php5-json - JSON module for php5
php5-ldap - LDAP module for php5
php5-mysql - MySQL module for php5
php5-odbc - ODBC module for php5
php5-pgsql - PostgreSQL module for php5
php5-pspell - pspell module for php5
php5-readline - Readline module for php5
php5-recode - recode module for php5
php5-snmp - SNMP module for php5
php5-sqlite - SQLite module for php5
php5-tidy - tidy module for php5
php5-xmlrpc - XML-RPC module for php5
php5-xsl - XSL module for php5

Para saber mais sobre um pacote utilize o comando:

apt-cache show nome_pacote

Veja um exemplo:

apt-cache show php5-pgsql

Package: php5-pgsql
Priority: optional
Section: php
Installed-Size: 219
Maintainer: Ubuntu Developers 
Original-Maintainer: Debian PHP Maintainers 
Architecture: amd64
Source: php5
Version: 5.5.9+dfsg-1ubuntu4.14
Depends: libc6 (>= 2.14), libpq5 (>= 9.0~), phpapi-20121212, php5-common (= 5.5.9+dfsg-1ubuntu4.14), ucf
Pre-Depends: dpkg (>= 1.15.7.2~)
Filename: pool/main/p/php5/php5-pgsql_5.5.9+dfsg-1ubuntu4.14_amd64.deb
Size: 51590
MD5sum: 564b17207f9e6a57bd26991fb50891f7
SHA1: 06787910a6d2a0c5718bf140bbec3a1d335c2a12
SHA256: 555463b935011fd772b3b5a717b44513e0a660c71a32caeb186d06c1c9ffce7e
Description-pt_BR: PostgreSQL module for php5
 This package provides a module for PostgreSQL database connections
 directly from PHP scripts.  It also includes the pdo_pgsql module for use
 with the PHP Data Object extension.
 .
 PHP (acrônimo recursivo para PHP: Hypertext Preprocessor) é uma linguagem
 de script de código aberto e propósito geral amplamente utilizada que foi
 especialmente implementada para desenvolvimento web e pode ser embarcada
 dentro do HTML.
Description-md5: 25edec9b992444a2c1634b9545b31326
Homepage: http://www.php.net/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y
...

Se quiser instalar alguns desses pacotes, use o comando:

sudo apt-get install nome_pacote1 nome_pacote2 ...

Veja o exemplo:

sudo apt-get install php5-pgsql php5-sqlite php5-ldap php5-json php5-gd

Paulo Dias

Graduado no curso tecnólogo em análise e desenvolvimento de sistemas. Defensor do Software Livre e da democratização da informação. Possui as certificações Linux LPIC-1 e Java OCA. Atualmente exerce a função de coordenador técnico na área de telecomunicações.

Siga-me no Twitter