Webapp-config

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Webapp-config and the translation is 100% complete.
Resources


A webapp-config a Gentoo webalapú alkalmazások telepítője. Virtuális hosting-környezetekben használható webalkalmazások automatikus beállítására szolgál. Eredetileg bash szkriptként készült, ám jelenleg Python-alapú, és elérhető a Gentoo ebuild szoftvercsomag-tárolóban.

Fogalmak

A webapp-config célja, hogy biztosítsa a szoftvercsomagkezelési funkciókat, amelyekre a webszerver-rendszergazdáknak szükségük van több webhely futtatásakor ugyanazon IP-címen (virtuális hosting).

Kétlépcsős telepítés

Az olyan szoftvercsomag-kezelők, mint az RPM és a Portage, egyetlen példányban telepítik a szoftvercsomagot, és azt egy fix helyre helyezik. Ez ellentétben áll a virtuális hosting környezet igényeivel, ahol a rendszergazdáknak lehetőségük kell legyen arra, hogy egy szoftvercsomagot több helyre is telepítsenek annak érdekében, hogy az több webhely része lehessen. Ugyanakkor a szoftvercsomag-kezelők létfontosságúak az operációs rendszer hosszútávú fenntartásához. Hogyan lehet tehát ötvözni a kettő megközelítés előnyeit?

A megoldás a kétlépcsős telepítés. A hagyományos szoftvercsomag-kezelő egy fő példányt telepít a /usr/share/webapps/ könyvtárba. Ez a fő példány önmagában nem futtatható, de készen áll arra, hogy a webapp-config segédprogram segítségével egyetlen szoftvercsomagot többször, több helyre telepítsenek.

Ugyanazon szoftvercsomag többszöri telepítése

A webapp-config lehetővé teszi a rendszergazdák számára, hogy ugyanazon szoftvercsomagot többször lehessen telepíteni ugyanarra az operációs rendszerre egy időben. A rendszergazda határozza meg, hogy mely könyvtárakba telepítse az egyes példányokat.

A webalkalmazások világában ezeket a többszörös telepítéseket "virtuális másolatoknak" nevezik.

Ugyanazon szoftvercsomag különböző verziói egyszerre telepíthetők ugyanarra az operációs rendszerre. Ez lehetővé teszi a webes rendszergazdák számára, hogy fokozatosan vezessenek be egy új verziót a webhelyeken, anélkül, hogy az összes webhelyet egyszerre kellene frissíteniük.

A webapp-config a duplikált fájlok számát az abszolút minimumra csökkenti, így alacsonyan tartja az adathordozó-felhasználást. A fájlok többsége "hard linkelve" kapcsolódik a fő példányhoz, ezáltal kizárólag a beállításfájlokat és azokat a fájlokat másolja a virtuális másolatba, amelyeket a szoftvercsomagnak írnia kell.

Fájltulajdon és jogosultságok

Azok a rendszergazdák, akik kézzel telepítenek webalapú alkalmazásokat, tudják, hogy problémás lehet minden fájlt a megfelelő felhasználó tulajdonába helyezni és a megfelelő jogosultságokkal felruházni. Néhány fájlt annak a felhasználónak kell birtokolnia, amely alatt a webszerver fut. Más fájlokat bizonyos shell-fiókoknak kell birtokolniuk annak érdekében, hogy az adott felhasználók bejelentkezhessenek és szerkeszthessék a beállításfájlokat. Ha a Linux-disztribúció többféle webszerver választási lehetőséget kínál – amelyek mindegyike különböző felhasználó alatt fut –, akkor még a telepítők is nehézségekbe ütközhetnek a megfelelő beállítások elérésében.

A webapp-config segítségével a rendszergazda megadja a telepítőnek, hogy melyik webszervert használja, és melyik shell-fióknak kell tudnia szerkeszteni a beállításfájlokat. Ezután a webapp-config a fájlokat a megfelelő tulajdonosi és jogosultsági beállításokkal telepíti.

Védett beállításfájlok

A webapp-config automatikusan biztosítja, hogy a beállításfájlok soha ne legyenek felülírva egy frissítés során – még akkor sem, ha a fájlokat az eredeti telepítés óta nem módosították. Ezenkívül a webapp-config soha nem írja felül azokat a fájlokat, amelyeket nem ő telepített, vagy amelyeket a telepítés óta módosítottak. A webapp-config MD5 ellenőrzőösszegeket használ annak megállapítására, hogy egy fájl módosult-e vagy sem. Szimbolikus hivatkozások esetén a webapp-config nem cseréli le azokat a symlinkeket, amelyek más fájlra mutatnak.

Amikor egy frissítés megpróbál felülírni egy védett fájlt, akkor a webapp-config létrehoz egy ._cfg fájlt, amely az új fájlt tartalmazza. A telepítés befejezéséhez használható az etc-update, hasonlóan egy normál emerge folyamathoz.

Fájlmásolási lehetőségek

A virtuális másolat nagyrészt "hard linkek" létrehozásával épül fel a /usr/share/webapps könyvtárban található fájlokra. Ha egy hard link nem hozható létre, akkor a fájl a /usr/share/webapps könyvtárból másolódik át.

A hard linkek kizárólag ugyanazon fájlrendszeren belül hozhatók létre. Ha a /usr/share/webapps és a /var/www külön fájlrendszereken található, akkor a webapp-config nem tud hard linkeket használni, és kénytelen lesz a fájlokat másolni.

Háromféle módon lehet megkerülni a "hard linkek" problémáját.

A legegyszerűbb mód az, ha a /usr/share/webapps egy szimbolikus hivatkozásként (symlink-ként) egy /var/www alatti könyvtárra mutat. A legtöbb rendszergazda számára ez biztosítja, hogy minden ugyanazon a fájlrendszeren legyen rajta.

Ha a hosztolt webhelyek külön fájlrendszereken vannak eltárolva, akkor a webapp-config soha nem lesz képes hard hivatkozások létrehozására.

Alternatívaként a --soft parancssori opció használható. Ez arra utasítja a webapp-config szoftvert, hogy hard hivatkozások helyett szimbolikus hivatkozásokat (symbolic links) hozzon létre. A szimbolikus hivatkozások fájlrendszerek között is működnek.

A szimbolikus hivatkozások használatának problémája az, hogy az egyes szoftvercsomagok nem működnek megfelelően, amennyiben a virtuális másolat szimbolikus hivatkozásokból készül. Sok felhasználó és rendszergazda panaszkodott arra is, hogy a szimbolikus hivatkozásokkal teli könyvtárak zavaróak számukra. Ezek miatt a szimbolikus hivatkozások már nem szerepelnek alapértelmezett beállításként a webapp-config szoftverben.

A --copy parancssori opció is választható. Ez a kapcsoló arra utasítja a webapp-config szoftvert, hogy közvetlenül másolja a fájlokat a /usr/share/webapps/ könyvtárból, ahelyett, hogy hard hivatkozásokat használna. A közvetlen másolás fájlrendszerek között is működik, bár értelemszerűen az a hátránya, hogy több tárhelyet igényel az adathordozón. Ez a módszer előnyös lehet a szimbolikus hivatkozásokkal szemben, annak érdekében, hogy a virtuális tárhely fájljai külön legyenek választva, amelyeket aztán a rendszergazdák szabadon módosíthatnak. Így a /usr/share/webapps/ könyvtárban lévő fájlokat is szabadon módosíthatják majd.

Virtuális fájlvarázslat

Alapértelmezés szerint a fő példány tartalmazza azt a metaadatot, amely meghatározza, hogy melyik fájlok kerülnek áthivatkozásra egy virtuális másolatba, és melyik fájlok nem kerülnek áthivatkozásra. A fájlok vagy a webszerver tulajdonában vannak (server-owned), beállításfájlok (config-owned), vagy áthivatkozott fájlok (virtual). A könyvtárak lehetnek szerver tulajdonban vagy beállítás tulajdonban, de legtöbbször egyszerű könyvtárként kell létezniük (default-owned), amelyeket a telepítési könyvtárban hoznak létre (a -d opcióval beállítható). A webapp-config számos kapcsolót biztosít, amelyek lehetővé teszik a fő példány metaadatainak felülbírálását, amennyiben erre szükség lenne.

A --default-dirs és --virtual-files kapcsolók lehetővé teszik a rendszergazda számára, hogy meghatározza, mit tegyen a webapp-config, amikor egy könyvtár vagy fájl alapértelmezettként vagy virtuálisként van megjelölve. A webapp-config beállítható úgy, hogy a könyvtárat vagy fájlt bármely másik opcióvá – szerver-tulajdonúvá vagy beállítás-tulajdonúvá – alakítsa át.

${ROOT}

A webapp-config célja, hogy teljes mértékben támogassa a ${ROOT} változót. Azoknak a rendszergazdáknak, akik nem biztosak abban, hogy ez mit jelent, ajánlott elolvasni az emerge súgóoldalát (man emerge).

Funkciók

A vhost USE jelölőzászló használatával a webapp-config képes kezelni a következő alkalmazásokat:

Alkalmazás Szoftvercsomag Honlap Leírás
ampache www-apps/ampache http://www.ampache.org/ Az Ampache egy PHP-alapú szoftver, amely lehetővé teszi a hangfájlok kezelését, frissítését és lejátszását egy webes felületen keresztül.
b2evolution www-apps/b2evolution http://www.b2evolution.net Többnyelvű, többfelhasználós, több blogot kezelő motor.
Bugzilla www-apps/bugzilla http://www.bugzilla.org A Bugzilla a Mozilla projekt hibakövető rendszere.
cgit www-apps/cgit http://git.zx2c4.com/cgit/about A fast web-interface for git repositories.
coppermine www-apps/coppermine http://coppermine.sourceforge.net/ Webalapú képgaléria, amely PHP nyelven készült és MySQL adatbázist használ háttérként.
cvsweb www-apps/cvsweb http://www.freebsd.org/projects/cvsweb.html WWW felület egy CVS fában való böngészéshez.
dokuwiki www-apps/dokuwiki http://wiki.splitbrain.org/wiki:dokuwiki A DokuWiki egy könnyen használható Wiki, amelyet kisvállalatok dokumentációs igényeire terveztek.
dragonflycms www-apps/dragonflycms http://dragonflycms.org Egy funkciókban gazdag, nyílt forráskódú tartalomkezelő rendszer, amely a PHP-Nuke 6.5 alapjaira épül.
Drupal www-apps/drupal http://drupal.org/ PHP-alapú, nyílt forráskódú platform és tartalomkezelő rendszer.
egroupware www-apps/egroupware http://www.egroupware.org/ Webalapú csoportmunka szoftvercsomag.
eyeos www-apps/eyeos http://www.eyeos.org AJAX-alapú, webes asztali környezet.
groupoffice www-apps/groupoffice http://group-office.sourceforge.net/ A Group-Office egy erőteljes, moduláris intranet alkalmazáskeret.
Joomla www-apps/joomla http://www.joomla.org/ A Joomla egy erőteljes, nyílt forráskódú tartalomkezelő rendszer.
mantisbt www-apps/mantisbt http://www.mantisbt.org/ PHP/MySQL/Web-alapú hibakövető rendszer.
MediaWiki www-apps/mediawiki http://www.mediawiki.org A MediaWiki egy wiki webalkalmazás, amelyet például a wikipedia.org is használ.
mirmon www-apps/mirmon http://people.cs.uu.nl/henkp/mirmon/ Egyszerű webalkalmazás a tükörszerverek állapotának figyelésére.
Moodle www-apps/moodle http://moodle.org A Moodle egy kurzuskezelő rendszer.
mythweb www-apps/mythweb http://www.mythtv.org PHP-szkriptek, amelyek lehetővé teszik a MythTV kezelését egy webböngészőből.
Nextcloud www-apps/nextcloud https://nextcloud.com/ Webalapú személyes felhő, amely a saját szerveren fut.
otrs www-apps/otrs http://otrs.org/ Az OTRS egy nyílt forráskódú jegykezelő rendszer.
Owncloud www-apps/owncloud http://owncloud.org Webalapú tárhelyalkalmazás, ahol az összes adat teljes mértékben az Ön ellenőrzése alatt áll.
phpBB www-apps/phpBB http://www.phpbb.com/ A phpBB egy nyílt forráskódú üzenőfal szoftvercsomag.
phpmp www-apps/phpmp http://www.musicpd.org/ A phpMp egy kliensprogram a Music Player Daemon (mpd) számára.
phpsysinfo www-apps/phpsysinfo http://rk4an.github.com/phpsysinfo/ A phpSysInfo egy hasznos szoftvercsomag, amely PHP segítségével megjeleníti az operációs rendszer statisztikáit.
postfixadmin www-apps/postfixadmin http://postfixadmin.sourceforge.net Webalapú kezelőeszköz Postfix-stílusú virtuális domének és felhasználók kezelésére.
rutorrent www-apps/rutorrent https://github.com/Novik/ruTorrent A ruTorrent egy felhasználói felület a népszerű Bittorrent kliens, az rTorrent számára.
trac www-apps/trac http://trac.edgewall.com/ A Trac egy minimalista, webalapú projektmenedzsment, wiki és hibakövető rendszer.
tt-rss www-apps/tt-rss http://tt-rss.org/ A Tiny Tiny RSS egy webalapú hírcsatorna-gyűjtő (RSS/Atom), amely AJAX technológiát használ.
venus www-apps/venus http://intertwingly.net/code/venus/ Egy hírcsatorna-gyűjtő alkalmazás.
viewvc www-apps/viewvc http://viewvc.org/ A ViewVC egy webes felület a CVS és Subversion verziókezelő rendszerekhez.
wiliki www-apps/wiliki http://practical-scheme.net/wiliki/ A WiLiKi egy könnyűsúlyú wiki motor, amelyet Gauche Scheme nyelven írtak és azon fut.
WordPress www-apps/wordpress http://wordpress.org/ A WordPress egy PHP és MySQL alapú tartalomkezelő rendszer (CMS), amelyet széles körben használnak weboldalak és blogok létrehozására és kezelésére.

