Edição 1: Escrevi outro tutorial, utilizando PHP5-FPM e Nginx. Vale a pena dar uma olhada.
Se você utilizava o seu PC com Ubuntu para testar os seus projetos em PHP que somente funcionam corretamente com a versão 5.3 (como é o caso do Magento 1.7/1.8), e depois que atualizou o Ubuntu para a versão 14.04 LTS descobriu que ele vem o PHP 5.5, este artigo é para você; pois, eu tive o mesmo problema.
Googlando sobre o problema, eu descobri algumas dicas como o projeto PHPBrew e PuPHPet. Mas, nenhuma deu certo para mim. Então, eu tive que apelar para a compilação do código fonte do PHP 5.3.28…
Segue os comandos para preparar o sistema com os pacotes necessários para compilar o código fonte do PHP:
sudo -s
apt-get build-dep php5 apt-get install -y autoconf automake curl build-essential libxslt1-dev re2c libxml2 libxml2-dev php5-cli bison libbz2-dev libreadline-dev apt-get install -y libfreetype6 libfreetype6-dev libpng12-0 libpng12-dev libjpeg-dev libjpeg8-dev libjpeg8 libgd-dev libgd3 libxpm4 apt-get install -y libssl-dev openssl apt-get install -y gettext libgettextpo-dev libgettextpo0 apt-get install -y libicu48 libicu-dev apt-get install -y libmhash-dev libmhash2 apt-get install -y libmcrypt-dev libmcrypt4 apt-get install mysql-server mysql-client libmysqlclient-dev libmysqld-dev apt-get install -y apache2-dev
Agora vamos aos comandos para baixar o código fonte, compilá-lo e instalá-lo:
wget http://in1.php.net/distributions/php-5.3.28.tar.bz2
tar xfj php-5.3.28.tar.bz2
cd php-5.3.28
export dst=/usr/local ./configure --prefix=${dst} --with-config-file-path=${dst} --with-config-file-scan-dir=${dst}/conf.d --without-t1lib --disable-short-tags --with-apxs2=/usr/bin/apxs2 --enable-pcntl --with-tsrm-pthreads --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-pdo-mysql --with-openssl --with-zlib --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-bcmath --with-bz2 --enable-calendar --enable-exif --enable-ftp --with-gd --with-jpeg-dir=${dst}/usr/lib --with-png-dir=${dst}/usr/lib --with-xpm-dir=${dst}/usr/lib --enable-gd-native-ttf --enable-gd-jis-conv --with-iconv-dir --with-gettext --enable-mbstring --with-mcrypt --with-mhash --with-pspell --with-readline --with-snmp --enable-soap --enable-sockets --with-sqlite --enable-sqlite-utf8 --enable-wddx --with-xmlrpc --with-xsl --enable-zip --with-curl --with-curlwrappers --with-libdir=lib/i386-linux-gnu --with-xpm-dir=/usr make install
Se tudo deu certo até aqui, basta reiniciar o apache que o PHP já estará funcionando:
service apache2 restart
Excelente ajuda!!!
Tive alguns problemas por ser arquitetura 64 bits e por isso seguem informações que me ajudaram muito
Em caso de problemas com o pacote libicu48 basta executar os procedimentos abaixo:
Adicionar o seguinte source list no /etc/apt/sources.list
deb http://security.ubuntu.com/ubuntu precise-security main
No momento de compilar o PHP em caso de problemas com a libXpm basta:
mkdir -p /usr/lib/x86_64-linux-gnu/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/x86_64-linux-gnu/lib64/
e em seguida:
./configure –prefix=${dst} –with-config-file-path=${dst} –with-config-file-scan-dir=${dst}/conf.d –without-t1lib –disable-short-tags –with-apxs2=/usr/bin/apxs2 –enable-pcntl –with-tsrm-pthreads –with-mysqli=mysqlnd –with-mysql=mysqlnd –with-pdo-mysql –with-openssl –with-zlib –enable-sysvmsg –enable-sysvsem –enable-sysvshm –enable-bcmath –with-bz2 –enable-calendar –enable-exif –enable-ftp –with-gd –with-jpeg-dir=${dst}/usr/lib –with-png-dir=${dst}/usr/lib –with-xpm-dir=${dst}/usr/lib –enable-gd-native-ttf –enable-gd-jis-conv –with-iconv-dir –with-gettext –enable-mbstring –with-mcrypt –with-mhash –with-pspell –with-readline –with-snmp –enable-soap –enable-sockets –with-sqlite –enable-sqlite-utf8 –enable-wddx –with-xmlrpc –with-xsl –enable-zip –with-curl –with-curlwrappers –with-libdir=/lib/x86_64-linux-gnu –with-xpm-dir=shared, /usr
Ou seja alterando apenas os dois parâmetros finais: –with-libdir=/lib/x86_64-linux-gnu –with-xpm-dir=shared, /usr
Em caso do compilador reclamar: configure error please reinstall readline – i cannot find readline
Basta fazer o seguinte: apt-get install libreadline-gplv2-dev
Excelente ajuda Gilberto, só postei a resposta pra ajudar em caso de alguém passar o que passei.
Valeu.
Olá @_vbassini!
Qualquer comentário que possa também ajudar outras pessoas é bem-vindo.
Obrigado.
Olá,
Estou apanhando para instalar o PHP 5.3 no UBUNTU 14. Segui vários tutoriais e o que chegou mais perto foi o seu. Acho que falta pouco. Ao tentar reiniciar o apache recebi o seguinte:
========================================
root@TOM-U:~/php-5.3.28# service apache2 restart
* Restarting web server apache2 [fail]
* The apache2 configtest failed.
Output of config test was:
[Sat Aug 30 12:34:02.688535 2014] [:crit] [pid 13251:tid 3073952384] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
AH00013: Pre-configuration failed
Action ‘configtest’ failed.
The Apache error log may have more information.
===========================================
Alguma ideia de como corrigir?
Abraço,
Sergio
Olá, Sergio.
Me parece que você instalou o pacote apache2-mpm-worker. Experimente desinstalar ele e instalar apenas o pacote apache2.
Você também pode utilizar o servidor HTTP NGINX no lugar do Apache. Eu substitui o meu servidor Apache por um NGINX e estou muito satisfeito, porque ele consegue atender mais clientes ao mesmo tempo, com menos recursos. Veja o outro tutorial que eu escrevi sobre o PHP com NGINX
Olá Gilberto, obrigado pelo tutorial consegui instalar, mas tive o erro do nosso colega acima, então complementando:
Caso de o erro do MPM(Apache), basta desabilitar os 2 módulos no apache desta maneira:
a2dismod mpm_prefork
a2dismod mpm_worker
service apache2 restart
Obrigado pelo tutorial!!
Cara, consigo compilar, funciona, mas no ubuntu 14.04 não gera o libphp5.so de jeito nenhum. Alguem tem alguma idéia ?
Pessoal, usei a versão última do php 5.3.29 e funcionou.
Recomendo ! Abraço e obrigado.
Parabéns pelo post.
Só pra não confundir, observar o comando correto no caso da solução apresentada pelo colega @_vbassini que é:
./configure –prefix=${dst} –with-config-file-path=${dst} –with-config-file-scan-dir=${dst}/conf.d –without-t1lib –disable-short-tags –with-apxs2=/usr/bin/apxs2 –enable-pcntl –with-tsrm-pthreads –with-mysqli=mysqlnd –with-mysql=mysqlnd –with-pdo-mysql –with-openssl –with-zlib –enable-sysvmsg –enable-sysvsem –enable-sysvshm –enable-bcmath –with-bz2 –enable-calendar –enable-exif –enable-ftp –with-gd –with-jpeg-dir=${dst}/usr/lib –with-png-dir=${dst}/usr/lib –with-xpm-dir=${dst}/usr/lib –enable-gd-native-ttf –enable-gd-jis-conv –with-iconv-dir –with-gettext –enable-mbstring –with-mcrypt –with-mhash –with-pspell –with-readline –with-snmp –enable-soap –enable-sockets –with-sqlite –enable-sqlite-utf8 –enable-wddx –with-xmlrpc –with-xsl –enable-zip –with-curl –with-curlwrappers –with-libdir=lib/x86_64-linux-gnu –with-xpm-dir=shared