Servidor Web · 8 min read · Jan 03, 2026

Servidor Web Básico No Ubuntu 9.04 Com Zend Framework

Servidor Web Básico No Ubuntu 9.04 Com Zend Framework

Esta é uma breve descrição dos passos necessários para configurar um servidor web básico com o Zend Framework instalado.

Como sempre, seguirei um dos excelentes guias do Falko, pois não há sentido em reinventar a roda, por assim dizer. Seguirei O Servidor Perfeito - Ubuntu 9.04 [ISPConfig 3]. No entanto, como preciso de um Servidor de Aplicações Web para testes de pré-produção, não preciso de Mail ou ISPConfig, então seguirei o Guia do ISPConfig-3 do Passo 1 - 11 e começarei minha própria versão a partir daí.

Não vou instalar Postfix, Courier (não preciso de Mail ou IMAP), Saslauthd (Autenticação), também não vou instalar rootkit hunter ou utilitários binários, então os deixarei de fora também:

12 Instalar MySQL

Podemos instalar o MySQL usando o seguinte comando:

apt-get install mysql-client mysql-server

Você será perguntado as seguintes questões:

Nova senha para o usuário “root” do MySQL: <– suaSenhaRootSql
Repita a senha para o usuário “root” do MySQL: <– suaSenhaRootSql

Queremos que o MySQL escute em todas as interfaces, não apenas no localhost, portanto, editamos /etc/mysql/my.cnf e comentamos a linha bind-address = 127.0.0.1:

nano /etc/mysql/my.cnf
[...]  

# Em vez de skip-networking, o padrão agora é escutar apenas em  

# localhost, que é mais compatível e não é menos seguro.  

#bind-address           = 127.0.0.1  

[...]  

Então reiniciamos o MySQL:

/etc/init.d/mysql restart

Agora verifique se a rede está habilitada. Execute

netstat -tap | grep mysql

A saída deve ser parecida com isto:

root@server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN      8474/mysqld  
root@server1:~#

13 Instalar Apache2, Java e phpMyAdmin

Não estou instalando PHP5 neste ponto, pois tenho algumas maneiras diferentes de instalá-lo na próxima seção. Apenas saiba que se você for compilar a partir do código-fonte, pode querer ler a próxima seção e pensar em não instalar o apache neste ponto. Caso contrário, tudo será instalado da seguinte forma:

sudo su  
apt-get install apache2 sun-java6-bin phpmyadmin

Você verá a seguinte pergunta:

Servidor web para reconfigurar automaticamente: <– apache2
EULA do Java <– Tab para ler EULA e depois OK
Você concorda com os termos da licença DLJ? <– Sim
Configurar banco de dados para phpmyadmin com dbconfig-common? <– Sim
Senha do usuário administrativo do seu banco de dados: <– suaSenhaRootSql
Senha da aplicação MySQL para phpmyadmin: <– [em branco]

14 Instalações do PHP5:

Temos várias maneiras de instalar o PHP, dependendo do que você precisa. Tive sucessos variados em conseguir instalar os módulos que preciso, então vou te dar todas as maneiras que tentei para instalar o PHP e você pode escolher qual precisa.

apt-get install do repositório ubuntu

Podemos apenas usar o Apt para obter a versão do PHP dos repositórios ubuntu. Esta será a maneira mais simples e resultará no sucesso mais fácil e deve ser usada se você não tiver requisitos específicos do PHP

apt-get install php5 php5-common php5-cli

apt-get install de uma fonte debian

O Debian atualizou seu repositório para a versão mais recente do PHP5 e acredito que ele tenha a biblioteca GD do PHP5 completa incluída, então pode ser um caminho mais fácil para o sucesso do que compilar a partir do código-fonte, mas isso significa que você está usando uma fonte que não é reconhecida pelo Ubuntu e você terá que decidir se está ok com isso.

Essa decisão feita, você terá que adicionar os repositórios debian à sua lista de fontes, o que pode fazer editando sua lista de fontes como antes.

Podemos apenas usar o Apt para obter a versão do PHP dos repositórios ubuntu.

echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.list
echo deb-src http://packages.dotdeb.org stable all >> /etc/apt/sources.list

Então execute

apt-get update

Depois disso, você pode optar por atualizar qualquer outra instalação que o debian tenha atualizado também.

