Asztali gépen virtual host-ok, de minek?
Sziasztok!
Most próbálok áttérni win7-ről ubuntura, s ott kialakítani egy (drupalos) webfejlesztői környezetet.
Telepítettem az APACHE-PHP-MySQL 3-astaz asztali gépemre, beállítottam a /var/www/html/ mappa jogosultságait, a rövid URL-ket, a php.init, a Sublime szereksztőt, a drusht. Minden működik is.
Az oldalak elérhetők a localhost/mappanév alatt.
A kérdésem, hogy ezeket a virtual host-okat (vagy miket) be kell, be érdemes állítanom?
Ez mire jó amúgy?
■ Most próbálok áttérni win7-ről ubuntura, s ott kialakítani egy (drupalos) webfejlesztői környezetet.
Telepítettem az APACHE-PHP-MySQL 3-astaz asztali gépemre, beállítottam a /var/www/html/ mappa jogosultságait, a rövid URL-ket, a php.init, a Sublime szereksztőt, a drusht. Minden működik is.
Az oldalak elérhetők a localhost/mappanév alatt.
A kérdésem, hogy ezeket a virtual host-okat (vagy miket) be kell, be érdemes állítanom?
Ez mire jó amúgy?
A virtual host címe az
localhost
, azaz jelenleg csak egy van a rendszeredben.A virtuális hostokat az etc/hosts nevű fájlban tudod felvenni (és az apache extra/httpd-vhosts.conf fájlban konfigurálni), és akkor a böngészőben úgy tudsz rájuk hivatkozni, mint például
http://sajat_host/
.Köszönöm a választ, de jól
Tehát azért jó, mert akkor az asztali gépemen ha beütöm azt, hogy xyzkft.hu akkor valójában a helyi oldalt hozza be amit fejlesztek a saját gépemen.
S ez meg azért jó, hogy például a link hivatkozások, helyesek legyenek, mint késöbb az éles szerveren?
S ha az interneten levő xyzkft.hu éles oldalát szeretném megtekinteni?
Azt nem tudom, hogy virtual
http://xyzkft/
címet a fejlesztéshez és teszteléshez.Közben utánanéztem, lehet pont a virtualhost nevében, a hosts fájlomban van jópár hasonló sor:
127.0.0.1 cdn.atdmt.com
Ezzel például a skype hirdetéseit tudom kiszűrni.
Windowson a hosts fájl elérhetősége:
C:\WINDOWS\system32\drivers\etc\hosts
Az apache-nak van egy alap
Vhost-ot csinálhatsz bármilyen mappára, ekkor az éles rendszerhez jobban hasonló dolgot tudsz felépíteni.
Az /etc/hosts-ba írhatsz olyat is, hogy xykft.dev, az is menni fog.
Egy fokkal még bonyolultabb, de adott esetben kezelhetőbb (pl gép újratelepítés, gazda gép frissítés), ha a van egy virtuális teszt szervered a gépen.
elérik egymás dolgait a
máshogy megközelítve
Kezdő vagyok linuxban, de
--
Tehát, azért javallot, hogy az éles rendszerhez hasonló környezett kapjon az oldal.
Ehhez kis segítséget kérnék: honnan tudom, hogy az éles rendszeren mik azok a beállítások, amit itt nálam is a virtual hostoknál el kell végeznem?
Valamilyen fájl, vagy mappa után kell kutakodnom?
A 14.04-ben talán apache2.4
Szerveren lehet, hogy apache2.2 és php5.3 lesz (de ez mindegy is). Lehetnek különbségek. amúgy egy phpinfo() azért megmondja mivel állsz szemben.
Ilyen szintű dolgokat (mármint verzió különbséget) virtualhostból beállítani nem igazán lehet (biztos van aki tud, de nem kézenfekvő).
Feltelepíted a virtualbox-ot, és felraksz rá egy 12.04 szervert pl (vagy bármit). beállítgatod szépen. Egyrészt tök egyszerűen tudsz mentéseket csinálni a gép állapotáról telepítések közben, másrészt nem gányolod teli a gépedet, meg olyan oprendszert használsz amit akarsz, veszel egy Mac-et, átrakod a virtuális géped és mehet tovább a meló. A virtuális gépedről meg nfs-en vagy akárhogy megosztod a projekt mappákat, és azokat már a gazdagép szerkesztőjével nyomathatod.
Gyakorlod a szerver konfigot, be tudsz lépni ssh-val a saját gépeden futó szerverre, mekkora májerség már :D.
A saját gépeden feltelepített fejlesztőkörnyezethez képest annyi a plusz melód, hogy meg kell oldanod a mappák megosztását, valamint a virtuális gépeden a net elérést (én ezt úgy csináltam, hogy van egy host-only kártya, ezen hallgat az apache, és van egy másik ami NAT-olva van, ezen keresztül éri el a szerver a netet). gép újra telepítésnél viszont nem kell semmit sem csinálnod, csak importálni a virtuális gépet..
Adalék
vhost
Először is köszönöm a hosszú
Tehát Te azt javaslod, hogy
- hozzak létre egy virtuális gépet a virtualbox segítségével
- beállítgatok azon mindent szépen, hogy menjen rajta minden ami a webfejlesztői környezethez kell, fussanak a projekt weboldalak szépen. Mintha az lenne az éles (interneten levő) szerver.
- Azon beállítom a virtuális hostokat is
- ezeket a projekt mappákat a gazda gép számára elérhetővé teszem. Tehát hogy FTP-vel, SSH-val, meg SFTP vel be tudjak jelentkezni rá a gazda gépről
Azon gondolkozom, hogy így a gazdagépről lesz-e a tesztelés, vagy a virtuális gépről?
A böngésző, amelyik majd tesztelni fog melyik gépen fusson (a gazda vagy a virtuálison) , s mi is lesz majd beírva a címsorba?
sztem egy ssh hozzáférés
unit tesztek virtuális gépen futnak. böngészős tesztek meg gazda gépről (ugye a virtuális gépen nem is lesz grafikus felület meg böngésző jó eséllyel)
és igen a projekteknek hozz létre virtualhostot a virtuális gépen :D
pl projektem.dev
a gazda gépen az /etc/hosts ba beírod, hogy
192.168.56.3 projektem.dev
(vagy ami a virtuális géped ip-je)
és akkor a böngésződbe a gazdagépen meg azt írod, hogy http://projektem.dev és menni fog elvileg. :D
NFS helyett érdemes lehet
Tudtam, hogy van itt olyan is
Én csak nagyjából megfogalmaztam magamnak, hogy mire van szükségem aztán az első megfelelő eszközzel meg is elégedtem :)
Amúgy mik az előnyök?
Amúgy mik az előnyök? Az SSH
Az SSH hozzáférésen kívül semmit nem kell konfigurálni a szerveren (az meg amúgy is van).
Ha már itt tartunk, a
Nem is beszélve a
Apropó öngyilkosság, ugye van
És akkor még épphogy csak
„Ha újrakezdhetném, nem
Ez túlzás. Kevés emberes
Én egy egyszemélyes
(feltéve hogy ezt a verziókezelős kommentemre írtad)
Mindenki másképp csinálja.
Nagy előny az, hogy gyorsan
Az elején mondjuk van egy kicsit fájdalmas beletanulási időszak.
Én is fájdalmasan tanultam
Ha már két ember dolgozik egy kódbázison, akkor pedig tényleg játék a tűzzel nem használni verziókezelést a koordinációhoz.
Addig jár a korsó a kútra,
Az okos ember a saját kárán
Git nélkül én sem vágok bele
deployment automatizáció +1
Én a deploymenthez Rsync-et
így persze jogos..
Vagrant
A konkrét projected installációjára meg van puppet és chef támogatás is (vagy csak simán egy shell script), ezeket amúgy is érdemes megcsinálni, mint te is írtad, mert később megtérül a befektetett munka.
Bár nekem az indító kérdés alapján ágyúval-verébre esetnek tűnik projektenként külön-külön virtuális gépet csinálni, főleg ha a projektjei azonos környezetre (lamp stack-re) épülnek.
Amikor nekikezdtem, ránéztem
Windows-on hatalmas segítség.
Miért vagrant
Vagrant legnagyobb hasznát én csoportmunkánál láttam ahol oda lehetett adni új kollégának a vagrant filet és akármi is legyen a épp a gépén ~10 percen belül ugyanazon a környezeten tud dolgozni mint a többiek.
Ehhez persze kell, hogy provisioning meg legyen csinálva, szóval első "vagrant up" után kód checkoutolva repóbol, db a helyén, serviceok futnak, lehet pötyögni. Ha valamit elbarmol rajta akkor ki lehet hajítani és újra felhúzni ismert állapotot.
Ha nem csak egy szokásos lamp stacken fut a projected, hanem mondjuk "nginx + php-fpm + mysqld + memcached + openfire + hubot" (mert így néz ki élesben egyik cuccunk) akkor ezeket szakmányban kéne felhúzni gépekre (főleg windowsokra amikhez kevésbé értek) az roppant fájdalmas volna nekem.
Nem érted. Én ugyanezt
Azt nem látom, hogy mit ad a Vagrant, azon kívül, hogy most őt hívom meg.
Nos lehet valóba nem
Ez van annyival megfejelve, hogy lehet több gépet belőni egy confiból, vagy ugyanabból a configból hyper-v, docker vagy vmware (mintha ez már a fizetős verzióban lenne csak) gépeket is tud építeni illetve, erre vagy van szükséged vagy nincs (én magam sose használtam).
Lehet ezen a ponton ingerküszöb kérdése a dolog.
Nekem amikor már harmadszorra kell ugyanazt megcsinálni, mert van egy otthoni gép, egy irodai, meg kollégát is be kell vonni, majd kiderül, hogy megyünk ügyfélhez és legyen rajta a cucc a laptopon... már elszakad a cérna, de tény, hogy nehezen tudnám elválasztani a dolgot provisioning által csinált elemektől.
Napi munkafolyamat részeként valóban tökmindegynek tűnik, hogy virtualbox kis felületén ütök rá a "start" gombra, vagy terminálba pötyögöm be, hogy "vagrant up", de ezek az eszközök elvileg addig izgalmasak amíg eljutsz oda, hogy már csak ennyit kelljen tenned. A vagrantfileokkal sose kell mást tenned (főleg ha valaki más írja őket :P), míg manuál telepítésnél igen. De még ha te magad is írod őket, második alkalommal már csak az up, míg ha kézzel csinálod akkor újra 10 (?) kattintás settings-ben. Hogy megéri-e ezért megtanulni a config file formátumát azt már azt rád bízom (:
Alakul, de úgy érzem, még
Az rendben van, hogy egy konfigból lehet többféle virtualizációs eszközt kezelni, biztos van, akinek erre van igénye, de megint felmerül bennem, hogy mit tartalmaz az a konfig?
Épp ez az, amit nem értek: onnantól, hogy elindult a gép, a provisioningre megvannak a kész eszközök (Puppet, Chef, Salt, Ansible…), amik egy sorból telepítik akár egyszerre az otthonit, az irodait, a kolléga gépét és a laptopot.
Mármint itt a virtuális gép beállításaira gondolsz? Erre az én módszerem, hogy az elején az oprendszer telepítése után beállítok mindent, és exportálom az egészet. Ha valami változik (új port forwarding szabály például), akkor import, beállítások szerkesztése, és ismét export. Ezeket a dolgokat írja le a vagrantfájl?
Igen, azokat:
- Alaprendszer "box"-ja. Többnyire valami készen kapott, mert lusta vagyok sajátokat építeni alaprendszerekhez vagy magam installálni iso-ból az oprendszert.
- Port forwardingok:
- Osztott könyvtárak:
- Virtualbox beállítások, általában memóriát szoktam csak piszkálni:
Minden más (igazából izgalmas) már provisioning dolga.Vannak más beállítható dolgok még amiket sose használtam mint ssh jelszavak, keyek és hasonlók, vagy hálózati beállítások. Ezek gyanítom akkor volnának hasznosak ha mondjuk ec2 instance-okat akar csinálni az ember ugyanabból a configból.
Szóval, igen tényleg ez minden (ha a provisioningot nem nézed).
Én úgy látom a kérdezőnek nem
A legnagyobb gond, hogy alapvető elméleti hiányosságai vannak. Pl: Linux, hogyan működik a web, webszerver, stb... Én az javaslom, hogy előbb azokat kellene pótolni, mert úgy nehéz segíteni, hogy még az is gond, hogy mi az a virtual host...
Ez mire jó amúgy?
Azt javaslom, hogy vegyél egy jó könyvet, végezz el 1-2 tanfolyamot.
Egyébként a válaszaim:
1. nem kell, de érdemes, hasznos, célszerű
2. Virtual hosting
sztem a 11-es hozzászólás
Nagyjából értem, hogy miről
Alapból az asztali gépemen állítottam be a dolgokat (persze nem tudtam, hogy miket, csak a leírások alapján próbáltam végigmenni.)
S örültem, hogy hasonlóan mint az előző - win7 és a xampp - párossal életet tudtam lehelni néhány projektbe.
Azt nem értettem, hogy mi ez a 'virtual host' dolog, s ezért jött fel a kérdés.
Válaszaitokból látszik, hogy másik módszerrel (virtuális gép létrehozása, s azon belül dolgozni) hatékonyabb lesz majd a munka.
Válaszaitokból látszik, hogy
- valamennyivel lassabban fognak futni a scriptek, lassabb lesz a mentés és a böngészőből való elérés a plusz réteg miatt
- a gépeden egy csomó memóriának búcsút inthetsz, ami akkor jelenthet gondot, ha mellette erőforrásigényes programokat is futtatsz, például photoshoppot
- ha a webes fájlokat nem teszed külön virtuális meghajtóra, akkor a teljes virtuális merevlemez gigabájtokat foglalhat el, aminek a másolása, biztonsági másolat készítése lassú lehet
Hosszú évekig fejlesztettem windowson, hasonló környezetben, mint amit fent írtál, mindenféle gond nélkül.valamennyivel lassabban
Észrevehetetlen a különbség. A fájlokat pedig nem is kellene a virtuális gépre menteni – fejlesztői gép és szerver különüljenek el teljesen, a virtuális gép álljon a lehető legközelebb a majdani éles környezethez. Ezzel nem csak a különbségekből adódó hibalehetőség szűnik meg, hanem már a fejlesztés közben kialakul a későbbi üzemeltetés gyakorlata (pl. deployment).
Ez részben igaz, én is megérzem néha a magam öt éves gépén, de te döntöd el, mennyi memóriát allokálsz a virtuális gépnek. Manapság, 4-8-16 gigabájtos laptopok mellett ez nem okozhat gondot. Ha mégis kevés a memória, egy-két másodperc alatt lemezre menthető a virtuális gép állapota, és aztán ugyanígy visszatölthető.
A projekt fájlok a fejlesztői gépen vannak, a szerverkonfiguráció a leírófájl formájában a projekt része, így a virtuális gépről nem kell biztonsági mentést készíteni, mert egy tiszta oprendszer képfájl és a leíró birtokában percek alatt felépíthető az előző állapot.
Ameddig csak fejlesztesz és nem üzemeltetsz, illetve ugyanazt a stacket használod mindenhol, addig el lehet ezzel lenni, bár a fejlesztői és éles rendszer közti különbségből adódóan nem hiszem, hogy sosem volt problémád (szerintem mindannyiunknak volt). Amint viszont különböző technológiákkal dolgozol, vagy különböző projektek konfigurációjáért is te felelsz, egyszerűen kézbentarhatatlan a saját gépeden reprodukálni az összes környezetét.
Ok, félreértettem, azt
Ok, félreértettem, azt
Ha jól értettem, Gábor ezt javasolta, én ezzel nem értek egyet.
Éles szerveren nem tesztelünk, oda csak a már tesztelt szoftver kerül :) A távoli tesztszervert elérni pedig lassú, vagy adott esetben akár lehetetlen is lehet (ha épp nincs hálózatod).
Elég, ha a PHP verzió, beállítások vagy a telepített kiterjesztések különböznek. Vagy a fájlrendszer jogosultságok. Vagy az egyéb telepített szoftverek, amikre az alkalmazásod támaszkodik. De az is lehetséges, hogy olyan szoftvert fejlesztesz, amit nem is tudnál a saját gépeden futtatni.
Ami a sebességet illeti, ma