CZF4BFU/Implementace na webserveru

Z CZFree Wiki
Verze z 30. 10. 2013, 16:44, kterou vytvořil JKLIR (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

Našel jsem tyto www frontend aplikace ke stažení:

  1. Majkluv php/perl/mysql www frontend: http://www.czela.net/czf4bfu/czf4bfu.tar.gz
  2. Quoinguv PHP web-frontend http://czf.gorila.cz/czf4bfu-web-fe.tar.gz
  3. Unreal][ův php/shell www frontend: http://www.jklir.net/jklir_soubory2/odkazy/tar.gz.php?get=czf4bfu
  4. Pihhanův web/perl www frontend: http://www.pihhan.info/czfree/czf4bfu/


Instalace Majklova CZF4BFU na linux server

Link na jeho archiv, který najdete zde: http://www.czela.net/czf4bfu/czf4bfu.tar.gz.


Potřebujeme web server nejlépe Apache, dále MySQL a Perl. Začneme tím, že buď přes konzoli nebo Webmina vytvoříme uživatele czf4bfu s heslem czf4bfu a nastavíme mu všechna práva. Dále je pak potřeba vytvořit databázi czf4bfu a v ní tabulku czf4bfu. Nejlepší je u tabulky zapsat přístup pouze z localhostu, aby se do ní nikdo nedostal z venku.


Rozbalíme si archiv do adresáře, kde máme web. V kořenu adresáře máme soubor .config. Podíváme se do něj, jestli všechny parametry, které jsme zadávali při vytváření účtu, databáze a tabulky jsou totožné. To samé uděláme se souborem ./includes/config.inc.php. Pokud všechno sedí, tak se pustíme do vytvoření prvotních základů 2 tabulek v databázi czf4bfu. Abychom nemuseli zpaměti znát parametry a velikosti jednotlivých sloupečku, tak spustíme skriptík ./czf4bfu.sql, který se o vše postará.


Dále je potřeba ješte nakonfigurovat skript get.pl.

  1. navolte cestu k adresáři, kam se mají ukládat deu soubory ( $path )
  2. zadejte IP adresu vašeho serveru popř. DNS záznam ( $myIP )
  3. některým se bude hodit i nastavení timeoutu pro ping v sekundách ( $timeout )


Jestliže máme hotovo, tak se pokusíme spustit skriptík ./get.pl. Když nenapíše chybu, tak máme vyhráno. Pokud napíše chybu, tak si stáhněte do Perl knihovny LWP::UserAgent.pm a HTTP::Request.pm. Moc do hloubky jsem nezjišťoval co přesně chybí, mam za to, že jenom tyhle. Přesto jsem si stáhnul celé balíčky LWP a HTTP. Nainstalujte si balík libwww-perl-5.805, ten by se měl postarat o správný chod Perlu. Nejlepší řešení je, že budeme skript get.pl spouštět v Cronu 1x denně v hodinu, kterou sami uznáte za vhodnou.


Vytvoříme si svuj vlastní seznam služeb podle vzoru: CZF4BFU . Seznam veřejných služeb uložte do czf4bfu adresáře pod názvem global-$myIP.txt. Seznam služeb, které se budou zobrazovat pouze na vašem rozcestníku a tím pádem se nebudou dále propagovat po síti, nazvěte local-$myIP.txt. Snažte se v TYPu dodržovat normy, které jsou dány tady CZF4BFU#TYP .


Deu Soubory se stahují z adresy http://$myIP/czf4bfu/global-$myIP.txt ( $myIP je adresa, kterou jsme zadávali do skriptu get.pl ). Pokud vám takto adresa nefunfuje, tak je nutné přesměrovat obsah adresáře do správného adresáře. Poslouží nám symlink (v Linuxu příkaz LN ) nebo přímo v Apache nastavit Alias podle vzoru, který je v httpd.conf k mání. Oba způsoby zajistí správnou adresu, ať už se jedná o IP adresu nebo DNS záznam rozcestníku.


Spustíme skript get.pl který nám narve data do databáze. Naklikáme si web adresu vašeho rozcestníku a pokud je všechno vpořádku, tak by se měl zobrazit seznam služeb natahaných přímo nebo prostřednictvím sousedů, kteří jsou v uvedeni v souboru servers.list. Tento seznam se udržuje dohodou přes fórum http://www.czfree.net/forum/showthread.php?s=&threadid=13343. Když vám jede CZF4BFU, tak na fórum napište, že máte CZF4BFU server s prosbou přihození do sousedských servers.list.


Instalace Quoingova CZF4BFU na linux server

Stáhnem si rozcestník z adresy http://czf.gorila.cz/czf4bfu-web-fe.tar.gz a rozbalíme jej. Použijeme složku fe která se nalézá v adresáři ./czf4bfu. Instalace je jednoduchá. Nastavím jenom proměnnou $local_dir v souboru index.php kam zapíšeme absolutní adresu umístění globalů. To je všechno.


Nevýhodou této implementace je ta, že nemá žádný synchronizační skriptík, který by nám aktualizoval seznam globalů. Dá se to vyřešit tak, že si vyjmeme skriptík czf4bfu.sh z Unreal][ova rozcestníku, jinak globaly budem muset stahovat ručně. Quoingův rozcestník neumí zpracovat local soubory ale zkušení PHPčkaři si s tim určitě poradí.


Je potřeba vytvořit také svůj cloudový global, který vyplníte podle vzoru na CZF4BFU . Když vám jede CZF4BFU, tak na fórum http://www.czfree.net/forum/showthread.php?s=&threadid=13343 napište, že máte nový rozcestník s prosbou přihození do sousedských servers.list. Připište IP adresu rozcestníku. Pamatujte, že musí být dostupná adresa http://$myIP/czf4bfu/global-$myIP.txt ( $myIP je adresa rozcestníku; bud IP nebo DNS ).


I přes tyto nedostatky jsem narazil rozcestník v Řepích, kde se používá.


Instalace Unreal][ova CZF4BFU na linux server

Stáhnem si rozcestník z adresy http://www.jklir.net/jklir_soubory2/odkazy/tar.gz.php?get=czf4bfu a rozbalíme jej do adresáře s webem na routeru.


Jediné co musíme nastavit tak jsou položky v skriptu czf4bfu.sh. Nastavíme proměnné MYIP na vaší IP adresu rozcestníku (sami uvažte jestli IP adresa nebo DNS záznam) a DATADIR, kde uvedete absolutní adresu rozcestníku na vašem disku. Skriptík je napsán v shellu, takže by neměly nastat žádné problémy s jeho spouštěním na linuxu. Skript czf4bfu.sh spouštíme v Cronu 1x denně v hodinu, kterou sami uznáte za vhodnou.


Deu Soubory se stahují z adresy http://$myIP/czf4bfu/global-$myIP.txt ( $myIP je adresa, kterou jsme zadávali do skriptu czf4bfu.sh ). Pokud vám takto adresa nefunfuje, tak je nutné přesměrovat obsah adresáře do správného adresáře. Poslouží nám symlink (v Linuxu příkaz LN ) nebo přímo v Apache nastavit Alias podle vzoru, který je v httpd.conf k mání. Oba způsoby zajistí správnou adresu, ať už se jedná o IP adresu nebo DNS záznam rozcestníku.


Zkusíme spustit skript czf4bfu.sh a pokud začne stahovat globaly, tak máme vyhráno. Pokud nám skript skončil svojí práci a úspěšně stáhnul všechny globaly, tak vytvoříme svůj vlastní global. Musí mít název global-MYIP.txt. Dodržujte při jeho vyplńování normy, které jsou dány na CZF4BFU#TYP . Když vám jede CZF4BFU, tak na fórum http://www.czfree.net/forum/showthread.php?s=&threadid=13343 napište, že máte nový rozcestník s prosbou přihození do sousedských servers.list. Připište IP adresu rozcestníku MYIP.


Toť vše. Techničtější informace o Unreal][ově rozcestníku najdete na http://www.jklir.net/?p=czf4bfu



Instalace Pihhanova CZF4BFU na linux server

Rozcestník má poměrně složitý stahovací skript a zase poměrně jednoduché zobrazení výsledků na webu. Ke stažení je na www.pihhan.info/czfree/czf4bfu. Je třeba si to rozbalit někam do adresáře.

Požadavky: statický webserver, perl, wget, unixový systém (testováno jen na Linuxu)

backend

Backendem rozumím způsob distribuce souborů a jejich získávání od okolních sousedů.

Je třeba vytvořit adresář /etc/czf4bfu a dát do něj minimálně soubory czf4bfu.conf a servers.list. V czf4bfu je potreba nastavit predevsim DSTDIR, ktery bude odkazovat na adresář, ve kterém budou uskladněny soubory. Cesta je to systémová, tj. ne alias z webu. Další užitečná záležitost je položka IGNORE. Sem se píše mezerami oddělený seznam IP nebo hostů, které si nepřejete stahovat. Já sem píšu především svoji IP, aby mě chybně nastavené verze nechodily zpátky a nepřepisovaly vlastní soubor. Rozdíl mezi neuvedením v servers.list a přidáním do ignore je ten, že v ignore se budou vynechávat i soubory nalezené na serverech, které nejsou primární zdroje tohoto souboru. Tedy mají jej jenom stažený.

Teď už je jenom nutné přidat spouštění aktualizačního souboru. Aktualizace se doporučuje provádět skriptem update.sh s parametrem -g. Tato stáhne nejprve nové soubory a poté vygeneruje výstup frontendu. Ve skriptu update.sh si musíte pozměnit cesty ke skriptům GETALL a GENSERVICES podle toho, kam si je rozbalíte. Doporučuju si udělat uživatele czf4bfu a dát mu oprávnění zápisu do adresáře s webem. Na debianu by to mohlo být například takto:

adduser --system --disabled-password --home /var/www/czf4bfu czf4bfu

Do /etc/cron.d/czf4bfu tedy můžeme dát něco takového:

0 1 * * *  czf4bfu  /usr/local/czf4bfu/update.sh -g > /dev/null

Což spustí každou noc v hodinu po půlnoci synchronizaci pod uživatelem czf4bfu, s tím že vybalené to je v /usr/local/czf4bfu a vygeneruje statický výstup. Pokud chcete jenom synchronizaci souborů, stačí volat czf4bfu-http.pl.

Jistou nevýhodou tohoto systému je, že se snaží sehnat co největší počet služeb a nerozlišuje dostupnost k jednotlivým serverům. Výběr podle dostupnosti je závislý na schopnostech uživatele.

frontend

U frontendu je třeba ponastavovat umístění výstupu služeb relativní k webu, tedy $webpath. Také je potřeba nastavit $web_base, cestu do kořenového adresáře webserveru, pokud to není /var/www. Já používám /var/www/czf4bfu jako skladiště souborů a $webpath="/services" jako složku ze zobrazením těchto souborů. Prosím neumisťujte výstup $webpath do /czf4bfu! Tam vůbec nepatří a synchronizace potom nebude fungovat správně. Do nachystané složky $webpath umístěte adresář icons a services.css, a ujistěte se, že i do tohoto adresáře může czf4bfu zapisovat a vytvářet soubory.

chown czf4bfu /var/www/services

Potom by mělo stačit provedení aktualizace pomocí update.sh -g, a do $webpath by se měl vygenerovat výstup. To je vše, víc toho není. Frontend je čistě statický a negeneruje nic online. Stačí už jenom dát odkaz na výpis služeb na váš web, aby to taky někdo věděl.

Aktuální seznam "servers.list"

10.102.0.1
10.11.1.150
10.129.0.26
10.14.1.1
czf4bfu.strasnice.czf
czf4bfu.prosek.czf
10.40.0.2
10.69.3.66
10.93.0.1
czf4bfu.vinor.czf
czf4bfu.evkanet.czf
czf4bfu.dejvice.czf
czf4bfu.klamovka.kosire.czf
czf4bfu.repy.czf
czf4bfu.kobylisy.czf
czf4bfu.jspoj.czf
czf4bfu.jiznak.czf
10.120.0.10
bfu.khnet.czf
najdi.czf
czf4bfu.jinonice.czf
10.12.27.2
czf4bfu.krivonet.czf

Nový server vždy prosím nahlašte do příslušného vlákna na CZF fóru. Díky