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: 50.998 ]

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

Guia completo do Ocomon módulo admin no Linux (exclusivo VOL)

Acessando o Twitter de 5 formas: protocolo HTTP, cURL, classe HttpRequest (PHP), função http_post_fields() do PHP ou PHP+libcurl

Debugando aplicações PHP com Xdebug e Eclipse PDT

Criando Virtual Host no Apache: simples assim

PHP >= 5.1 x horário de verão brasileiro

  
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