Z Multihost.cz

Přejít na: navigace, hledání

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ů.

Příbuzná témata