Instalando o PHP 5.3 no Ubuntu 14.04

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

8 respostas para “Instalando o PHP 5.3 no Ubuntu 14.04”

  1. 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.

  2. 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

    1. 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

  3. 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!!

  4. Cara, consigo compilar, funciona, mas no ubuntu 14.04 não gera o libphp5.so de jeito nenhum. Alguem tem alguma idéia ?

  5. 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

Os comentários estão desativados.