Z vrcholu mé hlavy budete muset:
- Naučte se orientovat v systému souborů.
- Zjistěte, jak spustit/zastavit procesy (služby), které používáte.
- Najděte nebo naučte se základní textový editor (Vim, JOE nebo Pico)
- Naučte se kontrolovat procesy a zjistit, zda věci běží (ps, nahoře)
- Pokud provádíte údržbu serveru, budete se muset naučit instalovat balíčky.
To jsou jen základy. Dalším krokem je uvědomit si, kdy máte problém, a vědět, kam se můžete obrátit, abyste o něm zjistili další informace. I přes to všechno je to jen škrábání na povrchu a mnoho věcí nemusí dávat smysl. Je to však dobrý začátek.
80% vašich problémů budou oprávnění. Windows je dělá jinak; pokud se přihlásíte jako root (nebo s rootovskými privs), můžete obejít oprávnění. Apache nemůže a nebude.
- Zjistěte, jak správně nastavit vlastnictví souborů a adresářů. To pokryje jakákoli unixová kniha:ujistěte se, že tomu skutečně rozumíte – není to zabezpečení Windows napsané jinak – je to jiný model zabezpečení.
Ze zbývajících problémů bude 80 % problémů PATH. PHP nemá tak velký problém s PATH jako Java a Python, ale všechny používají nastavení PATH k nalezení komponent a knihoven. Pravidelně se v nich budete mýlit. Windows má PATH, ale také registr, takže věci jsou buď super snadné, nebo super tajné. Unix neuchovává žádná tajemství.
- Zjistěte, jaké proměnné prostředí používají PHP a MySQL. Ujistěte se, že víte, kde a jak se nastavují. Apache běží ve svém vlastním zvláštním prostředí a má příkazy pro nastavení běhového prostředí pomocí
mod_php
. Napište krátkýecho $PATH
shell skripty, které odhalí, co se děje.
Ze zbývajících problémů se 80 % bude týkat databáze. Po vytřídění oprávnění k databázi se stále budete muset připojit a věci „pojmenovaný kanál“ vs. „localhost“ budou nejasnými a matoucími způsoby špatně. MySQL je velmi shovívavá, ale zde uděláte nějaké chyby.
- Vyzkoušejte každé alternativní připojení a zjistěte, jak fungují. Nevybírejte žádný, protože je podobný Windows nebo „jednodušší“. Cvičte vlastně každý z nich. Důležité je také to, jak předáváte uživatelská jména a hesla z webové aplikace na databázový server. Apache běží jako "nikdo" - a nechcete jim dát výchozí přístup k ničemu. Vaše aplikace by se měla záměrně připojit k databázi bez použití výchozích nastavení.
Ze zbývajících problémů bude 80 % konfigurací Apache. Apache je opravdu jednoduchý, ale má milion možností. Existují čtyři způsoby, jak všechno udělat, a vždy vyzkoušíte dva, které nefungují vůbec, a spokojíte se s tím třetím, který bude hnusný. To čtvrté, které je mnohem jednodušší, vás nikdy nenapadne.
- Přečtěte si HODNĚ o konfiguraci Apache. Stránky httpd.apache.org obsahují spoustu informací. Snažte se o jednoduchost. Zkopírujte existující příklady a použijte je. Nevytvářejte požadavky nebo požadované implementace na základě zkušeností se službou IIS nebo zkušenostmi s počítačem se systémem Windows. Zkopírujte něco, co funguje.
Ze zbývajících problémů bude 80 % tvořit použití souborového systému aplikací. Pokud se pokusíte otevřít, číst nebo zapisovat místní soubory, zjistíte, že (a) nejsou správná oprávnění v adresáři, který se pokoušíte použít [viz výše] a (b) cesty k unixovým souborům se liší. Ne moc odlišné, ale dost odlišné na to, aby se něco rozbilo nejasným způsobem.
- Každá kniha o programování v Unixu/Linuxu to pokrývá. Od Windows se příliš neliší, jen natolik odlišný, aby vás napoprvé podrazil. Pište stránky PHP podobné „ahoj světe“, abyste dosáhli co nejjednodušší verze nahrávání nebo stahování, abyste se ujistili, že máte všechny části a části na svém místě. Poté opravte celou aplikaci, aby to fungovalo správně.
Ze zbývajících problémů bude 80 % tvořit podproces. Windows to dělá jinak. Jednou z nejdůležitějších věcí v Unixu je pamatovat si, že váš podproces je vaše dítě a musíte vlastně počkat, až skončí, aby se OS mohl vyčistit. Pokud uvažujete o podprocesu jako o paralelní věci typu „vypal a zapomeň“, budete mít procesy zombie a budete nuceni provádět pravidelné restarty.
- Napište velmi jednoduché stránky PHP, abyste mohli spravovat podprocesy. Zlaté pravidlo je spravovat své děti a uklízet po nich. Poté opravte celou aplikaci, aby to fungovalo správně.
Zbývající problémy budou triviální aplikační logikou, ale kvůli rozdílům na platformě budete vinit Unix, než vystopujete chybu v aplikaci PHP.
- Upravte své testy jednotek a protokolování, abyste mohli efektivně ladit.