SAP

SAP e PHP com Linux

Escrito por Douglas Baiocco. Publicado em SAP.

Após exaustivos testes, finalmente consegui fazer com que o acesso SAP pelo PHP funcionasse em Linux. No tutorial anterior, minha solução baseava-se em um servidor com Windows rodando o ZENDSERVER. Não achei muito elegante. Vamos então compilar um Módulo para o PHP e adicioná-lo na configuração, o que irá resultar em um PHP com acesso as RFCs do SAP.

 

Nesse nosso exemplo, irei utilizar um Debian Wheezy 7.7 com PHP 5.4.39. Precisamos ainda do RFCSDK e do SAPRFC 1.4.1. Estou disponibilizando os dois neste artigo pois sei o quanto é difícil encontrá-los pelas "internets" (principalmente no site da SAP. Quem já usou sabe).

 

Segue os links dos arquivos:

 

RFCSDK

 

SAPRFC_1.4.1

 

Note que as versões dos softwares testadas devem ser observadas atentamente, visto que ao menor sinal de coisas diferentes, tudo pára de funcionar.

 

O servidor testado é uma instalação crua do Debian Wheezy 7.7 (foi utilizado o CD netinst e adicionado apenas os componentes básicos e o SSH). Como não é o intuito deste tutorial, não irei descrever o processo de instalação do Debian. Caso não conheça o este processo, acesse o link.

 

Após o servidor instalado, precisamos resolver algumas dependências. Use os comandos abaixo no terminal (aconselho utilizar algum cliente para acesso SSH, como o putty). Digite os comandos como usuário root:

 

#apt-get install php5 apache2 php5-dev libstdc++5 make

 

Com as dependências resolvidas, copie os dois arquivos baixados deste tutorial para a pasta /opt do seu servidor (utilize alguma ferramenta tipo Winscp).

Novamente no terminal, use os comando abaixo para descompactar e copiar o RFCSDK para a pasta correta dentro do Linux:

 

#tar -xvf rfcsdk.tgz

 

Crie a pasta /usr/sap:

 

#mkdir /usr/sap

 

Mova o conteúdo que está em /opt para a pasta criada anteriormente:

 

#mv rfcsdk /usr/sap/rfcsdk/

 

Agora vamos a instalação do SAPRFC. Use o comando abaixo para descompactar a pasta com os arquivos:

 

#tar -zxvf saprfc-1.4.1.tar.gz

 

Entre na pasta:

 

#cd saprfc-1.4.1/

 

Uma pequena alteração é necessária para que o processo funcione perfeitamente. Entre no arquivo saprfc.c e altere a linha que está escrito "function_entry" para  "zend_function_entry".

 

Você pode usar o nano:

 

#nano saprfc.c

 

Veja na figura abaixo como deve ficar o arquivo:

image001

 

Instalando:

 

#phpize

#./configure

#make

#make install

 

Após estes passos, o modulo está criado, precisamos apenas configurar o PHP para entender esse novo módulo. Use os comandos abaixo:

 

#cd /etc/php5/mods-available

#echo "extension=saprfc.so" > saprfc.ini

#ln -s /etc/php5/mods-available/saprfc.ini /etc/php5/conf.d/25-saprfc.ini

 

Restarte o apache com o seguinte comando:

 

#service apache2 restart

 

Crie um arquivo em /var/www (pasta padrão para as páginas do Apache). Utilize o comando abaixo:

 

#touch /var/www/teste.php

 

Adicione o comando do php para exibir as informações do servidor (phpinfo()). Use o comando abaixo:

 

#echo "<? phpinfo() ?>" >> /var/www.teste.php

 

Agora use um browser qualquer e acesse o endereço do servidor, colocando no final o nome da página criada (teste.php):

 

image002

 

Localize, na página que aparecer, a listagem do módulo SAPRFC carregado:

 

image003

 

Parabéns! Agora você pode brincar com o SAP e o PHP!

Relacionados