Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 启用OCS库存Web服务接口以查询资产数据_Php_Linux_Apache_Perl_Perl Module - Fatal编程技术网

Php 启用OCS库存Web服务接口以查询资产数据

Php 启用OCS库存Web服务接口以查询资产数据,php,linux,apache,perl,perl-module,Php,Linux,Apache,Perl,Perl Module,如何启用中描述的OCS库存界面?是否有在PHP中使用此Web服务的示例代码?OCS界面默认为禁用状态,使用前必须将其打开。OCS有一个用Perl开发的核心代码,它在ApacheHTTP上运行 首先,编辑文件/etc/apache2/conf enabled/z-ocsinventory-server.conf将OCS\u OPT\u WEB\u SERVICE\u enabled的选项值更改为1。 如果未启用web服务,则应获得401禁止响应。这是一个SOAP Web服务,没有WSDL来描述功能

如何启用中描述的OCS库存界面?是否有在PHP中使用此Web服务的示例代码?

OCS界面默认为禁用状态,使用前必须将其打开。OCS有一个用Perl开发的核心代码,它在ApacheHTTP上运行

首先,编辑文件
/etc/apache2/conf enabled/z-ocsinventory-server.conf
OCS\u OPT\u WEB\u SERVICE\u enabled的选项值更改为1。
如果未启用web服务,则应获得401禁止响应。这是一个SOAP Web服务,没有WSDL来描述功能,只有中可用的文档

检查/ocsinterface的位置标记是否类似于以下代码段:

 <Location /ocsinterface>
      SetHandler perl-script
      PerlHandler Apache::Ocsinventory::SOAP
      # By default, you can query web service from everywhere with a valid user
      Order deny,allow
      Allow from all
      AuthType Basic
      AuthName "OCS Inventory SOAP Area"
      # Use htpasswd to create/update soap-user (or another granted user)
      AuthUserFile "/etc/apache2/passwd/soapinterface"
      Require valid-user
 </Location>

SetHandler perl脚本
PerlHandler Apache::Ocsinventory::SOAP
#默认情况下,您可以使用有效用户从任何地方查询web服务
命令拒绝,允许
通融
AuthType Basic
AuthName“OCS库存SOAP区域”
#使用htpasswd创建/更新soap用户(或其他授权用户)
AuthUserFile“/etc/apache2/passwd/soapinterface”
需要有效用户
出于安全目的,您应该为此位置创建密码,但是,要关闭身份验证,只需注释掉所有Auth…Require属性即可

重新启动apache服务器,并使用下面的PHP代码测试web服务集成

<?php
$proto = 'http';
$host = 'localhost';
$port = '80';
$user = ''; //basic authentication, if necessary
$pass = ''; 

$options = array(
    'location' => "$proto://$host:$port/ocsinterface",
    'uri' => "$proto://$host:$port/Apache/Ocsinventory/Interface",
    'login' => $user,
    'password' => $pass,
    'trace' => TRUE,
    'soap_version' => SOAP_1_1,
);

$request = '
        <REQUEST>
            <ENGINE>FIRST</ENGINE>
            <ASKING_FOR>META</ASKING_FOR>
            <CHECKSUM>131071</CHECKSUM>
            <OFFSET>0</OFFSET>
            <WANTED>131071</WANTED>
        </REQUEST>';

try {
    $client = new SoapClient(NULL, $options);
} catch (Exception $e) {
    echo "<b>Construct Error</b>: " . $e->getMessage() . "<br>";
}

try {
    $result = $client->get_computers_V1($request);
    echo "<b>Headers:</b><pre>" . $client->__getLastRequestHeaders() . " </pre><br>";
    echo "<b>Request:</b><pre>" . $client->__getLastRequest() . "</pre><br>";
    echo "<b>Result:</b><pre>";
    var_dump($result);
    echo "</pre><br>";
} catch (Exception $e) {
    echo "<b>Connection Error</b>: " . $e->getMessage() . "<br><br>";
    echo "<b>Headers:</b><pre>\r\n" . $client->__getLastRequestHeaders() . " </pre><br>";
echo "<b>Request:</b><pre>\r\n" . $client->__getLastRequest() . "</pre>";
}