如何为ISPConfig创建远程API脚本3

如何为ISPConfig创建远程API脚本3

介绍

本指南将介绍如何创建API脚本以在ISPConfig 3中创建ftp用户的说明。它将为您提供开发ISPConfig 3中可用功能的脚本的知识。

完成品

所以我们来看看我们将要分析的脚本。

打破线路

在创建API脚本时,您首先启动该功能。 该功能是将ftp用户添加到数据库的代码部分。

$domain_id = $client->sites_ftp_user_add($session_id, $client_id, $params_ftp);

从代码上可以看到,site_ftp_user_add是添加ftp用户的功能。 所有的功能都有这样的名字,所以你永远不会想知道它的作用。 为了找出可用的所有功能,您需要查看/usr/local/ispconfig/interface/lib/classes/remoting.inc.php

它将如下所示:

?//* Add a record
	public function sites_ftp_user_add($session_id, $client_id, $params)
    {
		if(!$this->checkPerm($session_id, 'sites_ftp_user_add')) {
			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
			return false;
		}
		return $this->insertQuery('../sites/form/ftp_user.tform.php',$client_id,$params);
	}

好的,所以我们从线上知道说,

public function sites_ftp_user_add($session_id… 

有一个名为sites_ftp_user_add的函数。

我们来看看函数将驻留在我们的新脚本中的整个行。

$domain_id = $client->sites_ftp_user_add($session_id, $client_id, $params_ftp);

让我们断开这一行,所以你知道你需要改变什么来调整这个任何功能。

$domain_id = $client->sites_ftp_user_add($session_id, $client_id, $params_ftp);

$ domain_id是一个变量,您不需要更改,因为在执行该函数时不使用该变量。

$domain_id = $client->sites_ftp_user_add($session_id, $client_id, $params_ftp);

$ client->是一个你不应该改变的变量,所以不要弄乱它。

$domain_id = $client->sites_ftp_user_add($session_id, $client_id, $params_ftp);

如上所述,这是函数,将根据您希望脚本执行的任务而改变。

$domain_id = $client->sites_ftp_user_add($session_id, $client_id, $params_ftp);

此部分可以根据功能而改变。 从/usr/local/ispconfig/interface/lib/classes/remoting.inc.php,您将看到该行

public function sites_ftp_user_add($session_id, $client_id, $params)

这是你将在那里得到什么需要去的功能。

在函数行之上,您将看到函数数组的创建。 这是给出用于创建ftp用户的信息的地方。

$params = array( 'server_id'			=> '1',
							'parent_domain_id'		=> $domain_id,
							'username'			=> $myusername,
							'password'			=> $mypassword,
							'quota_size'			=> '-1',
							'active'			=> 'y',
							'uid'				=> 'web'.$domain_id,
							'gid'				=> 'client'.$client_id,
							'dir'				=> '/var/www/clients/client'.$client_id.'/web'.$domain_id,
							'quota_files'			=> '100',
							'ul_ratio'			=> '-1',
							'dl_ratio'			=> '200',
							'ul_bandwidth'			=> '-1',
							'dl_bandwidth'			=> '100',);

这将永远开始

$variable = array ( 

但是我们不知道我们需要输入什么信息,而不用查看每个功能。

回到/usr/local/ispconfig/interface/lib/classes/remoting.inc.php,您将查找正在使用的功能:

?//* Add a record
	public function sites_ftp_user_add($session_id, $client_id, $params)
    {
		if(!$this->checkPerm($session_id, 'sites_ftp_user_add')) {
			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
			return false;
		}
		return $this->insertQuery('../sites/form/ftp_user.tform.php',$client_id,$params);
	}

这是告诉你什么文件需要数组信息。 现在我们使用find命令:

sudo find / -name ftp_user.tform.php

并打开文件。 应该看起来像:

'password' => array (
			'datatype'	=> 'VARCHAR',
			'formtype'	=> 'PASSWORD',
			'encryption' => 'CRYPT',
			'default'	=> '',
			'value'		=> '',
			'width'		=> '30',
			'maxlength'	=> '255'
		),
		'quota_size' => array (
			'datatype'	=> 'INTEGER',
			'formtype'	=> 'TEXT',
			'validators'	=> array ( 	0 => array (	'type'	=> 'NOTEMPTY',
														'errmsg'=> 'quota_size_error_empty'),
										1 => array (	'type'	=> 'REGEX',
														'regex' => '/^(\-1|[0-9]{1,10})$/',
														'errmsg'=> 'quota_size_error_regex'),

正如你所看到的,我将展示两个将被转化为的例子

'password' => 'yourpassword'

'quota_size' => 'quota size'

使用我们迄今为止所学到的一切,我们可以创建:

$params = array( 'server_id'			=> '1',
							'parent_domain_id'		=> $domain_id,
							'username'			=> $myusername,
							'password'			=> $mypassword,
							'quota_size'			=> '-1',
							'active'			=> 'y',
							'uid'				=> 'web'.$domain_id,
							'gid'				=> 'client'.$client_id,
							'dir'				=> '/var/www/clients/client'.$client_id.'/web'.$domain_id,
							'quota_files'			=> '100',
							'ul_ratio'			=> '-1',
							'dl_ratio'			=> '200',
							'ul_bandwidth'			=> '-1',
							'dl_bandwidth'			=> '100',);
	$domain_id = $client->sites_ftp_user_add($session_id, $client_id, $params);

不要太远了。 我们现在需要做的是让我们的远程用户登录并注销。 确保您已经在ISPConfig控制面板中创建远程用户,方法是转到“ 系统 ”选项卡,然后单击左侧的“ 添加远程用户 ”。

这是登录Soap的脚本的开始。

$username = 'yourusername';
$password = 'yourpassword';
/*
$soap_location = 'http://localhost:8080/ispconfig3/interface/web/remote/index.php';
$soap_uri = 'http://localhost:8080/ispconfig3/interface/web/remote/';
*/
$soap_location = 'http://localhost:8080/remote/index.php';
$soap_uri = 'http://localhost:8080/remote/';

你应该把你的Shell用户放在它的“你的用户名”中,密码在“你的密码”中。 你也应该放在你的肥皂,位置和uri,但更可能你不必改变这一点。

$client = new SoapClient(null, array('location' => $soap_location,
                                    
'uri'      => $soap_uri));
try {
    //* Login to the remote server
    if($session_id = $client->login($username,$password)) {
        echo 'Logged into remote server
sucessfully. The SessionID is '.$session_id.'
';

除非您要更改,否则本部分不需要更改

 echo 'Logged into remote server sucessfully. The SessionID is '.$session_id.'
';

输出不同的消息。

结束脚本与以下注销。 在上一节中没有必要改变。

	//* Logout
	if($client->logout($session_id)) {
		echo "FTP Created";
	}
	
} catch (SoapFault $e) {
	die('SOAP Error: '.$e->getMessage());
	echo "Please contact the server administator";
}
?>;
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