El problema más frecuente cuando intentamos compilar Apache en una plataforma con Solaris reside en que, aún habiendo parte del software necesario ya instalado de base con el sistema operativo, éste entra en conflicto con el software GNU instalado a posteriori, sin contar con incompatibilidades varias que se van encontrando (entre ellas, el hecho que el compilador make del paquete SUNWsprot tiene restricciones en la inclusión de librerias que pueden afectar en la compilación).

Así pues, lo primero de todo será instalar las herramientas GNU necesarias. Los paquetes necesarios se pueden bajar de http://www.sunfreeware.com (un mirror bastante próximo y rápido es ftp://ftp.rediris.es/sites/ftp.sunfreeware.com/pub/freeware/sparc). Éstos son:

  • gcc (gcc_small-3.4.2-sol8-sparc-local) – La versión small del compilador es suficiente, ocupando 26Mb en vez de 116Mb.
  • libgcc (libgcc-3.4.1-sol8-sparc-local)
  • libiconv (libiconv-1.8-sol8-sparc-local)
  • libxml2 (libxml2-2.6.4-sol8-sparc-local)
  • binutils (binutils-2.11.2-sol8-sparc-local)
  • make (make-3.80-sol8-sparc-local)
  • flex (flex-2.5.4a-sol8-sparc-local)
  • bison (bison-1.875-sol8-sparc-local)
  • m4 (m4-1.4-sol8-sparc-local)
  • autoconf (autoconf-2.59-sol8-sparc-local)
  • automake (automake-1.9-sol8-sparc-local)
  • GNU sed (sed-4.1.1-sol8-sparc-local)
  • ZLib (zlib-1.2.1-sol8-sparc-local)
  • perl (perl-5.8.5-sol8-sparc-local) Podemos mantener la versión de Perl que viene con Solaris y funcionará igualmente (versión 5.005_03).
  • gzip (gzip-1.3-sol8-sparc-local) – Podemos mantener la versión de GNU Zip que viene con Solaris y funcionará igualmente (versión 1.2.4).
  • tar (tar-1.14-sol8-sparc-local) – Podemos mantener la versión de Tar que viene con Solaris y funcionará igualmente.
  • Berkeley DB (db-1.85-sol8-sparc-local): este paquete es opcional, se requiere para poder incluir el módulo de Apache mod_auth_db. No cuesta nada ponerlo, ocupa 264Kb (importante que sea el paquete db-1.xx, pues es la versión 1 de la Berkeley DB, la que hace falta).

La instalación de estos paquetes se realiza descomprimiendo mediante gzip -d nombrepaquete-local.gz e instalando mediante pkgadd -d nombrepaquete-local. Es importante que todos estos paquetes sean en su versión local, lo que significa que van a ser instalados bajo /usr/local.

En esta instalación se da por hecho que MySQL se encuentra instalado. Para este ejemplo, tenemos en cuenta que se encuentra instalado bajo /usr/local/mysql.

El siguiente paso es instalar la libreria JPEG para el soporte GD de PHP (GD son un conjunto de librerias de edición gráfica).

  • Visitaremos la web www.ijg.org, donde veremos el enlace al repositorio de FTP ftp://ftp.uu.net/graphics/jpeg. De ahí cogeremos la última versión del jpegsrc (actualmente jpegsrc.v6b.tar.gz).
  • Descomprimiremos, desempaquetaremos, y compilaremos según:
  • # gzip -d jpegsrc.v6b.tar.gz
    # tar xvf jpegsrc.v6b.tar
    # cd jpeg-6b
    # ./configure –enable-shared
    # make
    # make install

  • La libreria se instala en /usr/local/lib lista para ser usada

Bajamos la última versión de la serie 1.3 de Apache de httpd.apache.org. Actualmente la versión es la apache_1.3.33.tar.gz. Bajaremos el PHP más reciente de www.php.net. Actualmente la versión más reciente es la php-4.3.9.tar.gz.

Prepararemos el software de Apache y PHP según los pasos siguientes:

# gzip -d apache_1.3.33.tar.gz
# tar xvf apache_1.3.33.tar
# gzip -d php-4.3.9.tar.gz
# tar xvf php-4.3.9.tar
# PATH=/usr/local/bin:$PATH ; export PATH

Es importante que en el PATH exista ante todo la entrada /usr/local/bin y, para evitar problemas, nos aseguraremos que en el resto de PATH no exista /usr/ccs/bin. Con eso forzaremos a que los programas que se usen para compilar, las librerias… sean las que hemos recién instalado en /usr/local. A continuación compilaremos PHP:

# cd apache_1.3.33
# ./configure –prefix=/opt/local/apache_1.3.33
# cd ../php-4.3.9
# ./configure –with-gd –with-mysql=/usr/local/mysql –with-apache=../apache_1.3.33 –with-zlib-dir=/usr/local/lib –with-png-dir=/usr/local/lib –with-jpeg-dir=/usr/local/lib
# make
# make install

Para finalizar el apartado de instalación, compilaremos Apache:

# cd ../apache_1.3.33
# ./configure –prefix=/opt/local/apache_1.3.33 –activate-module=src/modules/php4/libphp4.a –enable-module=so –enable-rule=SHARED_CORE –enable-shared=remain –disable-module=auth_db –disable-module=auth_digest –without-execstrip
# make
# make install
# ln -s /opt/local/apache_1.3.33 /opt/local/apache

Crearemos el archivo php.ini según:

# cd ../php-4.3.9
# cp php.ini-dist /usr/local/lib/php.ini

Editar el fichero /opt/local/apache_1.3.33/conf/httpd.conf y añadir:

AddType application/x-httpd-php .php

Si tuvieramos una instalación anterior de Apache 1.3, podríamos sobreescribir el archivo de configuración de ejemplo por el que ya teníamos, y mantener los directorios cgi-bin, htdocs, etc… de la configuración anterior. Lo mismo se puede aplicar para php.ini.