Hneď na začiatku napíšem, že ja nie som web developer, avšak známa ma požiadala či by som jej vedel vytvoriť určitý projekt. Jednalo sa o objednávkový systém. Na začiatku vysvetlila o čo jej vlastne ide a keďže ja neviem povedať nie, tak som začal uvažovať akým spôsobom to riešiť. Na začiatku som chcel použiť tabuľkový editor (LibreCalc), ale po chvíli trápenia som prešiel na PHP (MariaDB).
Mojej známej tiež spravujem malý server s Proxmoxom a testovací LAMP (LXC) som tam nainštaloval už dávnejšie. To znamená, že prostredie nemusím riešiť a môže sa začať hneď pracovať.
Na vytvorenie projektu som použil bezplatnú AI. Ja ako (nie)programátor nedokážem posúdiť, či je kód aplikácie napísaný správne a z bezpečnostného hľadiska v poriadku, ale navonok všetko funguje správne a podľa požiadaviek ako boli zadané. Aplikácia je uzavretá vnútri LAN siete a nie je závislá od internetu, čiže útoky z vonka môžem vylúčiť.
Cieľom tohto článku nie je moja neznalosť programovania 😀 ale zjednodušenie úpravy súborov priamo na servery.
Neviem ako to riešia vývojári dnes, ale dávnejšie sa na lokálny PC inštalovali balíky ako napr. Xampp, čo je lokálne prostredie pre vývoj webov napísaných v skriptovacom jazyku PHP. Priamo na lokálnom PC sa upravovali súbory (php/html/css) a po refreshi prehliadača videl vývojár zmeny okamžite. Dnes možno už vývojári fungujú v dockeroch, alebo nejak úplne inak.
Moja situácia je nasledovná
Ja pracujem z domu a voči serveru som na WAN strane. Medzi mnou a serverom je VPN (wireguard), takže server a môj PC sú vlastne akoby v jednej LAN. Praca na linuxových serveroch v editorch ako je napr. „VI“, alebo „NANO“ je trochu obtiažna, preto uprednostňujem napr. editor geany. To je desktopový editor pre vývojárov a na serveroch bez GUI nebude fungovať.
Na servery pracujem zo súbormi ako sú napr. index.php, login.php, style.css atď. Na desktope súbory upravujem a následne odosielam na server. Na odosielanie som používal rsync asi týmto spôsobom
rsync -avz -e 'ssh -p 1234' --exclude='readme' --exclude='*.sql' ~/path/to/my/work/directory/* <user>@ip_address_server:~/
Pri každej úprave som spustil rsync. V adresári, kde mam projekt mám aj súbory ako napr. readme, alebo tabuľky sql. Tieto súbory na server nechcem posielať, takže ich vylúčim a posielať sa nebudú. Z historických dôvodov na serveroch nepoužívam SSH port 22 (takže preto v príkaze to -p). Na server som musel byť ešte prihlásený cez ďalší terminál, lebo priamo do koreňového adresára webu som nemohol súbory posielať, kvôli právam vlastníka. Potom som ako root spustil MC a súbory kopiroval priamo do koreňového adresára webu.
To aby som nemusel spúšťať terminál a kopírovať súbory ako root do koreňového adresára webu som mohol zmeniť nastavením vlastníka. Potom by stačilo použiť len rsync.
sudo chown -R <user>:www-data /var/www/html/root-web
Hmm toľko zbytočného textu, Poďme to vyriešiť !!!
Dozvedel som sa, že existuje mala utilitka nazvaná sshfs. Úplne stačilo, keď som ju nainštaloval na desktop a je po probléme
sudo apt update
sudo apt install sshfs
mkdir ~/web_project
sshfs -p 1234 <user>@ip_adresa_servera:/var/www/html/web_project/ ~/web_project
Po inštalácii utilitky sshfs si v home (~/) adresári vytvorím pracovný adresár web_project. Utilitka sshfs spraví bezpečný mount web_project na môj lokálny PC a ja môžem súbory upravovať priamo na desktope. Akékoľvek zmeny sa okamžite prejavia po refreshi prehliadača. Aby sme mohli v koreňovom adresári webu okrem úpravy súborov pridávať nové, alebo mazať existujúce, zmeníme aj vlastníka pre konkrétny adresár (to už som spomínal vyššie).
sudo chown -R <user>:www-data /var/www/html/root-web
Po práci jednoducho odpojím adresár
fusermount -u ~/web_project
Záver
Takáto maličkosť a uľahčí toľko práce. Na malé projekty ako mám je to super vymoženosť.
