¿Alguna vez has intentado compilar PHP en Solaris? Yo sí, y he de reconocer que no es una tarea sencilla. Hace varios años decidí utilizar cacti en Solaris. cacti es un programa escrito en PHP para generar gráficas, generalmente de rendimiento, y necesita Apache + MySQL + PHP . Por aquel entonces los paquetes de sunfreeware no estaban compilados de forma que PHP pudiera funcionar como módulo de Apache. Así que no tuve más remedio que compilar y compilar hasta que logré dar con una combinación adecuada de versiones y de opciones de compilación. La versión de Solaris que utilicé fue la 8, y escribí un documento donde contaba los detalles.
Después de tres años de espera, en octubre de 2007 se anunció la versión 0.8.7 de cacti, la cual estoy deseando probar. Esta vez lo haré en Solaris 10, y con gran alegría encuentro que esta vez sí es posible la instalación de Apache + MySQL + PHP en Solaris (SAMP) sin tener que compilar, utilizando únicamente paquetes binarios de sunfreeware.
Por otro lado, leo que Sun ha publicado su propia pila AMP, la cual no he tenido tiempo de probar.
En este post os contaré qué 20 paquetes de sunfreeware es necesario instalar y qué pasos hay que seguir para poder ejecutar Apache + MySQL + PHP en Solaris. Es importante seguir el orden aquí descrito, ya que hay paquetes que dependen de otros paquetes.
MySQL 5.0.41
Es necesario instalar los siguientes paquetes:
- libgcc-3.4.6
- openssl-0.9.8f
- zlib-1.2.3
- ncurses-5.6
- mysql-5.0.41
Después es necesario ejecutar como root:
# groupadd mysql
# useradd -g mysql -d /export/home/mysql -s /usr/bin/bash mysql
# passwd mysql
# cd /usr/local/mysql
# chown -R mysql .
# chgrp -R mysql .
# ln /usr/bin/hostname /usr/local/bin/hostname
# bin/mysql_install_db --user=mysql
# cp share/mysql/mysql.server /etc/init.d/mysql
# ln -s /etc/init.d/mysql /etc/rc3.d/S99mysql
# ln -s /etc/init.d/mysql /etc/rc0.d/K00mysql
# /etc/init.d/mysql start
Será conveniente también añadir al PATH el directorio /usr/local/mysql/bin y poner una contraseña al root de MySQL:
# mysqladmin -u root password 'password'
# mysqladmin -u root -h hostname password '
Apache 2.2.4
Como tarea opcional, se pueden desinstalar todos los paquetes de apache que vienen con Solaris. Para ver qué paquetes hay que desinstalar:
aunque puede que haya otros paquetes que dependan de los paquetes de apache.
Instalar los siguientes paquetes:
- expat-1.95.5
- libiconv-1.11
- apache-2.2.4
Hará falta crear los scripts para que apache arranque en el arranque de la máquina. Para ello, crear /etc/init.d/apache:
#!/usr/bin/sh
PATH=/usr/bin:/usr/sbin
export PATH
case "$1" in
'start')
echo "Arrancando Apache"
/usr/local/apache2/bin/apachectl start
'stop')
echo "Parando Apache"
/usr/local/apache2/bin/apachectl stop
*)
echo "Uso: $0 startstop"
exit 1
esac
exit 0
y crear los enlaces necesarios:
# ln -s /etc/init.d/apache /etc/rc3.d/S99apache
# ln -s /etc/init.d/apache /etc/rc0.d/K00apache
PHP 5.2.3
Instalar los paquetes:
- db-4.2.52.NC
- sasl-2.1.21
- libxml2-2.6.26
- openldap-2.3.35
- jpeg-6b
- libpng-1.2.23
- xpm-3.4k
- gd-2.0.33
- freetype-2.3.1
- fontconfig-2.4.2
- curl-7.17.1
- php-5.2.3
Añadir /usr/local/php/bin al PATH.
Y por último editar el fichero httpd.conf y rearrancar el servidor apache:
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
LoadModule php5_module modules/libphp5.so
# /etc/init.d/apache restart