LINUX php 开发Web Service

来源:互联网 发布:淘宝网怎么修改密码 编辑:程序博客网 时间:2024/04/30 14:17

LINUX php 安装soap模块

如果是yum 安装的php 要安装soap模块 直接yum install php-soap即可 然后重启服务 

from :

http://liveforlinux.blog.51cto.com/3337218/620737

SOAP是基于XML和HTTP通信协议,xml各种平台,各种语言都支持的一个种语言。http呢它得到了所有的因特网浏览器及服务器的支持。

WSDL 指网络服务描述语言 (Web Services Description Language),是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作。

我是做php的,你是java的,他是做.net,如果我们三个之间要进行通信,要进行数据交换,怎么办呢?我们需要一个能和我们都能通信的工具。soap,wsdl被创造出来,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。

 

  1. 首先安装完php后最好保留当时安装的文件,比如我的路径/usr/local/php-5.3.5/ 
  2.  
  3.   cd php-5.3.5/ext/soap 
  4.  
  5.   /usr/local/php/bin/phpize 
  6.  
  7.   ./configure --with-php-config=/usr/local/php/bin/php-config --enable-soap 
  8.  
  9.   make 
  10.  
  11.   make install 
  12.  
  13.   编译后的soap.so文件保存在了目录下 
  14.  
  15.   修改php.ini文件 vi /usr/local/php/lib/php.ini 
  16.  
  17.   手工修改:查找/usr/local/php/lib/php.ini中的extension_dir = "./" 
  18.  
  19.   修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" 
  20.  
  21.   并在此行后增加如下,然后保存: 
  22.  
  23.   extension = "soap.so" 
  24.  
  25.   重新启动/etc/init.d/php-fpm reload,ok  
  26.     root@russia-dress soap]# php -m 
  27. [PHP Modules] 
  28. Core 
  29. ctype 
  30. curl 
  31. date 
  32. dom 
  33. eAccelerator 
  34. ereg 
  35. fileinfo 
  36. filter 
  37. gd 
  38. hash 
  39. iconv 
  40. json 
  41. libxml 
  42. mbstring 
  43. mcrypt 
  44. mhash 
  45. mysql 
  46. openssl 
  47. pcre 
  48. PDO 
  49. pdo_sqlite 
  50. Phar 
  51. posix 
  52. Reflection 
  53. session 
  54. SimpleXML 
  55. soap 
  56. sockets 
  57. SPL 
  58. SQLite 
  59. sqlite3 
  60. standard 
  61. tokenizer 
  62. xml 
  63. xmlreader 
  64. xmlwriter 
  65. zip 
  66. zlib 
  67.  
  68. [Zend Modules] 
  69. eAccelerator 
  70.  
  71. 我们就已经能看到扩展的soap模块了。 
  72.  
  73. 如果是yum 安装的php 要安装soap模块 直接yum install php-soap即可 然后重启服务  
  74. 我的LINUX系统是YUM安装
  75. --有些系统是php_soap.so
  76. 我的系统(centos)路径是./usr/lib64/php/modules/soap.so,路径要注意
  77. 在etc/php.ini
  78. 添加:
  79. extension = php_soap.soextension_dir = "/usr/lib64/php/modules/"
  80. php -m 之后可以看到SOAP 证明已经配置好了
  81. web service开发:
  82. 以下来自:http://www.2cto.com/kf/201202/118601.html
  83. clientsoap.php:
  84. <?php
    try {
        $client = new SoapClient(null,
            array('location' =>"http://105.14.19.7/test/serversoap.php",'uri' => "http://127.0.0.1/")
        );
        echo $client->minus_func(100,99);

    } catch (SoapFault $fault){
        echo "Error: ",$fault->faultcode,", string: ",$fault->faultstring;
    }
    ?>

  85. serversoap.php:

  86.  

    <?php
    $soap = new SoapServer(null,array('uri'=>"http://114.27.19.7/"));//This uri is your SERVER ip.
    $soap->addFunction('minus_func');                                                 //Register the function
    $soap->addFunction(SOAP_FUNCTIONS_ALL);
    $soap->handle();
    /*
    $soap->addFunction('add');                                                 //Register the function
    $soap->addFunction(SOAP_FUNCTIONS_ALL);
    $soap->handle();
    */
    function minus_func($i, $j){
        $res = $i - $j;
        return $res;
    }
    /*
    function add($i, $j){
        $res = $i + $j;
        return $res;
    }*/
    ?>
    测试结果:1
  87. 这是客户端调用服务器端函数的例子,我们再搞个class的。
    clientsoap.php:
  88. <?php
    //client端clientSoap.php
    try
    {
     $client = new SoapClient(null,
      array('location' =>"http://114.28.19.7/test/serversoap.php",'uri' => "http://127.0.0.1/")
        );
        echo $client->getName();
     
    }
    catch (SoapFault $fault)
    {
     echo "Error: ",$fault->faultcode,", string: ",$fault->faultstring;
    }

    ?>

    serversoap.php:
  89. <?php
    //www.2cto.com server端serverSoap.php
    $classExample = array();
     
    $soap = new SoapServer(null,array('uri'=>"http://114.28.19.7/",'classExample'=>$classExample));
    $soap->setClass('chesterClass');
    $soap->handle();
     
    class chesterClass
    {
        public $name = 'Chester';
     
        function getName()
        {
      return $this->name;
        }
    }
    ?>
  90. 测试结果:Chester

    DOMDocument封装XML遇到的问题:

    Fatal error: Class 'DomDocument' not found in

    yum install php-xml

    service httpd restart


    MAC OS 不需要安装 SOAP,只要配置好PHP+APACHE


0 0
原创粉丝点击