Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Google   


Compiling PHP 5 on AIX

News

Open Source packages for AIX

PHP Recommended Links GCC on AIX Compilation of open source on AIX
aix toolbox Apache on AIX Compiling PHP with Oracle support   Humor Etc
 

The content was adapted from IBM Wikis - AIX 5L Wiki - aixopen

AIX 5.3 ML 03 is assumed. The gcc 4.0 or later should be installed.

  1. Make sure you have a few tens MB of free space in the following directories:
  2. Download the following:
     
  3. Install all the RPM files - if they are in one directory you can use shortcut:

    rpm -Uvh *.rpm

  4. Uncompress the PHP source code file and untar the files
    gunzip php*tar.gz
    tar xvf php*.tar
  5. If complied with oracle correct file $ORAHOME/rbms/public/oratypes.h (for some mental or religious reasons) it contains these lines:

    /* --- Signed/Unsigned eight-byte scalar (orasb8/oraub8) --- */

    #if (__STDC__ != 1) || defined(__64BIT__)

    # define ORAXB8_DEFINED

    # ifndef lint

    # ifdef __64BIT__

    typedef unsigned long oraub8;

    typedef signed long orasb8;

    Correction:

    1. Add

    || defined(HAVE_LONG_LONG)

     to the #if

    2. Before configuring php, execute

    export CFLAGS="$CFLAGS -DHAVE_LONG_LONG"

     

  6. Add /opt/freeware/bin to the PATH and -DHAVE_LONG_LONG to CFLAGS (if complied with Oracle)

    export PATH=/opt/freeware/bin:$PATH

    export CFLAGS="$CFLAGS -DHAVE_LONG_LONG"

  7. Run the following configure script
    ./configure --prefix=/usr/local \
      --with-apxs2=/usr/local/apache2/bin/apxs \ 
      --with-config-file-path=/usr/local/apache2/conf \
      --with-gd \
      --with-ldap \
      --with-zlib-dir=/opt/freeware/lib \
      --enable-shared --disable-static \
      --with-zlib \
      --with-jpeg-dir=/opt/freeware/lib \
      --with-png-dir=/opt/freeware/lib \
      --with-xpm-dir=/opt/freeware/lib \
      --with-oci8=/oracle/app/oracle/product/10.2.0/db_1 \
      --with-freetype-dir=/opt/freeware/lib \
      --with-oci8=/oracle/app/oracle/product/10.2.0/db_1
    Notes:
  8. Compile PHP with the following command:
    make

Compiling PHP with Oracle support

Installation of PHP

Install PHP with the following two commands

make install
Installing PHP SAPI module: apache2handler
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' libphp5.la /usr/local/apache2/modules
rm -f /usr/local/apache2/modules/libphp5.so
/usr/local/apache2/build/libtool --mode=install cp libphp5.la /usr/local/apache2/modules/
cp .libs/libphp5.a /usr/local/apache2/modules/libphp5.a
cp .libs/libphp5.lai /usr/local/apache2/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /home/php/php-5.2.5/libs'
chmod 755 /usr/local/apache2/modules/libphp5.so
... ... ... 

Install libphp5.so, if nessesary and php.ini

Often make install fails to move  .libs/libphp5.so to destination. In this case you need to execute the command manually:

cp .libs/libphp5.so /usr/local/apache2/modules

If you do not have your own php.ini you need to put defualt into conf directory

cp php.ini-recommended /usr/local/apache2/conf/php.ini

Configuring PHP with Apache2 on AIX - By Example

Assuming you have just installed Apache2+ (and it is working OK) and have just installed PHP as in the above section then this is what you need to configure PHP to work.

  1. Stop Apache2 with: /usr/local/apache2/bin/apachectl -k stop
  2. You will need to configure PHP into Apache2 before you use it
  3. Restart Apache2 with: /usr/local/apache2/bin/apachectl -k start
     
  4. Now test PHP with Apache2

Once compiled moving Apache2+PHP to an new/production machine

Old News

[May 7, 2008] #38029 [NoF-Bgs] oci8 make procedure mistake

Typical complication when compling PHP5 with Oracle support

Error: oraub8 undeclared

Cause: $ORAHOME/rbms/public/oratypes.h (for some mental or religious reasons) contains these lines:

