PHP 5 - Compilando com as melhores práticas com PHP 4

Este artigo tem por objetivo mostrar-lhes a compilação do PHP 5 para obter melhor desempenho mantendo o core limpo de módulos, apenas os básicos, e dispondo os demais como módulos dinamicamente carregados. Também poderá ser usado para manter PHP 4 e PHP 5 num mesmo sistema. Os procedimentos foram testados no Slackware para manter duas versões de PHP (4 e 5), mas são facilmente ajustáveis para qualquer outra necessidade.

[ Hits: 25.029 ]

Por: Anderson J. de Souza em 27/08/2008 | Blog: http://anderjs.blogspot.com/


Manual, informações ou pré-script



Para facilitar, copie as linhas abaixo e salve-as em um arquivo chamado como README.aj. Apesar de este não ser um script executável você poderá executá-lo usando o comando abaixo:

sed -r 's/#.*$//g' README.aj | tr '\n' ' '

Para otimizar o código para i686, rode o comando abaixo antes do comando acima:

sed -i -r 's/^([[:space:]]*C(XX|PP)?FLAGS[[:space:]]*=.*)$/\1 -mcpu=i686 -march=i686 -pipe/g' Makefile

# ANALISE AS LINHAS DO ARQUIVO E PERCEBA QUE NÃO ESTÁ SENDO MONTADO UM PACOTE PADRÃO
# Caso você queira criar um pacote padrão do Slackware ou de outro sistema, ajuste ou remova o --prefix
# Também é aconselhado que você ajuste as opções de compilação. Leia a página seguinte antes de fazê-lo
#
# By Anderson J. S. - anjoel.s @ gmail.com
# At OmegaTechnologia.com
#
# Este arquivo sem seus comentários é uma linha de execução para a configurar o PHP 5 a partir de seu src.
# Você pode executar este arquivo com (note o crase `):
## # `sed -r 's/#.*$//g' README.aj | tr '\n' ' '`
## Se necessário, ajuste o apontamento para este arquivo
#
## Opções simples para otimização do código ou compilação - para GCC 3.3
# -mcpu=i686 -march=i686 -pipe
# Aplique com: sed -i -r 's/^([[:space:]]*C(XX|PP)?FLAGS[[:space:]]*=.*)$/\1 -mcpu=i686 -march=i686 -pipe/g' Makefile
##
#
## Para instalação em diretório diferente use make INSTALL_ROOT=/xxx/
## ao invés do padrão DESTDIR
#
## Linha para execução de "todos" processos de preparação para criar pacote para Slackware. - ajuste o apontamento para este arquivo
# `sed -r 's/#.*$//g' README.aj` && sed -i -r 's/^([[:space:]]*C(XX|PP)?FLAGS[[:space:]]*=.*)$/\1 -mcpu=i686 -march=i686 -pipe/g' Makefile && make && make INSTALL_ROOT=/tmp/php5 install
#
#
#
## Parâmetros do configure ignorados, mas com possibilidade de ativá-los ou suas configurações
#'--enable-safe-mode'
#'--with-expat-dir=/usr'
#
#'--with-curl=/usr'
#'--with-gettext=shared,/usr'
#'--with-mysql=shared,/usr'
#'--with-pcre-regex=/usr'
#'--with-mm=/usr'
#'--with-zlib=/usr'
#'--with-snmp=shared,/usr/local'
#
#'--with-imap-ssl=/usr/local/lib/c-client'
#'--with-imap=/usr/local/lib/c-client'
#'--with-interbase=/usr/lib/firebird'

# OBS.:
# Esta configuração de instalação mantém pdo com diversos bugs
# e MSQLi com Bug #42548 PROCEDURE xxx can't return a result set in the given context (works in 5.2.3!!)

## -- Compilação do php para utilizar apenas módulos básicos em seu core, deixando todos os módulos disponíveis para carga em realtime -- ##
## opções padrões para configuração do modo de trabalho e instalação do php

./configure
--prefix=/usr/local/php5
--host=i686-slackware-linux
--enable-discard-path
--enable-force-cgi-redirect
--enable-fastcgi
--with-layout=GNU
--with-regex=php
--with-zend-vm=CALL
--with-apxs=/usr/sbin/apxs
--with-tsrm-pthreads
--disable-static
--enable-shared
--disable-debug
--disable-all

## Bibliotecas estáticas
--with-pcre-regex # precisa para testes e também será padrão em novos PHPs (regex usará pcre)
--enable-reflection
--enable-libxml # básico para diversos módulos
--with-libxml-dir=/usr/local
--enable-simplexml # é usado pelo spl, porém não é necessário estar aqui, apenas carregá-lo quando for necessário em spl
--enable-spl
--enable-session # causa bug 27508 se construir compartilhado - http://bugs.php.net/bug.php?id=42615
--with-mm

## Bibliotecas dinâmicas - ativadas por padrão no PHP
--with-mcrypt=shared
--with-openssl=shared
--with-kerberos
--enable-dba=shared
--with-db4
--with-cdb
#--with-qdbm
--with-gdbm
#--with-dbm
--enable-inifile
--enable-flatfile
--enable-ctype=shared
--enable-dom=shared
--enable-filter=shared
--enable-hash=shared
--with-iconv=shared
--enable-json=shared
--enable-pdo=shared
--with-pdo-sqlite=shared
--with-pdo-mysql=shared
--with-pdo-odbc=shared,unixODBC
--with-pdo-pgsql=shared
--enable-posix=shared
--with-sqlite=shared
--enable-tokenizer=shared
--enable-xml=shared
--enable-xmlreader=shared
--enable-xmlwriter=shared

## Dinâmicas adicionais
--enable-dbase=shared
--with-pgsql=shared
--with-unixODBC=shared
--enable-bcmath=shared
--enable-calendar=shared
--enable-ftp=shared
--enable-shmop=shared
--enable-sockets=shared
--with-bz2=shared
--with-iconv=shared
--enable-exif=shared
--enable-mbstring=shared
--with-curl=shared
--with-curlwrappers
--with-gettext=shared
--with-mhash=shared
--with-mysql=shared
--with-gmp=shared
--with-zlib=shared
--with-snmp=shared
--with-interbase=shared
#--with-ldap=shared
--with-mhash=shared
#--with-ming=shared
--with-mysqli=shared
--enable-sysvmsg=shared
--enable-sysvsem
--enable-sysvshm
--enable-pcntl=shared
--with-ncurses=shared
--with-gd=shared
--enable-gd-native-ttf
--with-jpeg-dir=/usr
--with-png-dir=/usr
--with-ttf=/usr
--with-freetype-dir=/usr/local

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Manual, informações ou pré-script
   3. Otimização do GCC
   4. Criando pacote para Slackware
   5. Arquivo de configuração do PHP 5
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Usando classes em conexão e consultas à banco de dados em PHP

Instalando Lamp Stack no Servidor Debian

Formantando nomes com caracteres especiais em PHP

Como programar com OOP em PHP, uma classe simples

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

  
Comentários
[1] Comentário enviado por ajsouza em 08/09/2008 - 10:33h

pessoal ,.. faltou uma coisa que pode ajudar,... no comando de compilação vocês podem adicionar um --with-pear


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts