Sample code for 30+ languages & platforms
PHP ActiveX

Setting Environment Variables for SCP Transfers

See more SCP Examples

Demonstrates how to set remote environment variables for an SCP transfer.

Note 1: This example requires Chilkat v9.5.0.79 or greater.

Note 2: Setting environment variables for SCP is only supported by some SSH servers.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$ssh = new COM("Chilkat.Ssh");

// First connect to an SSH server.
$success = $ssh->Connect('example.com',22);
if ($success != 1) {
    print $ssh->LastErrorText . "\n";
    exit;
}

// Wait a max of 5 seconds when reading responses..
$ssh->IdleTimeoutMs = 5000;

// Authenticate..
$success = $ssh->AuthenticatePw('myLogin','myPassword');
if ($success != 1) {
    print $ssh->LastErrorText . "\n";
    exit;
}

// After the SSH object is connected and authenticated, we use it
// as the underlying transport in our SCP object.
$scp = new COM("Chilkat.Scp");

$success = $scp->UseSsh($ssh);
if ($success != 1) {
    print $scp->LastErrorText . "\n";
    exit;
}

// Specify the environment variables to be set in JSON as follows.
// This example sets two environment variables.  One is named "LCS_PASSWORD" and the other "MY_TEST_NAME".
$jsonEnvVars = new COM("Chilkat.JsonObject");
$jsonEnvVars->EmitCompact = 0;
$jsonEnvVars->UpdateString('LCS_PASSWORD','secret');
$jsonEnvVars->UpdateString('MY_TEST_NAME','abc');
$strEnvVars = $jsonEnvVars->emit();

print $strEnvVars . "\n";

// Setting the SendEnv property causes Chilkat to set each environment variable on the SSH server
// prior to doing the upload or download.
$scp->SendEnv = $strEnvVars;

// Do the upload..
$remotePath = 'starfish.jpg';
$localPath = 'qa_data/jpg/starfish.jpg';
$success = $scp->UploadFile($localPath,$remotePath);
if ($success != 1) {
    print $scp->LastErrorText . "\n";
    exit;
}

print 'SCP upload file success.' . "\n";

// Disconnect
$ssh->Disconnect();

?>