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.025 ]

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

Abordagem exemplificada de orientação à objeto com PHP 5

Criando um sistema de banners rotativos em PHP

Compactador de URL utilizando manipulação de diretórios do Linux com PHP

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

Paginação de resultados em PHP/MySQL

  
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