Autor | Zpráva | ||
---|---|---|---|
Str4wberry Profil |
# Provozování webových stránek z domácího počítače (= vlastní webový server)Pro testování stránek je určitě vhodné si zřídit testovací webový server. Objevují se zde i dotazy ohledně provozování i hotových veřejných stránek z domácího počítače.V principu to není složité, ovšem většinou toto řešení nemá výhody, které od něj autoři takových dotazů očekávají. Skutečná výhoda je absolutní kontrola nad serverem a jeho nastavením. Představa mnoha tazatelů, že to bude jednodušší a levnější než hosting, se nezakládá na pravdě. Provozovat webový server doma je naopak složitější a dražší. Co je tedy potřeba? 1. Počítač – Webové stránky by měly být dostupné neustále, takže pro webový server bude nutný vyhrazený počítač (který nebude nikdo vypínat, restartovat a podobně) – Obvykle je spíš než výkon důležitá spotřeba. Provoz běžného webu není výkonově náročný, zato stále běžící počítač má poměrně velkou spotřebu elektřiny. Běžný domácí počítač (desktop) kolem 100-200W, se specializovanými úspornými komponentami (procesor, grafická karta, atd.) se lze dostat zhruba ke 40W. Při ceně elektřiny kolem 4,50Kč/kWh i 40W odpovídá nákladům téměř 1600Kč za rok. Nepřetržitý provoz Kancelářského či dokonce herního počítače může tedy stát několik tisíc Kč ročně. (Údaje odvozené od situace v roce 2012) – Nepřetržitý běh má nadprůměrné nároky na komponenty počítače a také jeho návrh (týká se přehřívání, problém zejména u notebooků). Ideální by bylo použít specializované serverové a navíc redundantní komponenty, ovšem vyjde to samozřejmě dráž. – Je také nutné vyřešit zabezpečení a zálohování dat. Počítač by měl mít několik disků v RAIDu (což je zabezpečení, ale ne zálohování) a k tomu pravidelné zálohování. 2. Připojení k Internetu – K provozování webových stránek je nutná veřejná a statická IP adresa (u některých poskytovatelů připojení je za příplatek). – Potřebná rychlost připojení závisí na obsahu a návštěvnosti stránek na serveru, ale zatímco u typického domácího připojení je podstatný hlavně download, u webového serveru naopak hlavně upload. Rychlost uploadu je u některých poskytovatelů mnohem nižší, než rychlost downloadu (např. nejvyšší tarif od UPC má rychlost downloadu 120Mbit/s, ale uploadu jen 10Mbit/s - září 2012). – Je také vhodné myslet na případný výpadek připojení, například výběrem poskytovatele a tarifu, kde jsou alespoň nějaké záruky dostupnosti. Ideální je mít ještě záložní připojení pro případ výpadku hlavního připojení. 3. Obsluha a znalosti – V první řadě, pokud nevíte jak co nastavit a nejste si jistí co děláte, nepouštějte se do toho. Vlastní server je vhodný spíše pro pokročilejší uživatele, kteří chtějí mít vše pod kontrolou. – Je dobré zvážit, kdo bude řešit případné problémy když tam zrovna nebudete. Když např. odletíte na 14 dní k moři a druhý den spadne server, kdo to bude řešit? Pro běžného majitele stránek je ve většině případů pohodlnější, jednodušší a levnější se spolehnout na placený hosting. Nastavení pro nejrozšířenější Apache HTTP ServerPro získání základních informací k nastavení serveru je vhodné si nejdříve prostudovat příslušnou kapitolu na webu Jak psát web – Něco málo o nastavení serveru. # Kterak ověřit, zda je rewrite povoleno a zapnuto#pouze pro test! (jakykoli pozadavek presmeruje na tuto diskuzi) RewriteEngine On RewriteRule .* http://www.jakpsatweb.cz/ [L] # Jak zapnout modul mod_rewrite v ApacheV konfiguračním souboru (nejčastěji httpd.conf) se modul zapíná konfigurační direktivou na řádkuLoadModule rewrite_module modules/mod_rewrite.so Na začátku nesmí být znak # označující komentář, s kterým se modul mod_rewrite nenahraje a použitá pravidla v souboru .htaccess vyvolají při přístupu na stránky chybu 500 Internal Server Error. Do chybového logu error.log je zároveň zaznamenána chyba Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration.
Pro fungování pravidel mod_rewrite je ještě nutné, aby byla zapnuta volba (v konfiguraci Apache nebo v souboru .htaccess): Options +FollowSymLinks Při použití přepisovacích pravidel v souboru .htaccess se také předpokládá, že je v konfiguraci webserveru zapnuto načítání konfigurace z tohoto souboru v příslušné sekci <Directory> nebo <Location> . Pokud se používá více virtuálních serverů, tak také v konfiguraci každého z nich.
<Directory /var/www/> AllowOverride All </Directory> # Univerzální obecné pravidloUniverzální přepis všech virtuálních adres, které vše předhodí PHP skriptuindex.php , který se o zpracování adres postará.
RewriteEngine On #pokud je to zanorene v nejakem adresari, uvedte ho za / RewriteBase / #ignoruj vsechny opravdove adresare RewriteCond %{REQUEST_FILENAME} !-d #ignoruj vsechy opravdove soubory (php skripty, obrazky, styly) RewriteCond %{REQUEST_FILENAME} !-f #vsechno ostatni necha vygenerovat index.php (ten se musi rozhodnout podle promenne url, zda stranka existuje a jaky ma mit obsah) RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] Pokud je cílem adresa ve tvaru example.com/jedna/dva/tri , není nic snazšího než si proměnnou $_GET["url"] rozsekat do pole (adresa bude přepsána na example.com?url=jedna/dva/tri ):
$adresa = explode("/", $_GET["url"]); $adresa s příslušnými indexy.
# Stránky s adresou bez příponyNa krátké adrese bez příponyhttp://www.example.com/adresar/cokoliv se bude zobrazovat obsah souboru se stejným jménem, ale s příponou http://www.example.com/adresar/cokoliv.php . Má-li se přepisovat na jiný typ souboru, tak stačí v pravidle dle potřeby změnit koncovku .php (například na .html ).
RewriteEngine On # podstrčení PHP, přepsat pouze na existující skript RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^.]+)$ /$1.php [L] # podstrčení HTML, přepsat pouze na existující soubor RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^([^.]+)$ /$1.html [L] Na stránkách, kde se dříve používaly adresy s příponou, je ještě vhodné přidat přesměrování ze starých adres na nové s odstraněnou příponou. # přesměrování na verzi bez přípony, pokud ještě není přepsáno a není to POST požadavek RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteCond %{REQUEST_METHOD} =GET RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.+)\.(php|html)$ http://%{HTTP_HOST}/$1 [L,R=301,NE] V některých situacích (hlavně když se cesta shoduje se začátkem jména skriptu) můžou pravidla kolidovat s modulem mod_negotiation, který se pokouší domyslet příponu a hledá vhodné soubory ještě před mod_rewrite. Má-li se tomuto nechtěnému chování zabránit, tak je nutné tento modul vypnout. <IfModule mod_negotiation.c> # vypnout automatické vyhledávání alternativ Options -MultiViews </IfModule> Návrhy na doplnění pište sem. |
||
Časová prodleva: 14 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0