apt-get upgrade  
apt-get install php5 php5-common php5-cli  
reboot

Compilar a partir do código-fonte do repositório

Embora tenha sido bem-sucedido, instalou a versão do PHP5 do ubuntu, que é boa para a maioria das instalações, isso permitirá que você habilite algumas coisas extras que não vêm na instalação do aptitude. Você pode usar ./configure –help para ver o que está disponível para habilitar enquanto compila.

aptitude install libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev

Isso permitirá que você instale a versão segura do ubuntu com extras que podem não estar incluídos na versão padrão.

cd /usr/src  
apt-get install build-essential debhelper fakeroot  
apt-get source php5  
apt-get install build-dep php5  
cd php5-5.2.6.dfsg.1/  
nano debian/rules

Encontre e substitua

[...]  
--with-gd=shared,/usr --enable-gd-native-ttf \  
[...]  

por

[...]  
--with-gd=shared, --enable-gd-native-ttf \  
[...]  
dpkg-buildpackage -rfakeroot  
cd ..  
# Instale o novo pacote php5-gd  
dpkg -i php5-gd_5.2.6-1ubuntu6.3_i386.deb

Compilação completa a partir de fonte externa

Quando executei isso por último, tive que recompilar o apache2 também para que minha nova versão do php5 fosse reconhecida. Não tenho certeza do porquê ou se foi apenas comigo, então vou testar mais algumas vezes e editarei este post para atualizar os métodos se eu conseguir sucesso sem a instalação do apache2 também.

aptitude install php5-dev libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev bzip2 libcurl3 curl libpng12-dev libfreetype6-dev libmcrypt4 libmcrypt-dev libmhash2 libxslt1-dev apache2-prefork-dev libjpeg62-dev freetype2 libxft libxft-dev libcurl4-gnutls-dev
cd /usr/src  
wget http://apache.mirror.anlx.net/httpd/httpd-2.0.63.tar.gz  
tar -zxvf httpd-2.0.63.tar.gz  
cd httpd-2.0.63  
./configure --help  
./configure --prefix=/etc --enable-rewrite --enable-so --enable-ssl  
make  
make install  
/etc/bin/apachectl start  
/etc/bin/apachectl stop
cd /usr/src  
wget http://uk.php.net/get/php-5.2.9.tar.gz/from/this/mirror  
tar xzvf php-5.2.9.tar.gz  
cd php-5.2.9  
./configure --help  
./configure --prefix=/etc/php5/apache2 --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/apache2 --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql  
make  
make install  
./configure --prefix=/etc/php5/cli --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/cli --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql  
make  
make install-cli

Recebi alguns avisos sobre a necessidade de declarações LoadModule em apache2.conf e httpd.conf, se você encontrar isso também, então pode adicionar declarações fictícias comentadas e fazer a instalação novamente e deve funcionar.

