Instalación

Se puede encontrar información para la instalación de esta extensión PECL en el capítulo del manual titulado Instalación de extensiones PECL. Se puede encontrar información adicional, tal como nuevos lanzamientos, descargas, ficheros fuente, información de mantenimiento, y un CHANGELOG, aquí: » https://pecl.php.net/package/sam.

El soporte de la framework SAM y MQTT puede ser construído y utilizado sin ningún otro requisito previo. El soporte para otros protocolos a parte de MQTT se proporciona en un conjunto de librerías y un código cliente denominado XMS.

Si únicamente se desea utilizar el soporte interno MQTT entonces se puede configurar SAM como una extensión o simplemente referir a php_sam.php con una cláusula require o require_once en su script PHP. En este caso únicamente es necesario instalar el código sin construir la extensión utilizando el instalador PEAR:

pecl install -B SAM

Pasos de la instalación Linux

La extensión SAM se proporciona como un módulo PECL module, el cual se puede descargar e instalar en un solo paso como se muestra a continuación:

pecl install sam
(Dependiendo de su entorno PHP, probablemente será necesario ser "root" para hacer esto.)

Asegurar que el módulo es cargado por PHP, añadiendo la siguiente línea a php.ini:

extension=sam.so
Si se desea utilizar el soporte XMS para acceder a la familia IBM Messaging and Queuing se debe también activar la extensión SAM XMS.
extension=sam_xms.so

Si no puede utilizar el instalador PEAR, puede recargar la extensión y la construcción manualmente:

pear download sam          #downloads sam-<version>.tgz
tar -xzf sam-<version>.tgz
cd sam-<version>
phpize
./configure
make
make install               #debería ser "root" para ejecutar este paso

Para trabajar con el código más reciente, necesitará extraerlo de SVN y construirlo manualmente como en el paso anterior.

Pasos de instalación Windows

Probablemente será necesario construir la extensión SAM para Windows puesto que sólo hay un rango liminado de ficheros binarios precompilados disponibles en la web de SAM. La extensión puede construirse utilizando los procedimientos estándares de construcción de las extensiones Windows.

Necesitará las fuentes de PHP para la versión de PHP para la que se quiere construir la extensión SAM, las cuales se pueden obtener de php.net. Se debe desempaquetar en un directorio de trabajo cualquiera.

También serán necesarias las librerías y cabeceras utilizadas por las extensiones PHP disponibles de http://www.php.net/extra/win32build.zip y éstas deben ser descomprimidas de tal forma que se sitúen en el directorio de trabajo.

Se ha de tener algo parecido a:

c:\php-build\-
              |
              |---php-5.0.5--|---build
              |              |---ext
              |              |--- ...
              |
              |---win32build--|---bin
                              |---include
                              |---lib

Será necesario un compilador como la versión gratuíta de Visual Studio C++ Express de la web de Microsoft. También será necesario el SDK Microsoft Windows Platform que también puede descargarse de la web de Microsoft.

Obtener el código de la extensión SAM utilizando PEAR (pecl download sam) o SVN y copiar los ficheros a un nuevo directorio "sam" bajo el directorio "ext" en su árbol de código PHP.

Para construir la extensión, abrir una ventana con un entorno de construcción yendo a Inicio

menu->Todos los programas->microsoft platform SDK for windows->
open build environment window->windows 200 build environment->
set windows 2000 build environment (retail)

Esto debe abrir una ventana de comandos con todas las variables de entorno configuradas para acceder a la plataforma SDK etc. Entonces será necesario definir las variables de entorno de Visual Studio mediante el comando vcvars32.bat en la ventana.

Cambiar el directorio a nuestro directorio de trabajo que hemos elegido p.e. cd c:\php-build. Entonces asegurar que las herramientas win32build son accesibles añadiéndolas a la variable de entorno PATH:

set PATH=..\win32build\bin;%PATH%

Ejecutar el comando buildconf.bat. Esto debe reconstruir el fichero configure.js.

Ejecutar el comando cscript con las opciones apropiadas. Para construir únicamente la extensión SAM framework y el soporte MQTT utilizar:

cscript /nologo configure.js --with-sam
Para construir la framework SAM y el soporte XMS support utilizar:
cscript /nologo configure.js --with-sam --with-sam_xms="c:\program files\ibm\xms"

El parámetro adicional pasado para sam_xms es el path de instalación a las librerias XMS y el runtime que fue instalado tal y como se describió en el apartado de requisitos previos al principio de esta página.

Se puede especificar cualquier otro parámetro cscript que sea necesario para incluir o excluir elementos de la construcción PHP u opciones seleccionadas.

Asumiendo que todo ha ido bien finalmente se debe ejecutar un "make" para la framework SAM!

nmake php_sam.dll
También si se está utilizando el soporte XMS se debe hacer el "make" de las extensiones sam_xms:
nmake php_sam_xms.dll

Si se ha utilizado Visual Studio 2005 para construir las DLLs lea, por favor, los pasos siguientes que se especifican abajo para ejecutar antes de continuar más allá.

Las DLLs creadas (php_sam.dll y opcionalmente php_sam_xms.dll) pueden copiarse ahora al subdirectorio apropiado de su configuración PHP . Asegurarse de que el/los módulo/s son cargados por PHP, añadiendo las siguientes líneas a php.ini:

extension=php_sam.dll
Si se desea utilizar el soporte XMS para acceder a la familia IBM Messaging and Queuing se debe activar también la extensión SAM XMS.
extension=php_sam_xms.dll

Pasos adicionales para Visual Studio 2005

Si se construye la extensión SAM extension con el compilador y las herramientas Microsoft Visual Studio 2005 es necesario realizar otro paso en el proceso de construcción para asegurar que php_sam.dll puede linkar con las librerías del runtime C runtime en el momento de ejecución. Este paso incluye el manifiesto de dependencia en la DLL. Ir al directorio donde se ha generado php_sam.dll (habitualmente Release_TS o Debug_TS bajo el directorio fuente de PHP) y ejecutar el conjuro mágico siguiente:

mt.exe -manifest php_sam.dll.manifest -outputresource:php_sam.dll;2
Si se están utilizando las capacidades XMS será necesario hacer lo mismo con SAM XMS DLL:
mt.exe -manifest php_sam_xms.dll.manifest -outputresource:php_sam_xms.dll;2

Si se construye la extensión SAM utilizando el compilador y las librerías de Microsoft Visual Studio 2005 también será necesario asegurar que los componentes del ejecutable están instalados en el sistema en el cual se desea utilizar SAM. Esto se puede hacer instalando Visual Studio 2005 o utilizando el distribuíble gratuíto » paquete de ejecución.