que tal este tuto?
Estimados compañeros del foro. Saludos.
Hace mucho tiempo que no entro al foro, ya que por motivos laborales me he alejado un poco de openSUSE.
En esta oportunidad, estoy intentando instalar saprfc para poder conectarme a SAP (Mediante RFCs) desde el PHP.
Ha instalado el openSUSE Leap 42.2 y encima el PHP5.5
He seguido principalmente el tutorial detallado en el siguiente link:
http://www.rgiapratama.net/2011/08/2...tos-5-4-64bit/
El mismo me ha valido, ya que todo esta funcionando bien, hasta el punto en el que ejecuto el comando make.
Ya que me sale el siguiente mensaje de error en las lineas finales de ejecutar el comando make:
Si desean mas informacion, les podria mandar el resultado del comando ./configure y del comando make.Makefile:181: recipe for target 'saprfc.lo' failed
make: *** [saprfc.lo] Error 1
Laptop HP dv5-2133la [AMD Phenom II N640 2.9GHz / 4GB DDR3 RAM / ATI Radeon HD 4250 / 500GB 7200rpm HD]
que tal este tuto?
Gracias por tu respuesta.
El tutorial que me indicas ya lo habia visto. Lo he seguido paso a paso y el error que me sale al momento de hacer el make es el siguiente:
Que me parece que es el miso error comentado al inicio.Makefile:181: recipe for target 'saprfc.lo' failed
make: *** [saprfc.lo] Error 1
Por favor, si desean les facilito los archivos descargados desde SAP, también les puedo facilitar el log completo del make.
Por favor, algún experto en el tema.
Aparentemente falta un archivo, no se.
[EDITO]
Logre compilar ya se genero el archivo y se genero el archivo saprfc.so el cual se guardo en la ruta /usr/lib64/php5/extensions
Ello, siguiendo pautas adicionales de este link
https://stackoverflow.com/questions/...re-saprfc-php5
Enfocarse en la seccion que dice [change "function_entry" to "zend_function_entry"]. Haciendo eso ya logra compilar.
Tambien, ya he creado el archivo /etc/php5/conf.d/saprfc.ini agregando el texto extension=saprfc.so.
Reinicio apache y veo phpinfo() y veo que esta reconociendo el archivo saprfc.ini en la seccion [Additional .ini files parsed]
Pero no se carga el modulo
Revisando el log de apache /var/log/apache2/error_log encuentro la siguiente linea:
He buscado la libreria libstdc++.so.5 o similar en los repositorios, tambien he buscado el paquete compat sin encontrarlo.PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php5/extensions/saprfc.so' - libstdc++.so.5: cannot open shared object file: No such file or directory
Por favor, ¿que es lo que me hace falta? ¿donde debo mover? ¿Que cosa mas debo instalar? Se que el modulo ya se compilo y se instalo, pero no levanta por falta de alguna libreria adicional.
Cuando logre instalarlo y funciones todo, supongo que deberé hacer un tutorial detallado de lo que se tiene que hacer, ya que saco info de un lado y del otro.
Por favor, espero su apoyo.
[EDITO]
Levantó! Mañana público paso por pasó el procedimiento.
Última edición por UnderUp; 21-jul-2017 a las 03:07
Laptop HP dv5-2133la [AMD Phenom II N640 2.9GHz / 4GB DDR3 RAM / ATI Radeon HD 4250 / 500GB 7200rpm HD]
Saludos a los compañeros del foro.
Tal como les dije, después de muchos intentos, logré levantar el módulo de PHP SAPRFC.
A continuación se detallarán los pasos para poder instalar correctamente SAPRFC en openSUSE.
SAPRFC es un módulo de extensión para PHP 4 y PHP 5. Con SAPRFC es posible llamar módulos de funciones ABAP en SAP R/3 desde scripts PHP. Se puede usar el potente lenguaje PHP para crear aplicaciones web o programas de interfaz con conectividad a SAP R/3.
Referencias:
El presente procedimiento se logró en base varias pruebas de intento/error, hasta lograr el objetivo. Se tomaron como referencias principalmente las siguientes fuentes:
Requerimientos:
- Sistema operativo: openSUSE Leap 42.2 x86_64
- Kernel Linux: 4.4.74-18.20-default
- PHP version: 5.5.14
- Apache version: 2.4.23
Paquetes adicionales:
Para poder compilar e instalar correctamente el módulo de SAPRFC se requieren tener instalados los siguientes paquetes:
- php5-devel (paquete para la instalación de SAPRFC como un módulo dinámico)
- autoconf, automake, flex, libtool, gcc, m4, make
Descargas adicionales:
Descargar la librería SAPRFC para PHP, la cual se encuentra en Sourceforge.
Para desempaquetar el archivo saprfc-1.4.1.tar.gz descargado usamos el siguiente comando:
Descargar el SAP RFCSDK y SAPCAR desde el portal de soporte de SAP, en la sección de descargas:Código:tar -xzvf nombre_archivo.tar.gz
El archivo para el SAP RFCSDK que me funcionó es el siguiente:
SAPCAR permitirá desempaquetar el contenido del archivo *.SAR, usando el siguiente comando:RFC_60-10003378.SAR
SAP RFC SDK 6.4 UNICODE LINUX x86_64
Procedimiento:Código:SAPCAR -xvf nombre_archivo.SAR
Hasta este punto, tener las siguientes carpetas descomprimidas.
- rfcsdk
- saprfc-1.4.1
La carpeta rfcsdk obtenido desde el archivo RFC_60-10003378.SAR que descargue desde la web del portal SAP, no tiene incluido el archivo librfccm.so, por lo cual se deberá descargar otra versión del RFCSDK para Linux que si contenga el archivo, y pegar el archivo en la sub-carpeta /lib
Crear la carpeta /usr/sap y allí copiar la carpeta rfcsdk, quedando así /usr/sap/rfcsdk. Luego darle los permisos necesarios al directorio creado.
Entrar a la carpeta saprfc-1.4.1 descomprimida previamente.Código:mkdir /usr/sap mv rfcsdk /usr/sap chmod -R 755 /usr/sap
Modificar el archivo saprfc.c en la linea 47. Cambiar el texto "function_entry" por "zend_function_entry" y, posteriormente, ejecutar los siguientes comandos:Código:cd saprfc-1.4.1
Se compilara el archivo saprfc.so en la siguiente ruta:Código:cd saprfc-1.4.1 phpize ./configure make make install
En la carpeta /etc/php5/conf.d/ donde están los archivos de configuración de los módulos, se debe crear el archivo saprfc.ini conteniendo el texto "extension=saprfc.so"Código:/usr/lib64/php5/extensions/saprfc.so
Ahora reiniciamos los servicios de apache.Código:echo "extension=saprfc.so" >> /etc/php5/conf.d/saprfc.ini
Abrrimos el phpinfo, y nos percatamos que, si bien el módulo esta listado para levantarse…Código:service httpd restart
… no llega a cargarse. Ya que buscamos en todo el phpinfo y no encontramos el módulo saprfc cargado.
Vamos a revisar el log de apache en el siguiente archivo:
Encontramos una linea con el mensaje de error:/var/log/apache2/error_log
Está pidiendo la librería libstdc++.so.5, la cual no existe en los repositorios de openSUSE Leap 42.2 por ser una version bastante antigua.PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php5/extensions/saprfc.so' - libstdc++.so.5: cannot open shared object file: No such file or directory in Unknown on line 0
Para solucionar este error, debemos buscar en internet el paquete libstdc++33-3.3.3-41.1.3.x86_64.rpm para la versión más reciente de openSUSE que se encuentre disponible e instalarla usando zypper:
Reiniciamos nuevamente el servidor apache, actualizamos la página del phpinfo y verificamos que el módulo ya se cargó.Código:zypper install /ruta/libstdc++33-3.3.3-41.1.3.x86_64.rpm
Notas adicionales:
- Si quieres ahorrarte la búsqueda de los archivos en la web, a continuación facilito links para descargarlos directamente:
saprfc-1.4.1.tar.gz
https://drive.google.com/open?id=0B_...EdUUUJFWWVYR2clibstdc++33-3.3.3-41.1.3.x86_64.rpm
https://drive.google.com/open?id=0B_...lRlR2dMTUxkaUE- Si quieres ahorrarte aún más tiempo, paso el link del archivo saprfc.so ya compilado para openSUSE Leap 42.2. No estoy seguro si el archivo será válido para otras versiones de openSUSE o para otras distribuciones ya que no le he probado.
Al archivo lo deberás copiar en la ruta /usr/lib64/php5/extensions/saprfc.so
Crear el archivo /etc/php5/conf.d/saprfc.ini conteniendo el texto "extension=saprfc.so"
Instalar el paquete libstdc++33-3.3.3-41.1.3.x86_64.rpm
Y por ultimo, reiniciar apache.
Laptop HP dv5-2133la [AMD Phenom II N640 2.9GHz / 4GB DDR3 RAM / ATI Radeon HD 4250 / 500GB 7200rpm HD]
There are currently 1 users browsing this thread. (0 members and 1 guests)
Marcadores