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.

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 OpenSSL más reciente de www.openssl.org. Actualmente la versión más reciente es la openssl-0.9.7e.tar.gz. Bajaremos la última serie del mod_ssl para la versión de Apache que usamos en www.modssl.org. Actualment es la mod_ssl-2.8.22-1.3.33.tar.gz.

Para este ejemplo supondremos que hacemos la compilación bajo /opt/sistemas/compilacion_apache_1.33. Prepararemos el software de Apache, mod_ssl y OpenSSL según los pasos siguientes:

# mkdir /opt/sistemas/compilacion_apache_1.33
# mv /archivos/*.gz /opt/sistemas/compilacion_apache_1.33
# cd
/opt/sistemas/compilacion_apache_1.33

# gzip -d apache_1.3.33.tar.gz
# tar xvf apache_1.3.33.tar
# gzip -d openssl-0.9.7e.tar.gz
# tar xvf openssl-0.9.7e.tar
# gzip -d mod_ssl-2.8.22-1.3.33.tar.gz
# tar xvf
mod_ssl-2.8.22-1.3.33.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 OpenSSL, instalandolo en este directorio de compilación. Si quisieramos instalarlo en la máquina, solo tendriamos que sustituir el path por el del sitio de nuestra elección:

# cd openssl-0.9.7e
# ./Configure solaris-sparcv9-gcc –prefix=/opt/sistemes/compilacio_apache_1.33/openssl-engine
# make
# make test
# make install

A continuación compilaremos el mod_ssl que incluirá los archivos necesarios en el directorio de Apache:

# cd ../mod_ssl-2.8.22-1.3.33
# ./configure –with-apache=../apache_1.3.33 –with-ssl=../openssl-engine –prefix=/opt/local/apache_1.3.33 –enable-shared=remain –disable-module=auth_db –disable-module=auth_digest –enable-module=so –enable-rule=SHARED_CORE

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

# cd ../apache_1.3.33
# SSL_BASE=”/opt/sistemes/compilacio_apache_1.33/openssl-engine”; export SSL_BASE

# ./configure –with-layout=Apache –prefix=/opt/local/apache_1.3.33 –enable-shared=remain –disable-module=auth_db –disable-module=auth_digest –enable-module=so –enable-rule=SHARED_CORE –enable-module=ssl –without-execstrip
# make

# make certificate
(podemos omitir este paso si lo queremos configurar posteriormente nosotros mismos; si no sabemos muy bien como configurarlo, podemos escoger la opción de make certificate de tipo DUMMY, de forma que no sincluirá la configuración para un certificado de pruebas que luego podremos sobreescribir con el nuestro)

# make install
# ln -s /opt/local/apache_1.3.33 /opt/local/apache

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.