PHP 5.2 v CentOSu 5.x 64 bit

tux avatar php 5.2-centos320PHP 5.2 v CentOSu 5.x
 

CentOS 5.x obsahuje pouze PHP v. 5.1. Nové verze se dočkáme až s novou „velkou“ verzí CentOSu (RedHatu). Ačkoli je určitá konzervativnost pochopitelná, můžd to být i velký problém. Stačí být vývojářem, nebo jen potřebovat využívat nějaký modul pro Drupal, který vyžaduje vyšší verzi PHP.
Na internetu lze najít řadu návodů jak tento problém vyřešit. Ne všechny však fungují.
Jednou z možností je použít již vytvořené balíčky z tohoto odkazu (nezkoušel jsem).
Druhou variantou je použít níže popsaný postup, kteru jsem vyzkoušel v produkčním prostředí na CentOSu release 5.4 (Final)
a měl by „fungovat“ také na 32 bitové platformě.

1) Stáhneme zdrojový balíček PHP a uložíme jej na disk:

 

yum install aspell-devel freetds-devel libtidy-devel mhash-devel libmcrypt-devel t1lib-devel //  freetype-devel libpng-devel libjpeg-devel libXpm-devel ncurses-devel libxml2-devel //  libxslt-devel net-snmp-devel libxml2-devel unixODBC-devel postgresql-devel mysql-devel // openldap-devel cyrus-sasl-devel libc-client-devel krb5-devel gcc-c++ libtool bzip2 //  readline-devel smtpdaemon pcre-devel zlib-devel sqlite-devel openssl-devel libstdc++-devel // pam-devel  httpd-devel gmp-devel expat-devel db4-devel curl-devel bzip2-devel //  make httpd rpm-build libXaw libXmu libidn-devel perl apr-util-devel expat-devel apr-devel  

2) Stáhneme a nainstalujeme další potřebné balíky:

dag rpms (32 bit):

 

dag rpms (64 bit ):

3) A nainstalujeme je:

  • rpm -Uvh t1lib*

4) Nainstalujeme další balíčky:

Tyto  4 balíčky mohly být nainstalovány již dříve, ale pro jistotu:

yum install libmcrypt-devel mhash-devel libtidy-devel freetds-devel 

5) Vytvoříme vlastní RPM (tato část může trvat dlouho)

Vrátíme se do adresáře, kam jsme uložili stažený zdrojový php balíček a zadáme příkaz:
rpmbuild --rebuild php-5.2.6-5.src.rpm 

6) Nyní nainstalujeme RPM balíček

Vytvořené rpm balíčky jsou uloženy v adresáři  /usr/src/redhat/RPMS/x86_64 (nebo i386)

rpm -Uvh /usr/src/redhat/RPMS/x86_64/*
nebo
rpm -Uvh /usr/src/redhat/RPMS/i386/*

Uvidíme očekávaný výsledek ;-):
Preparing…                ########################################### [100%]
1:php-common             warning: /etc/php.ini vytvořen jako /etc/php.ini.rpmnew
########################################### [  4%]
2:php-pdo                ########################################### [  8%]
3:php-cli                ########################################### [ 12%]
4:php                    ########################################### [ 15%]
5:php-bcmath             ########################################### [ 19%]
6:php-dba                ########################################### [ 23%]
7:php-debuginfo          ########################################### [ 27%]
8:php-devel              ########################################### [ 31%]
9:php-embedded           ########################################### [ 35%]
10:php-gd                 ########################################### [ 38%]
11:php-imap               ########################################### [ 42%]
12:php-ldap               ########################################### [ 46%]
13:php-mbstring           ########################################### [ 50%]
14:php-mcrypt             ########################################### [ 54%]
15:php-mhash              ########################################### [ 58%]
16:php-mssql              ########################################### [ 62%]
17:php-mysql              ########################################### [ 65%]
18:php-ncurses            ########################################### [ 69%]
19:php-odbc               ########################################### [ 73%]
20:php-pgsql              ########################################### [ 77%]
21:php-pspell             ########################################### [ 81%]
22:php-snmp               ########################################### [ 85%]
23:php-soap               ########################################### [ 88%]
24:php-tidy               ########################################### [ 92%]
25:php-xmlrpc             ########################################### [ 96%]
26:php-xml                ########################################### [100%]

Který můžeme ještě zkontrolovat:
rpm -qa php

a uvidíme něco takovéhoto:
php-5.2.6-5

7) Možné problémy:

x86_64 yum neřeší některé závislosti. Jmenovitě:
libidn-devel for curl-devel, a perl/apr-util-devel/expat-devel/apr-devel pro httpd-devel
Proto musely být přidány do yum install file-listu v první části abychom se vyhnuli problémům.

Pokud obdržíte chybovou zprávu, která říká, že curl-devel-7.9 je vyžadován, ale je nainstalována verze 7.15,
odinstalujte jej příkazem:
yum remove curl curl-devel
a pak nainstalujte příkazem:
yum install curl curl-devel