2013-12-16 3 views
1

На сервере с DirectAdmin я размещаю около 80 веб-сайтов. Теперь я хочу обновить CKEditor на каждом веб-сайте. Этот CKEditor находится на каждом веб-сайте в той же папке. Например: public_html/admin/plugin/CKeditorDirect Admin изменяет файлы с несколькими доменами

Есть ли возможность сделать скрипт или что-то загрузить новый CKEditor ко всем доменам, на которых есть карта CKEditor?

ответ

1

Вы можете написать сценарий для загрузки FTP на все ваши сайты. Вам нужно будет создать массив/список объектов, содержащих ваши данные FTP, такие как IP-адрес, имя пользователя и пароль. Затем пройдите по списку объектов и загрузите файлы в правильный каталог.

Вы также можете удалить существующий каталог. Я бы порекомендовал сначала попробовать это на одном сайте, чтобы узнать, работает ли этот процесс. Затем вы можете попробовать сделать два или три за раз, и посмотреть, есть ли какие-либо ошибки. Затем вы можете запустить оставшиеся 70-80.

Например, посмотрите на этот код, взятого с сайта PHP:

<?php 

class SFTPConnection 
{ 
    private $connection; 
    private $sftp; 

    public function __construct($host, $port=22) 
    { 
     $this->connection = @ssh2_connect($host, $port); 
     if (! $this->connection) 
      throw new Exception("Could not connect to $host on port $port."); 
    } 

    public function login($username, $password) 
    { 
     if (! @ssh2_auth_password($this->connection, $username, $password)) 
      throw new Exception("Could not authenticate with username $username " . 
           "and password $password."); 

     $this->sftp = @ssh2_sftp($this->connection); 
     if (! $this->sftp) 
      throw new Exception("Could not initialize SFTP subsystem."); 
    } 

    public function uploadFile($local_file, $remote_file) 
    { 
     $sftp = $this->sftp; 
     $stream = @fopen("ssh2.sftp://$sftp$remote_file", 'w'); 

     if (! $stream) 
      throw new Exception("Could not open file: $remote_file"); 

     $data_to_send = @file_get_contents($local_file); 
     if ($data_to_send === false) 
      throw new Exception("Could not open local file: $local_file."); 

     if (@fwrite($stream, $data_to_send) === false) 
      throw new Exception("Could not send data from file: $local_file."); 

     @fclose($stream); 
    } 
} 

try 
{ 
    $sftp = new SFTPConnection("localhost", 22); 
    $sftp->login("username", "password"); 
    $sftp->uploadFile("/tmp/to_be_sent", "/tmp/to_be_received"); 
} 
catch (Exception $e) 
{ 
    echo $e->getMessage() . "\n"; 
} 

?> 

Ref. http://www.php.net/manual/en/function.ssh2-sftp.php#94651

С этими словами вы можете войти в систему и загрузить файл. Вам просто нужно будет изменить это, чтобы перебрать список сайтов и пропустить весь каталог, который вы хотите загрузить.

Смежные вопросы