Z Multihost.cz
Obsah |
PHP webhosting
Využití php skriptů je na našem serveru samozřejmostí. Stačí si v nastavení služeb povolit php (nic to nestojí) a dát souborům koncovku .php a vše by mělo fungovat.
Základní parametry a nastavení
| Verze PHP | 5.3.3 |
| Rozhraní | FastCGI |
| safe_mode | vypnut (více níže) |
| magic_qoutes_gpc | vypnuty |
| register_globals | vypnuto |
Pokud máte zvláštní požadavky, obraťte se na správce serveru. Instalace knihoven a rozšíření (zpracování pdf, etc.) není problémem.
Technické detaily
Na multihost.cz je PHP skriptování řešeno unikátním způsobem, který nemá mezi současnými hostingy obdoby. V běžných konfiguracích je PHP interpret zaveden přímo do webového serveru jako tzv. modul --- to ovšem znamená, že běží pod stejným uživatelem jako webový server a má stejná práva. Všichni uživatelé mají stejná práva. A aby si nemohli navzájem škodit, mají jich docela málo. Tak se stává, že uživatel nemůže běžně zapisovat skripty do svých vlastních souborů, a je svazován další řadou omezení takzavného bezpečného režimu (safe mode), který brání např. spouštět externí příkazy. Pro jednoduché PHP<->MySQL aplikace to nevadí, ale složitější technologie s vazbou na okolní prostředí nebo součásti psané v jiných programovacích jazycích zde narazí. Navíc se jedná o omezení zcela nesystémová, která jsou spíš stéblem, kterého se tonoucí chytá, než odpovědí.
Proto jsme sáhli k jiné variantě. PHP interpret je spuštěn jako oddělený proces, který s webovým serverem komunikuje přes unix domain socket FastCGI protokolem. To umožňuje, aby měl vlastní přístupová oprávnění, ale zároveň vede k nutnosti, aby každý uživatel měl svou vlastní instanci PHP interpretru. To je dobré, protože problémy ve skriptech jednoho uživatele (které by v krajním případě mohly vést k zaseknutí celého serveru) neovlivní ostatní a můžeme zároveň povolit téměř vše, včetně načítání externích knihoven a spouštění libovolných příkazů. Zároveň to ovšem znamená zvýšené nároky na server.
Výsledkem této technologie je tedy vysoká stabilita a hlavně bezpečnost i přes absenci bezpečnostních limitací výměnou za lehce zvýšené HW nároky (ale stále razantně menší, než s použítím klasického CGI).
Řešení problémů
Bílá stránka
Bílá stránka je většinou důsledkem chyby ve skriptu, kterou php z nějakých důvodů není ochotno zobrazit. Doporučujeme vzkoušet skript spustit z příkazového řádku (php cesta_ke_skriptu přes ssh), případně se obrátit na technické oddělení.
"Zaseknutý" php interpret
Typicky se projevuje dlouhou dobou načítání, na jejímž konci je timeout prohlížeče, bílá stránka, chyba 500, nebo něco podobně neužitečného. Většinou je způsobenou špatně napsaným skriptem. Pomůže restart hostingu v administraci nebo spuštění příkazu
killall php-cgi
přes ssh --- tedy samozřejmě jen do doby, než se někdo opět pokusí načíst poškozený skript. V takovém případě ověřte funkčnost jednoduššími skripty a pokud narazíte na ten, co dělá problémy, zkuste jej zpustit ručně přes ssh (viz předchodí sekce) a identifikovat problém. Pomůže přidání ladících výpisů.