Este exemplo vamos aplicar em um servidor web para uso de hospedagem de um CMS Joomla. Baixe a versão mais recente do Apache 2.4.2 (atualmente). Instalando as as dependências para o Apache2 aptitude install libapr1 libapr1-dev libaprutil1 libaprutil1-dev -y Baixe a versão desejada e mova para /usr/src/

sudo su 
cd /usr/src/
curl http://apache.mirror.pop-sc.rnp.br/apache//httpd/httpd-2.4.2.tar.gz -o httpd-2.4.2.tar.gz
tar -xzvf httpd-2.4.1.tar.gz
ln -s /usr/src/httpd-2.4.2 /usr/src/apache2

Agora vamos configurar e compilar o apache:

./configure –prefix=/usr/local/apache2 –enable-so –enable-cgi –enable-info –enable-rewrite
    –enable-speling –enable-usertrack –enable-deflate –enable-ssl –enable-mime-magic

make
make install

Agora vamos instalar as bibliotecas que são dependências para que o PHP tenha suporte ao MySQL aptitude install libmysql++-dev libmysqlclient-dev libmysqld-dev -y

Agora vamos baixar a versão mais recente do PHP e Descompactar no dir /usr/scr/ – faça o download de www.php.net/get/php-5.4.6.tar.gz/from/a/mirror e mova para o diretório acima citado e descompacte

Fazendo a compilação do PHP com uns módulos adicionais:

./configure –with-apxs2=/usr/local/apache2/bin/apxs –prefix=/usr/local/apache2/php
–with-config-file-path=/usr/local/apache2/php –with-zlib –with-gettext –with-mysql –with-mysqli –with-mcrypt=/usr/local/bin/mcrypt –enable-mbstring

Sobre os módulos acima alem do mysql por padrão foi adicionado o mysqli para que o joomla funcione corretamente (alguns usuario criam websites no joomla com mysqli portanto para que o nosso servidor funcione corretamente devera ter este modulo habilitado.

Já a parte do –with-mcrypt=/usr/local/bin/mcrypt –enable-mbstring é para o phpmyadmin na versão mais recente se conectar em um servidor MySQL externo.

Porem antes da compilação acima necessita baixar e instalar os modulos Mcrypt e LibMcrypt

make
make install

Copiar o arquivo do PHP para o local abaixo: cp php.ini-production /usr/local/apache2/php/php.ini

Para o apache vamos criar o usuario e grupo com os seguintes commandos:

  • groupadd apache
  • useradd -g apache apache

Já no arquivo do apache em /usr/local/apache2/conf/http.conf edite as configuração: DocumentRoot "/home/www" Ou seja os usuario depois e logado via FTPS vão usar a partição /home/www para armazenar seus arquivos em pasta separadas por sites. Exemplo site01 do usuario joao ficara em /home/www/joao/site01

Para teste vamos iniciar nosso apache com o comando: /usr/local/apache2/bin/apachectl start Para teste das coonfiguraçãoes use o comando: /usr/local/apache2/bin/apachectl -t

Syntax OK

Para teste do PHP e do Apache2 crie um arquivo com: vim /usr/local/apache2/htdocs/phpinfo.php

<?php
    phpinfo();
?>

Mudando o local do arquivo para startar o Apache2 cp /usr/local/apache2/bin/apachectl /etc/init.d/apache2 Colocando o apache2 na inicialização: insserv -f apache2