Telepítés

USE jelölőzászlók

USE flags for app-admin/webapp-config Gentoo's installer for web-based applications

+portage Propagate python_targets dependencies to sys-apps/portage

Emerge

Telepítse a webapp-config szoftvercsomagot:

root #emerge --ask app-admin/webapp-config

Beállítás

Webszerver beállítása

A webapp-config szoftvercsomagnak tudnia kell, hogy melyik webszervert használja a telepített alkalmazások üzemeltetéséhez. Népszerű választások közé tartozik:

Note
Ha a webszerver még nem lett beállítva a webapp-config folyamat ezen lépése előtt, akkor tegye meg mielőtt továbblépne ebben a cikkben. Látogassa meg a fent hivatkozott linkeket a webszerver telepítéséhez és beállításához. Miután a webszerver be lett állítva, térjen vissza ehhez a cikkhez.

Szerkessze a következő sort a /etc/vhosts/webapp-config fájlban a webszerver beállításának az érdekében. Ez a példa a helyes módosítás lenne, amennyiben a lighttpd (www-servers/lighttpd) lenne a választott webszerver:

FILE /etc/vhosts/webapp-configA webapp-config webszerver preferenciájának beállítása
vhost_server="lighttpd"

Használat

Műveletek

-I, --install
Telepítse a telepítési módot.
-U, --upgrade
Aktiválja a frissítési módot.
-C, --clean
Aktiválja az eltávolítási módot.

Példák

Note
A következő példákban az Owncloud lesz használva webalkalmazásként. Az Owncloud helyettesíthető bármelyik, a fenti táblázatban felsorolt alkalmazással.
Note
Cserélje le a <verzió> jelölést a webalkalmazás verziójára, amelyen műveletet kíván végrehajtani.

Webalkalmazás telepítéséhez:

root #webapp-config -I owncloud <verzió>

A telepített webalkalmazások listázásához:

root #webapp-config --list-installs

A telepített webalkalmazások megjelenítéséhez:

root #webapp-config --show-installed

Egy korábban telepített webalkalmazás frissítéséhez:

root #webapp-config -U owncloud <verzió>

Egy telepített webalkalmazás eltávolításához:

root #webapp-config -C owncloud <verzió>

Hibaelhárítás

Szellemtelepítések

A bejegyzések továbbra is léteznek a webapp-config --list-installs parancs futtatásakor, még akkor is, ha a fájlok törölve lettek a /var/www/ könyvtárból.

A probléma valószínűleg egy nem megfelelően végrehajtott webalkalmazás törléséből ered. Ha a fájlok manuálisan törlésre kerülnek a /var/www/ könyvtárban, akkor a webapp-config program zavart állapotba kerülhet. Az eltávolításokat a következő parancs futtatásával kell kezelni: webapp-config -C <alkalmazás_neve> <alkalmazás_verziója>.

A webapp-config eltávolításához:

root #emerge --depclean --verbose app-admin/webapp-config

Miután eltávolította, törölje az esetlegesen megmaradt telepítési fájlokat a /var/db/webapps/ könyvtárban.

root #rm -rf /var/db/webapps/

Telepítse újra a webapp-config szoftvercsomagot, majd futtassa a --list-installs parancsot. Minden "szellemtelepítésnek" el kell tűnnie.