nano /etc/apache2/apache2.conf
[...]  
    # Incluir configuração do módulo:  
    Include /etc/apache2/mods-enabled/*.load  
    Include /etc/apache2/mods-enabled/*.conf

    # Diretriz LoadModule fictícia para ajudar nas instalações de módulos  
    #LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so  
[...]  

15 Testando PHP e a Biblioteca GD / Obtendo Detalhes Sobre Sua Instalação do PHP5

Como temos o PHP-CLI instalado, podemos testar a instalação da Biblioteca GD com:

php -r "var_dump(function_exists('imagecreatefromjpeg'));" <-- irá retornar true se a Biblioteca GD estiver instalada  
php -r "var_dump(function_exists('imagerotate'));" <-- será false se a biblioteca limitada estiver instalada

O diretório raiz do site padrão é /var/www. Agora criaremos um pequeno arquivo PHP (phpinfo.php) nesse diretório e o chamaremos em um navegador. O arquivo exibirá muitos detalhes úteis sobre nossa instalação do PHP, como a versão do PHP instalada.

nano /var/www/phpinfo.php

Agora chamamos esse arquivo em um navegador (por exemplo, http://192.168.0.100/phpinfo.php):

Agora você deve ver, PHP5 está funcionando, rolando para baixo, você verá todos os módulos que já estão habilitados no PHP5. Você também deve ver o MySQL listado lá.

16 Configurar as instalações

Precisamos garantir que o rewrite_module esteja habilitado no apache2 para que o Zend Framework funcione corretamente, então vamos verificar:

a2dismod

Esperançosamente, você deve ver rewrite listado na lista de módulos que estão atualmente habilitados. Se não, pressione enter para não desabilitar nada e então emita:

a2enmod rewrite

Então precisamos habilitar AllowOverride All no arquivo do site padrão

nano /etc/apache2/sites-available/default
[...]  
  DocumentRoot /var/www/  
          
                Options FollowSymLinks  
                AllowOverride All  
          
          
                Options FollowSymLinks   
                AllowOverride All  
                Order allow,deny  
                allow from all  
          
[...]  

Depois disso, precisamos proteger o phpMyAdmin excluindo o arquivo /etc/phpmyadmin/htpasswd.setup…

rm -f /etc/phpmyadmin/htpasswd.setup

… e remover ou comentar a seguinte seção em /etc/phpmyadmin/apache.conf:

nano /etc/phpmyadmin/apache.conf
[...]  
## Autorizar para configuração  
#  
#      
#    AuthType Basic  
#    AuthName "phpMyAdmin Setup"  
#    AuthUserFile /etc/phpmyadmin/htpasswd.setup  
#      
#    Require valid-user  
#  
[...]  

Reinicie o Apache depois:

/etc/init.d/apache2 restart

17 Instalar Zend Framework

Embora o Zend Framework esteja disponível nos repositórios do Ubuntu 9.04, é a versão 1.7.5 e eu quero ter a versão mais recente, então vou baixá-la através do SVN, mas primeiro precisamos instalá-la:

aptitude install subversion

Agora podemos obter a versão mais recente do Zend Framework

cd /opt  
mkdir ZendFramework  
cd /ZendFramework  
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.3/

Em seguida, o que faremos é criar um link simbólico chamado “current” para essa pasta de lançamento, assim, se mudarmos a versão do Zend Framework, podemos fazê-lo sem reiniciar o Apache:

ln -s release-1.8.3 current

Para que não precisemos adicionar manualmente o caminho de inclusão em seus scripts PHP usando set_include_path. Quero que o Zend Framework atual seja incluído automaticamente, adicionando o caminho ao /etc/php5/apache2/php.ini.

nano /etc/php5/apache2/php.ini

Mude:

include_path = ".:/usr/share/php5:/usr/share/pear"

para:

include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"

Reinicie o Apache novamente:

/etc/init.d/apache2 restart

Quando uma nova versão do Zend Framework for lançada, tudo o que precisamos fazer é verificar o diretório SVN e mudar o link simbólico.

cd /opt/ZendFramework  
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.4/  
rm current  
ln -s release-1.8.4 current

18 Configurar a Ferramenta Zend

Agora precisamos configurar os caminhos para a linha de comando, então faremos as mesmas alterações que fizemos acima no PHP CLI.

nano /etc/php5/cli/php.ini
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"

Antes de sairmos do Super Usuário, temos uma última coisa a fazer para que você possa usar a ferramenta sob seu nome de usuário em vez de superusuário, você precisará definir permissões na pasta /var/www

chown username:usergroup /var/www

Agora, neste ponto, você precisará sair do superusuário:

exit
nano ~/.bashrc

e adicione a linha

[...]  
PATH=/opt/ZendFramework/current/bin:"${PATH}"
[...]  

Quase lá, vamos apenas testar a instalação, mas primeiro devemos reiniciar.

sudo reboot

Quando você fizer login novamente, não use sudo su, mas em vez disso:

zf.sh show version

E você deve obter

Zend Framework Version: 1.8.3

19 Usando a Ferramenta

Navegue até o diretório onde deseja que seu novo projeto esteja:

cd /var/www  
zf.sh create project seuProjeto

E você deve descobrir que a ferramenta criará sua estrutura básica de site, incluindo seus controladores e visualizações iniciais.

Por último, você provavelmente desejará copiar a pasta Zend para seu novo projeto

cp -r /opt/ZendFramework/current/library/Zend /var/www/seuProjeto/library/Zend

E você pode testar a instalação do Zend acessando: http://192.168.0.100/seuProjeto/public/

Aproveite!

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.