Муну ким башынан өткөргөн эмес: Сиз арзан жалпы хостинг пакетинен (мисалы, IONOSтон) бир нерсени тез жүктөп алышыңыз керек. git pull Сиз программаны иштеткиңиз же маалымат базасын колдонгуңуз келиши мүмкүн, бирок хостинг провайдериңиз SSH мүмкүнчүлүгүн бербейт – же кымбатыраак пландарда гана. Көп учурда, калган жалгыз вариант – файлдарды FTP аркылуу кол менен жүктөө процесси, бул жайгаштырууну керексиз татаалдаштырат жана каталарга жакын кылат.
Бир мүмкүн болгон чечим - файл системасын төмөнкү аркылуу орнотуу sshfs. Теориялык жактан алганда, бул жакшы угулат: Сиз алыскы папканы жергиликтүү түрдө орнотуп, файлдар өзүңүздүн компьютериңизде болгондой иштейсиз. Бул үчүн сиз жөн гана жергиликтүү каталог түзүп, аны FTP/SSH колдонуучусу аркылуу серверге туташтырасыз. Туташууну орнотуу жана Gitти бул папкага даярдоо үчүн керектүү буйруктар Linux системасында мындайча көрүнөт::
sudo apt-get install sshfs
mkdir /var/www/remote
cd /var/www/remote
sshfs username@your.host:/ -p 22 /var/www/remote
git config --global --add safe.directory /var/www/remote
git status
...
umount /var/www/remote
Көйгөй: Иштин натыйжалуулугу өтө начар. Git сыяктуу буйруктар менен күрөшүп жаткандыктан git status Тармакка кирүү мүмкүнчүлүгүн талап кылган миңдеген кичинекей файл операцияларын аткарганда, көбүнчө эң жөнөкөй жоопторду да бир нече мүнөт күтүүгө туура келет. Мындай шарттарда жемиштүү иштөө дээрлик мүмкүн эмес. Айрыкча, көптөгөн көз карандылыктары бар долбоорлордо терминал көп учурда толугу менен токтоп калат, бул кыжырданган колдонуучуларды процесстен баш тартууга мажбурлайт.
ftpsh сыяктуу китепканалар дал ушул сценарий үчүн бар. Китепкана (S)FTP жана HTTP мүмкүнчүлүгүн гана сунуштаган алыскы серверде кабык буйруктарын аткарууга мүмкүндүк берет. Айла: PHP скрипти убактылуу жүктөлөт, ал берилген буйруктарды аткарып, натыйжаны кайтарат. Мунун баары фондо болот, бирок чыныгы кабыктай сезилет.
Орнотуу тез жана оңой.:
mkdir ftpsh
cd ftpsh
wget -O ftpsh.sh https://raw.githubusercontent.com/vielhuber/ftpsh/main/ftpsh.sh
chmod +x ftpsh.sh
Анан биз жаттык .env (S)FTP кирүү маалыматтары менен:
HOST=your-server.com
PORT=22
USERNAME=your-username
PASSWORD=your-password
REMOTE_PATH="/"
WEB_URL="https://your-server.com"
Эми биз сервердеги каалаган буйруктарды аткара алабыз, эгерде куралдар алыстан жеткиликтүү болсо.:
ftpsh git status
ftpsh "mysqldump -h xxx --port 3306 -u xxx -p\"xxx\" --routines xxx" > dump.sql
Скрипт жумушчуну фондо жүктөйт, буйрукту серверде локалдуу иштетет (бул жерде ал тез) жана натыйжаны кайтарат. Бул жайгаштырууларды, маалымат базасынын таштандыларын же Git операцияларын, атүгүл чектелген хостинг чөйрөлөрүндө да натыйжалуу автоматташтырууга мүмкүндүк берет. Мисалы, ал ошондой эле маалымат базасын синхрондоштуруу үчүн syncdb менен кемчиликсиз иштейт.