BolachaMALPPH Apache X Lighttpd X PHP/FastCGI X APC X HTTPREF X MySQL

Basicamente, o objetivo desse arquivo é mostrar uma instalação passo a passo dos serviços através do código fonte, e ao mesmo tempo mostrar o resultado comparando o Apache com Lighttpd através de um ambiente personalizado.

[ Hits: 52.010 ]

Por: CalRaiden© em 19/03/2010


PHP (recomendo a versão 5.2.13 ou superior)



PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada.

Retornamos ao nosso diretório default dos downloads e baixamos a versão do php que será utilizada. Repare que não estou utilizando a última versão, por questão de compatibilidade do meu sistema, vou trabalhar com a versão php-5.2.13.

# cd /root/softwares/
# wget
http://br2.php.net/get/php-5.2.13.tar.gz/from/this/mirror
# tar –xvf php-5.2.13.tar.gz
# cd php-5.2.13


Configurando, novamente perceba que estou realizando uma configuração personalizada, ative somente os plugins que você ira utilizar em seu projeto, caso contrário, não faz sentido instalar o aplicativo com código fonte.

# ./configure \
--prefix=/home/php \
--sysconfdir=/home/php/etc \
--with-exec-dir=/home/php/bin \
--with-apxs2=/home/httpd/bin/apxs \
--with-mysql=/home/mysqld \
--with-pdo-mysql=/home/mysqld \
--with-pear \
--with-curl \
--with-openssl \
--with-xmlrpc \
--with-snmp \
--with-gd \
--enable-ftp \
--enable-soap \
--enable-json \
--enable-sockets \
--enable-zip \
--enable-debug


Dica: Durante o configure pode ocorrer alguns erros devido aos plugins que estão sendo ativados. Alguns erros de pacotes não encontrado:

Configure: error: xml2-config not found. please check your libxml2 installation

Instale (no CentOS):

# yum install libxml2 libxml2-devel

Configure: error: cannot find OpenSSL's <evp.h>

Instale:

# yum install openssl openssl-devel

Configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl

Instale:

# yum install curl curl-devel

If configure fails try --with-jpeg-dir=<DIR>
Configure: error : libpng.(a|so) not found.

Instale:

# yum install libjpeg libjpeg-devel libpng libpng-devel

Configure: error: snmp.h not found. Check your SNMP installation.

Instale:

# yum install net-snmp net-snmp-utils net-snmp-devel

# service snmpd start
# chkconfig snmpd on


Nessa altura do campeonato você deve estar perguntando: "Pow, não poderia já ter avisado das dependências antes?". Então respondo, claro que não. Lembre-se, minha necessidade, sua necessidade. Estou instalamos módulos que irei usar em meu projeto, você deve instalar módulos que vai usar em teu projeto. Se por acaso estiver fazendo CTRL+C e CTRL+V. então não reclame depois se o serviço estiver consumindo muito recurso da maquina. É claro, se estiver brincando ou aprendendo, aí faz sentido copiar e colar. Além do mais, se é um cara esperto, já percebeu que os erros são padronizados, então se ocorreu um erro desse tipo, basta apenas procurar no repositório de sua distribuição a dependência para instalar.

Dica (que você já deveria saber):
  • CentOS > yum search NOMEDOPACOTE
  • Debian > apt-cache search NOMEDOPACOTE

Se estiver fazendo instalação manual das dependências, é só informar o caminho. Os nomes dos pacotes entre as distribuições podem variar, padronização "never", mas fazer o que! Como diz Fábio Berbert de Paula, "Tu é nerd, sabe se virar!".

Agora é agora de fazer o make, make test e make install.

Faz o make e vá tomar um café, pois pode acreditar, demora!!!

# make

Após o make, realize o make test, na verdade essa parte é opcional, mas se tratando do php, sempre faço.

# make test

No final ele vai te fazer a pergunta clássica, não precisa enviar o relatório, mas software livre, então colabore e envie o relatório.

Do you want to send this report now ? [Yes]

Arquivo de configuração, copie o arquivo do seu diretório para o local na qual foi definido no sysconfdir.

# cp /root/softwares/php-5.2.13/php.ini-dist /home/php/etc/php.ini

Como nem tudo é perfeito, e se tratando de computação, mais ainda. Quando fiz o configure, passei o parâmetro "--sysconfdir=/home/php/etc", porém o php não obedeceu e continua buscando o arquivo de configuração no endereço "/home/php/lib/". Então criei um link simbólico e resolvido.

# ln -s /home/php/etc/php.ini /home/php/lib/

Começando a ficar divertido né? Então vamos agora instalar alguns módulos/plugins para melhorar a performance do php ou você pode instalar o php seco e depois reclamar da lentidão.

