Mar 26

PHP and perl are two very popular Web programming languages. They both have many libraries and extensions that can simplify the process of development, but often you can find a perl library you want, and not the corresponding library in PHP. (Perl is older then PHP, so naturally it has a larger selection of libraries and extensions.) This was the main reason that the perl extension for PHP was written.


download the php perl  extention

# cd /root

# wget

# tar -xvf perl-1.0.0.tgz

# cd perl-1.0.0

you can read the README for detail installation on /root/perl-1.0.0




PHP 5.0.0RC2 or later

Perl 5.8.0 or later
Quick install

Step 1. Compile this extension. PHP_PREFIX and PERL_PREFIX mast point to


PHP and Perl instalation prefixes.
export PHP_PREFIX="/usr"

export PERL_PREFIX="/usr"


./configure --with-perl=$PERL_PREFIX


Step 2. Install the extension (this step can require root privileges)
make install
Step 3. Add perl extension into your php.ini (this step can require root


I assume you have installed the php and perl, youc an use yast / zypper to do that

# php -v
PHP 5.3.1 (cli)

#rpm -qa | grep perl

you can search php  prefix path by using whereis

# whereis php
php: /usr//local/bin/php /usr/share/man/man1/php.1.gz

# export PHP_PREFIX=”/usr/local”
# export PERL_PREFIX=”/usr”
# $PHP_PREFIX/bin/phpize
# ./configure –with-perl=$PERL_PREFIX
# make

you will find this error :

/root/perl-1.0.0/php_perl.c:172: warning: initialization from
incompatible pointer type
/root/perl-1.0.0/php_perl.c:173: warning: initialization from
incompatible pointer type
/root/perl-1.0.0/php_perl.c:199: warning: initialization from
incompatible pointer type
/root/perl-1.0.0/php_perl.c:200: warning: initialization from
incompatible pointer type
/root/perl-1.0.0/php_perl.c: In function âphp_perl_zval_to_sv_refâ:
/root/perl-1.0.0/php_perl.c:343: error: ‘zval’ has no member named ‘is_ref’

/root/perl-1.0.0/php_perl.c:1779: warning: assignment from incompatible
pointer type
make: *** [php_perl.lo] Error 1

Solution :

– it turns out the php_perl wasn’t compatible with the php 5.3

–  you need to go to -> click php_perl.c -> then click download (

– just wget

– you will get php_perl.c\?revision\=289243 just rename it to php_perl.c then paste it to /root/perl-1.0.0/ then

#cd /root/perl-1.0.0
#./configure –with-perl=/usr/bin/perl –with-php-config=/usr/local/bin/php-config
#make install

– Edit php.ini
#vim /usr/local/lib/php.ini
– add this line

– Restart the apache
#/usr/local/apache2/bin/apachectl stop
#/usr/local/apache2/bin/apachectl start

– Check your phpinfo


Aug 08

What is openssl php extension ?

Php module that  uses the functions of » OpenSSL for generation and verification of signatures and for sealing (encrypting) and opening (decrypting) data.

System requirement

  • – Apache2
  • – Php
  • – OpenSSL


In this tutorial i have already installed Apache2 and Php 5.2.5 . I just need to add OpenSSL module on my php i also decided to upgrade my php from 5.2.5 to 5.2.9. First you need to download the Php ( and Openssl sourcode (


Extract and compile the openssl

#cd /root
#tar -zxvf openssl-0.9.8k.tar.gz
#cd openssl-0.9.8k
#./config && make && make install

Extract, configure and installed the php

Before you configure the php sourcecode you must remember the previous php configuration right ? if not you can use php -i |grep configure to see the previous configuration

# php -i |grep configure
Configure Command =>  ‘./configure’  ‘–with-apxs2=/usr/local/apache2/bin/apxs’ ‘–with-mysql=/usr/local/mysql’ ‘–with-gd=/usr/local’ ‘–with-jpeg-dir=/usr/local/lib’ ‘–with-zlib-dir=/usr/local’ ‘–with-ftp’ ‘–with-gif’ ‘–enable-ftp’ ‘–with-png-dir=/usr/local/lib’ ‘–with-freetype-dir=/usr/local’ ‘–with-curl=/usr/local’

Now you have the config list, start the php installation

#cd /root
#tar -zxvf php-5.2.9.tar.gz
#cd php-5.2.9
./configure –with-openssl=/usr/local/ssl  –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql –with-gd=/usr/local –with-jpeg-dir=/usr/local/lib –with-zlib-dir=/usr/local –with-ftp –with-gif –enable-ftp –with-png-dir=/usr/local/lib –with-freetype-dir=/usr/local –with-curl=/usr/local

#make install

And the last thing don’t forget to restart your apache2

#/usr/local/apache2/bin/apachectl stop

#/usr/local/apache2/bin/apachectl start

Now check your openssl module

# php -m | grep openssl
if you see openssl it means you did it