SSH Kütüphanesi
"Konsoldan 'php zerocore create-grand-vision' gibi basit bir komutla tüm veritabanı ve tablolarının model dosyasını oluşturabilirsiniz."
SSH (Secure Shell) güvenli veri iletimi için kriptografik ağ protokolüdür. Ssh ile ağa bağlı olan iki bilgisayar arasında veri aktarımı güvenlik kanalı üzerinden güvensiz bir ağda yapılır. Bu durumda ağda Ssh ile haberleşen makinelerden biri ssh sunucusu diğeri ssh istemcisi olur. Bu protokol şartları SSH-1 ve SSH-2 olmak üzere iki önemli sürüm üzerinden birbirinden ayrılır.
Ssh kabuk hesabına erişim için Unix ve benzeri işletim sistemlerinde protokolün en iyi uygulaması olarak bilinir, ama aynı zamanda Windows üzerindeki hesaplara erişim için de kullanılabilir. Ssh Telnet ve diğer uzaktan kabuğa erişim yapan güvensiz protokollerin (Berkeley rsh ve rexec protokolü gibi) yerine güvenli veri iletimini sağlaması için tasarlanmıştır.
ZN Framework'te de SSH'ın nasıl kullanılacağına dair anlatıma yer vermeye çalışacağız.
# Kurulum
ZN dağıtımları için kurulum gerekmez.
↓ composer require znframework/package-remote
# Yapılandırma
Aşağıda ssh bağlantı ayarlarını yapılandırmak için kullanılan dizi gösterilmiştir.
SSH | |
string $host = '' | Host adı. |
string $user = '' | Kullanıcı adı. |
string $password = '' | Kullanıcı şifresi. |
int $port = 22 | Bağlantı portu. |
array $methods = [] | Metotlar. |
array $callbacks = [] | Geri çağrım işlevleri. |
# Yöntemler
SSH::command(string $command) : this |
SSH::run(string $command = NULL) : resource |
SSH::output(int $length = 4096) : string |
SSH::upload(string $localPath, string $remotePath) : bool |
SSH::download(string $remotePath, string $localPath) : bool |
SSH::createFolder(string $path, int $mode = 0777, bool $recursive = true) : bool |
SSH::deleteFolder(string $path) : bool |
SSH::deleteFile(string $path) : bool |
SSH::rename(string $oldName, string $newName) : bool |
SSH::permission(string $path, int $type = 0775) : bool |
SSH::new(array $config) : this |
# Command (ZN >= 3.0.6)
Komut satırı çalıştırmak için kullanılır. Tek satır veya command() yönteminin birden fazla kullanımı ile çoklu komut gönderimi sağlayabilirsiniz.
string $command | Çalıştırılacak komut. |
return this |
Kullanımı
SSH::command('/usr/local/bin/php -i') ->command('/usr/bin/ls public_html/images') ->run();
# Run (ZN >= 3.0.6)
Gönderilen komutları çalıştırmak için kullanılır. Nihai yöntem olarak kullanılır.
string $command = NULL | command() işlevinin alternatifidir. Kullanımı zorunlu değildir. |
return resource |
Kullanımı
SSH::command('/usr/local/bin/php -i') ->command('/usr/bin/ls public_html/images') ->run();
# Output (ZN >= 3.0.6)
İşlemlerin bitiminde sonucu ekrana bastırmak için kullanılır.
int $length = 4096 | Çıktının byte cinsinden uzunluğu yada kaç karakter uzunlukta olacağı. |
return string |
Kullanımı
SSH::output();
# Upload (ZN >= 3.0.6)
Sunucuya dosya yüklemek için kullanılır.
string $localPath | Yüklenecek dosya. |
string $remotePath | Sunucuda nereye yüklenecek. |
return bool |
Kullanımı
SSH::upload('local/example.txt', 'remote/example.txt');
# Download (ZN >= 3.0.6)
Sunucudan dosya indirmek için kullanılır.
string $remotePath | Sunucuda nereye yüklenecek. |
string $localPath | Yüklenecek dosya. |
return bool |
Kullanımı
SSH::upload('remote/example.txt', 'local/example.txt');
# CreateFolder (ZN >= 3.0.6)
Sunucuda dizin oluşturmak için kullanılır.
string $path | Oluşturulacak dizin. |
int $mode = 0777 | Dosya oluşturma izni. |
bool $recursive = true | İç içe dizin oluşturulabilme. |
return bool |
Kullanımı
SSH::createFolder('remote/example');
# DeleteFolder (ZN >= 3.0.6)
Sunucudan dizin silmek için kullanılır.
string $path | Oluşturulacak dizin. |
return bool |
Kullanımı
SSH::deleteFolder('remote/example');
# DeleteFile (ZN >= 3.0.6)
Sunucudan dosya silmek için kullanılır.
string $path | Silinecek dosya. |
return bool |
Kullanımı
SSH::deleteFile('remote/example.txt');
# Rename (ZN >= 3.0.6)
Sunucuda yer alan dosya veya dizin adını değiştirmek için kullanılır.
string $oldName | Dosyanın eski adı. |
string $newName | Dosyanın yeni adı. |
return bool |
Kullanımı
SSH::rename('remote/example.txt', 'remote/new-example.txt');
# Permission (ZN >= 3.0.6)
Dosyanın yetki modunu değiştirmek için kullanılır.
string $path | Dosya adı. |
int $type = 0775 | Dosya modu. |
return bool |
Kullanımı
SSH::permission('remote/example.txt', 0644);
# New (ZN >= 5.8.6.3)
Sunucuya yapılandırma dosyası bağlantı ayarları dışında yeni bir bağlantı sağlamak için kullanılır.
array $config | Bağlantı ayarları. |
return this |
Kullanımı
$config = [ 'host' => 'localhost', 'user' => 'test', 'password' => '1234' ]; $dssh = SSH::new($config); $dssh->command('usr/local/bin/php -i')->run();