Kush nuk e ka përjetuar këtë: Duhet të shkarkosh shpejt diçka në një paketë të lirë të përbashkët hosting (p.sh., nga IONOS). git pull Mund të dëshironi të ekzekutoni një program ose të përdorni një bazë të dhënash, por ofruesi juaj i hostimit nuk jep akses SSH - ose vetëm në planet më të shtrenjta. Shpesh, e vetmja mundësi që mbetet është procesi i lodhshëm i ngarkimit manual të skedarëve nëpërmjet FTP, gjë që i bën shpërndarjet të komplikuara pa nevojë dhe të prirura ndaj gabimeve.
Një zgjidhje e mundshme është montimi i sistemit të skedarëve nëpërmjet sshfs. Në teori, kjo tingëllon mirë: Ju e montoni dosjen e largët lokalisht dhe punoni sikur skedarët të ishin në makinën tuaj. Për ta bërë këtë, thjesht krijoni një drejtori lokale dhe e lidhni atë me serverin nëpërmjet përdoruesit FTP/SSH. Komandat e nevojshme për të vendosur lidhjen dhe për të përgatitur Git për këtë dosje duken kështu në 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
Problemi: Performanca është e mjerueshme. Meqenëse Git ka vështirësi me komanda si git status Kur kryhen mijëra operacione të vogla me skedarë, secila prej të cilave kërkon akses në rrjet, shpesh pritet me minuta edhe për përgjigjet më të thjeshta. Puna produktive është praktikisht e pamundur në këto rrethana. Sidomos në projekte me varësi të shumta, terminali shpesh ngrin plotësisht, duke i detyruar përdoruesit e frustruar ta braktisin procesin.
Biblioteka si ftpsh ekzistojnë pikërisht për këtë skenar. Kjo bibliotekë ju lejon të ekzekutoni komandat e shell në një server të largët që ofron vetëm akses (S)FTP dhe HTTP. Truku është se ngarkohet përkohësisht një skript PHP, i cili ekzekuton komandat e dhëna dhe kthen rezultatin. E gjithë kjo ndodh në sfond, por ndihet si një shell i vërtetë.
Instalimi është i shpejtë dhe i lehtë.:
mkdir ftpsh
cd ftpsh
wget -O ftpsh.sh https://raw.githubusercontent.com/vielhuber/ftpsh/main/ftpsh.sh
chmod +x ftpsh.sh
Më pas, krijojmë një skedar .env me të dhënat e aksesit (S)FTP.:
HOST=your-server.com
PORT=22
USERNAME=your-username
PASSWORD=your-password
REMOTE_PATH="/"
WEB_URL="https://your-server.com"
Tani mund të ekzekutojmë çdo komandë në server, me kusht që mjetet të jenë të disponueshme nga distanca.:
ftpsh git status
ftpsh "mysqldump -h xxx --port 3306 -u xxx -p\"xxx\" --routines xxx" > dump.sql
Skripti ngarkon një worker në sfond, ekzekuton komandën lokalisht në server (ku është i shpejtë) dhe kthen rezultatin. Kjo lejon automatizim efikas të vendosjeve, dump-eve të bazës së të dhënave ose operacioneve Git, madje edhe në mjedise të kufizuara pritëse. Ai gjithashtu integrohet pa probleme me syncdb për sinkronizimin e bazës së të dhënave.