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.
Ka biblioteka si ftpsh pikërisht për këtë skenar. Biblioteka bën të mundur ekzekutimin e komandave të guaskës në një server të largët që ofron vetëm akses (S)FTP dhe HTTP. Truku: ngarkohet përkohësisht një skript PHP, i cili ekzekuton komandat e dhëna dhe kthen daljen. E gjithë kjo ndodh në sfond, por ndihet si një guaskë e 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
Pastaj vendosim një .env me të dhënat e aksesit (S)FTP për të:
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ë punëtor në sfond, ekzekuton komandën në nivel lokal në server (ku është i shpejtë) dhe kthen rezultatin. Kjo lejon që vendosjet, deponimet e bazës së të dhënave ose operacionet Git të automatizohen në mënyrë efikase, madje edhe në mjedise të kufizuara pritëse. Për shembull, funksionon në mënyrë të përkryer edhe me syncdb për sinkronizimin e bazave të të dhënave.