/* --- Signed/Unsigned eight-byte scalar (orasb8/oraub8) --- */

#if (__STDC__ != 1) || defined(__64BIT__)

# define ORAXB8_DEFINED

# ifndef lint

# ifdef __64BIT__

typedef unsigned long oraub8;

typedef signed long orasb8;

Solution:

1. Add

|| defined(HAVE_LONG_LONG)

 to the #if

2. Before configuring php, execute

export CFLAGS="$CFLAGS -DHAVE_LONG_LONG"

Example of configure script option for PHP5 with build-in with Oracle-support (oci8 libraries

--with-oci8=/oracle/app/oracle/product/10.2.0/db_1'

IBM AIX - Compile PHP with MYSQL Support

TekWire.Net - Building Apache & PHP on AIX 5.2

21 December 2006

Compiling Apache2 and PHP 5.1 on AIX

July 9th, 2006  | FASherman

This build was accomplished on AIX 5.3 ML 03 with no IBM compilers installed. I highly recommend building and installing Apache 2 and PHP 5.1 together. Performing these separately can have unpredicted results.

Prerequisites

  1. Make sure you have the necessary free space in the following filesystems:
    • /usr
    • /opt
    • /home
    • /tmp
  2. Download the following:
  3. Install libm.a from the AIX CDROM
  4. Install the compiler and library

    rpm -Uvh gcc-4*.rpm
    rpm -Uvh libgcc-4*rpm
Compiling Apache2+ using GCC
  1. Uncompress the Apache Web Server source into your home directory

    # gunzip httpd-2*tar.gz
    # tar xvf httpd-2*.tar
    # cd httpd*
  2. Build the configuration file enabling shared object

    # ./configure -C --enable-so --prefix /usr/local/apache2
  3. Compile the server

    # make
     
  4. Install the server (/usr/local/apache2)
# make install
 
Compiling PHP using GCC
  1. Uncompress the PHP source code file and untar the file

    # gunzip php*tar.gz
    # tar xvf php*.tar
    # cd php-5.1.4
  2. Build the configuration file enabling shared objects

    # export PATH=/opt/freeware/bin:$PATH
    # ./configure --prefix=/usr/local --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/conf --with-gd --with-pear --with-gettext --with-mime-magic --with-zlib-dir=/opt/freeware/lib --enable-shared --disable-static --with-png --with-zlib --with-bz2 --with-xml --with-jpeg-dir=/opt/freeware/lib --with-png-dir=/opt/freeware/lib --with-xpm-dir=/opt/freeware/lib --with-freetype-dir=/opt/freeware/lib
  3. Compile PHP with the following command:

    # make

    NOTE: There will be compiler warnings about pointers type mismatches. The can be disregarded.
  4. Install PHP with the following two commands
# cp .libs/libphp5.so /usr/local/apache2/modules
# cp php.ini-recommended /usr/local/apache2/conf/php.ini

 
Configuring Apache2 with PHP
  1. Stop Apache2

    # /usr/local/apache2/bin/apachectl -k stop
  2. Edit /usr/local/apache2/conf/httpd.conf, adding the following at the end

    LoadModule php5_module modules/libphp5.so
    AddType application/x-httpd-php .php
    DirectoryIndex index.php

     
  3. Edit the /usr/local/apache2/conf/php.ini file

    Change the php variable:
    ;date.timezone =
    to reflect your timezone
  4. Restart Apache2

    # /usr/local/apache2/bin/apachectl -k start
  5. Now test PHP with Apache2
    • Create a test web page

      # vi /usr/local/apache2/htdocs/phpinfo.php


      <h1> PHP testing </h1>
      <?PHP phpinfo() ?>
    • Open the page in your browser: http://your_server/phpinfo.php
    • Verify the php data
    • Delete phpinfo.php

      # rm /usr/local/apache2/htdocs/phpinfo.php

hints on Apache 2 and PHP on AIX

IBM Wikis - AIX 5L Wiki - aixopen

This Wiki page contains the following sections: 

Recommended Links


In case of broken links please try to use Google search. If you find the page please notify us about new location
Google     



Copyright © 1996-2008 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

Standard disclaimer: The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last modified: July 18, 2008