Качването и свалянето на файлове от и във Вашия виртуален сървър с ISPConfig панел, може да се извършва през създаден FTP потребител или през SSH достъп.
Когато качвате или сваляте файлове през SSH, връзката със сървъра е криптирана и сигурна. Поради това този начин за достъп и управление на сървъра е препоръчителен.
След като сте добавили домейн в ISPConfig, можете да качвате съдържание в директорията му на сървъра.
Качване на файлове на сървъра
Качването на файлове на сървъра може да се извърши с различни SSH команди като scp
и rsync
. Можете да качите един определен файл, цяла директория с файлове или да синхронизирате съдържание от локална директория с такава на сървъра.
Ако сте с операционна система Windows, можете да използвате командите rsync и scp като инсталирате cygwin с пакети rsync и openssh от официалния сайт – https://www.cygwin.com/. Cygwin е голяма колекция от инструменти, които предоставят функционалност, подобна на дистрибуция на Linux в Windows.
Системният път до директорията
За да качите съдържание на сървъра през SSH, трябва да знаете какъв е пътят до директорията, в която ще качвате файловете. Пътят до основната директория за сайта (Document Root) можете да видите в настройките му в ISPConfig (Sites » клик върху домейна).
Системният път до директорията ще изглежда по подобен начин:
/var/www/clients/client0/web7/
Създаване на допълнителен SSH потребител
За да създадете специален SSH потребител, който ще се използва само за дадения сайт, достъпете Sites в ISPConfig и изберете Shell User » Add new Shell-User.
Тук е важно да изберете домейна, за който ще създавате Вашия SSH потребител – от опция Site (ред 1) и парола.
За опцията Chroot Shell трябва да остане None, за да имате възможност да излезете от Вашия homerdir* и да пишете в директория web (намираща се в DocumentRoot на Вашия сайт).
*homedir – домашна директория на новосъздадения shell потребител, която е различна от DocumentRoot на Вашия сайт.
Например потребителят defaultmyuser е с homedir:
/var/www/mysupersite.com/home/defaultmyuser
а файловете на сайта се намират в:
/var/www/mysupersite.com/web/
Качване на един файл през SSH (scp)
За да качите само един определен файл от Вашия компютър, може да използвате програмата SCP (OpenSSH secure file copy).
Например файлът myfile.txt се намира локално в /home/shsupport/ и искаме да го качим в директория /var/www/clients/client0/web7/web/.
Качване на един файл:
scp -P 1022 /home/shsupport/myfile.txt defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/
След стартиране на командата е нужно да въведете паролата за SSH потребителя си.
Командата се състои основно от следните части:
-P 1022
– чрез опцията -P се задава SSH порт за връзка с отдалечената машина./home/shsupport/myfile.file
– source (източник); системният път на файла във Вашето устройство.defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/
– destination (дестинация), съдържа – SSH-потребител@IP-адрес-на-сървъра и системният път на директорията на сървъра.
defaultmyuser – заменете с името на създадения SSH потребител
server-IP-address – заменете с IP адреса на сървъра
Качване на директория с файлове през SSH (rsync)
Качване на директория с файлове от локалния компютър на VPS може да се извърши с програмата rsync
. За целта трябва да я имате инсталирана на Вашия компютър.
В нашия пример файловете, които искаме да качим, се намират в директория site на нашия компютър и използваме потребител: shsupport с homedir: /home/shsupport.
Влизаме в директория /home/shsupport, където се намира директория site с нашите файлове.
Качване на директория с файлове:
rsync -av --progress -e 'ssh -p 1022' /home/shsupport/site/ defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/
След стартиране на командата е нужно да въведете паролата за SSH потребителя си.
Командата се състои основно от следните части:
- Source:
/home/shsupport/site/
– това е абсолютният път, от където rsync ще вземе файловете и ще ги качи в Destination. - Destination:
/var/www/clients/client0/web7/web/
– директория, намираща се на сървъра.
Останалите опции в командата, които се използват при необходимост:
-а
– използва се за архиви;-v
– от verbose, за да получавате информация по време на прехвърлянето на файловете;--progress
– за да може да наблюдавате прогреса в проценти на всеки файл, който качвате;-е
– директива, чрез която може да оказвате различни SSH опции. В нашия пример задаваме индивидуален SSH port – 1022, но е възможно да окажете път до SSH ключ, индивидуален SSH потребител или други.
defaultmyuser – заменете с името на създадения SSH потребител
server-IP-address – заменете с IP адреса на сървъра
Всички възможни опции на rsync може да разгледате чрез командата:
man rsync
Синхронизация на вече качено съдържание през SSH (rsync)
Rsync се използва и при нужда от синхронизация на вече качено съдържание в директория на сървъра.
Например вече имате съществуващ сайт, качен на сървъра в директория /var/www/clients/client0/web7/web/, но сте направили промени по локалното копие на сайта, намиращо се на Вашия компютър. За да уеднаквите информацията от локалната директория site и сървърната директория /var/www/clients/client0/web7/web/, може да използвате rsync.
Синхронизиране на локална и сървърна директория:
rsync -av –progress --delete -e 'ssh -p 1022' /home/shsupport/site/ defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/
defaultmyuser – заменете с името на създадения SSH потребител
server-IP-address – заменете с IP адреса на сървъра
След стартиране на командата е нужно да въведете паролата за SSH потребителя си.
При използване на опция --delete
ще се изтрие всичко в дестинацията, което липсва в източника (от примера директория site).
Сваляне на файлове от сървъра
Свалянето на файлове от VPS се извършва подобно на качването. В командите scp
и rsync
единствено трябва да смените местата на източник (source) с дестинация (destination).
Сваляне на определен файл от сървъра със scp:
scp -P 1022 defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/myfile.txt /home/shsupport/site/
defaultmyuser – заменете с името на създадения SSH потребител
server-IP-address – заменете с IP адреса на сървъра
Сваляне на всички файлове от сървърна в локална директория с rsync:
rsync -av --progress -e 'ssh -p 1022' defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/ /home/shsupport/site/
Синхронизация на съдържание от сървърна директория в локална директория:
rsync -av --progress –delete -e 'ssh -p 1022' defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/ /home/shsupport/site/
При използване на опция --delete
към rsync ще се изтрие всичко в дестинацията, което липсва в източника (от примера директория site).
След командата е нужно да се въведе паролата за SSH потребителя.
Местата на източник и дестинация са:
- Източник:
defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web
/ - Дестинация:
/home/shsupport/site/
Съдържанието се взима от директория /var/www/clients/client0/web7/web/, намираща се на сървъра, и се прехвърля в локалната директория /home/shsupport/site/
Например, ако изпълните:
rsync -av --progress -e 'ssh -p 1022' /home/shsupport/site defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/
В този пример директорията-източник е без „/
“ накрая: /home/shsupport/site
В такъв случай на сървъра ще се създаде директорията site, в която ще се качи съдържанието, вместо в директория web. Когато няма наклонена черта след името на директорията, и такава директория не съществува, тя се създава. Ако директорията съществува, съдържанието ѝ ще бъде уеднаквено с това от източника.
За по-напреднали: Можете да използвате rsync и scp с потребителя root, но това ще промени ownership на качените файлове и директории, и ще бъде нужно да се коригират ръчно след качването.