Primeiro, só uma atualização no pear/pecl (PEAR - PHP Extension and Application Repository). É necessário ter feito o configure com a opção "--with-pear", se não fez, então passe para a próxima parte desse artigo.

# /home/php/bin/pear upgrade pear

Opcional: Vou precisar de algumas fontes extras, se não vai usar, já sabe, não instale.

# /home/php/bin/pear install Image_Graph-0.7.2 Image_Canvas-0.3.2 Image_Color Numbers_Words-0.16.1 Numbers_Roman

Preciso de algumas funcionalidades extras para comunicação http, então estou instalando o pecl_http. Mesma recomendação anterior.

# /home/php/bin/pecl install pecl_http

Depois adicione no php.ini "extension=http.so" para ativar a extensão.

# nano /home/php/etc/php.ini

Estarei instalando agora a extensão apc para otimização do gerenciamento de cache da memória através do código php.

No caso apc pode ser feito de duas maneiras:

1) Via pecl install:

# /home/php/bin/pecl install

Dica: Às vezes ocorre erro de instalação via pecl. Então é só copiar do diretório temporário o código fonte que foi baixado pelo pecl e faça a compilação normalmente.

# cp -ar /tmp/pear/download/APC-3.0.19 /root/softwares/
# cd /root/softwares/APC-3.0.19
# ./configure \
--enable-apc \
--enable-apc-mmap \
--with-apxs=/home/httpd/bin/apxs \
--with-php-config=/home/php/bin/php-config

# make
# make test # Recomendando
# make install


2) Download do código fonte.

# cd /root/softwares
# wget
http://pecl.php.net/get/APC
# tar -zxf APC-LATEST-VERION.tgz
# cd APC-LATEST-VERION
# ./configure \
--enable-apc \
--enable-apc-mmap \
--with-apxs=/home/httpd/bin/apxs \
--with-php-config=/home/php/bin/php-config # make


Recomendo fazer o make test.

# make test
# make install


No final da instalação ele vai informar o local aonde guardou a extensão, anote esse endereço. Talvez precise.

Geralmente eu uso via pecl mesmo, sempre deu erro, mas depois é copiar no temporário o código e compilar. =D

Adicione no config do php.ini a seguinte linha.

#Added php.ini
extension=apc.so

[apc]
enabled=1
shm_segments=1
optimization=0
shm_size=128
ttl=7200
user_ttl=7200
num_files_hint=1024
mmap_file_mask=/tmp/apc.XXXXXX
enable_cli=1

Tive alguns probleminhas bem estranhos na hora de compilar o APC, simplesmente o script "configure" não existia. Se alguém estiver tento problema similar, disponibilizei a versão que usei nesse endereço: http://calraiden.com.br/public/APC-3.0.19.tar

Verifique se está tudo OK com as extensões com o comando.

# /home/php/bin/php -m

Dica: Se ele reclamou que não encontrou as extensões que foram instaladas com o pear/pecl, lembra-se que no final da instalação do apc pedi para anotar o local aonde foi salvo o arquivo de extensão? Agora vá no arquivo de configuração do php e coloque o valor na variável "extension_dir".

Exemplo erro:

PHP Warning: PHP Startup: Unable to load dynamic library './apc.so' - ./apc.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library './http.so' - ./http.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library './memcache.so' - ./memcache.so: cannot open shared object file: No such file or directory in Unknown on li

Modificar no php.ini:

Exemplo: extension_dir ="/home/php/lib/php/extensions/debug-non-zts-20060613/"

Altere a linha do arquivo para o local aonde estão suas extensões.

Se não soube aonde encontra-se, procure o arquivo apc.so com o comando "find" ou "locate" e vai encontrar aonde ele salvou.

Algumas pessoas preferem o memcached ao invés do apc. Aí depende de sua necessidade. Não vou entrar ou comentar sobre esse assunto. Caso alguém deseje saber mais sobre o assunto, esse artigo faz uma boa comparação.

E vamos para o próximo passo. Adivinhe? PHP de novo.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Primeiros passos
   3. MySQL
   4. Apache - httpd
   5. Lighttpd
   6. PHP (recomendo a versão 5.2.13 ou superior)
   7. PHP CGI/FASTCGI
   8. Estrutura de testes
   9. POGramando
   10. Httpref
   11. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Debugando aplicações PHP com Xdebug e Eclipse PDT

Utilizando PHP e Apache para desligar um Ubuntu

Symfony Framework - Introdução

Criando gráficos com a classe JPGraph (parte 1)

Criando Virtual Host no Apache: simples assim

  
Comentários
[1] Comentário enviado por calraiden em 25/03/2010 - 08:27h

O link com os logs de resultado do httpref contém espaços. O link correto é
http://www.calraiden.com.br/public/htpref_test.rar , caso alguém não conseguiu baixar e não percebeu os espaços em branco entre o nome do arquivo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts