Přejít k navigační liště

Zdroják » PHP » IIS 7 pro PHPčkáře

IIS 7 pro PHPčkáře

Články PHP, Různé

Jednou z novinek Internet Information Server 7.0 je modul FastCGI vyvinutý ve spolupráci se společností Zend, který je určen pro plnohodnotný běh PHP aplikací na Windows Server 2008. Tento modul lze doinstalovat i do IIS 6.0 ve Windows Server 2003. Proč ale provozovat PHP aplikace na Windows Server, když je tu Linux?

Začneme asi tím, na co se většina PHP programátorů zeptá hned na začátku: Proč Windows Server 2008 a IIS 7, když je tu Linux a Apache, navíc zadarmo. Odpověď bude, pro někoho možná překvapivě, netechnická.

Situace 1

Jste malá firma, která poskytuje služby spojené s některou z existujících PHP aplikací. Osloví vás potenciální zákazník, který chce začít provozovat firemní blog. Vy nabídnete Drupal a firma, která stojí s nabídkou proti vám, nabídne Dotnetnuke (běžící na ASP.NET).

Pro koho se asi rozhodne zákazník, pokud má jeden jediný server, na kterém provozuje Windows Server 2008? Pořídí si další HW a konektivitu pro Linux server a bude vám, kromě správy a úprav aplikace Drupal, ještě platit za správu Linuxového serveru, pro kterého nemá správce, nebo si raději vybere konkurenci, které bude platit jen za správu a úpravy aplikace Dotnetnuke, protože běží na IIS?

Situace 2

Chcete začít hostovat webové aplikace pro lokální firmy, které si stěžují, že velcí hosteři nejsou schopni reagovat dostatečně flexibilně na jejich požadavky. Omezíte se jen na PHP, když můžete na Windows Server 2008 plnohodnotně hostovat oboje?

Jedna z nejčastějších otázek se týká dostupnosti „mod_rewrite“ pro IIS. Takový modul skutečně existuje, umí importovat pravidla mod_rewrite z Apache, je zadarmo a popíšeme si jej o něco dále. Kromě toho si podobný modul (podstatně jednodušší) zkusíme vytvořit sami.

Zprovoznění podpory PHP na IIS 7

Podpora PHP, tedy modul FastCGI, je standardní součástí IIS 7 na Windows Server 2008 a na Windows Vista SP1. Stačí zapnout podporu CGI pro IIS:

Windows Vista: Start – Ovládací panely – Programy – Zapnout nebo Vypnout funkce systému Windows

Zapnutí PHP na IIS

Windows Server 2008: Povolit roli „Web Server (IIS)“

Zapnutí PHP na IIS

Dále je potřeba stáhnout instalaci PHP z www.php.net. V době psaní tohoto článku se jednalo o verzi 5.2.6 Non-thread-safe pro Win32 a samozřejmě PECL 5.2.6 Non-thread-safe pro Win32. PHP nainstalujete běžným způsobem. Já používám verzi bez instalátoru, kdy PHP jen rozbalím do vybraného adresáře. Další krok je konfigurace FastCGI modulu, aby věděl, kde se nachází PHP. Než si vysvětlíme jak to udělat, je třeba si vysvětlit jak funguje IIS 7 a jak se konfiguruje.

Základy konfigurace IIS 7

IIS 7 sestává z mnoha modulů. Každý z nich se stará o nějakou základní činnost, např. autorizaci uživatele, a vstupuje do hry v různých okamžicích života požadavku klienta, např. před odesláním hlaviček protokolu HTTP, a může být vázán na konkrétní typ souboru, např. modul FastCGI je vázán na soubory s příponou *.php.

Pokud je modul mapován na konkrétní typ souboru, tak se označuje jako handler. Po instalaci IIS 7 máte k dispozici několik desítek modulů, které ale nemusí vaše aplikace používat. Pokud kupříkladu naše aplikace nepoužívá pro přihlašování Windows doménu, je zbytečné mít v ní povolen modul WindowsAuthen­tication.

IIS 7 má globální konfigurační soubor, který obsahuje výchozí nastavení webového serveru a v něm běžících aplikací. Každá aplikace má pak svůj vlastní konfigurační soubor, kterým v podstatě „přepisuje“ výchozí nastavení webového serveru IIS 7. Samozřejmě ne vše je možné měnit na úrovni aplikace.

Konfigurační soubory využívají formát XML, proto je můžete měnit jak ručně pomocí libovolného textového editoru, tak pomocí konzole pro správu IIS 7. Globální konfigurace je uložena v souboru %windir%system32inetsrvconfigapplicationhost.config (odpovídá httpd.conf pro Apache) a musíte mít administrátorská práva pro jeho editaci. Aplikace pak obsahuje ve svém kořenovém adresáři soubor web.config (obdoba .htaccess pro Apache), který nastavuje konfiguraci pro danou webovou aplikaci.

Spuštění první PHP aplikace pod IIS 7

Už jsme si stručně vysvětlili, jak vypadá konfigurace IIS 7, co jsou to moduly a co jsou to handlery. Můžeme přistoupit ke spuštění první PHP aplikace. V libovolném adresáři si vytvořte PHP soubor, do kterého vložíte oblíbenou funkci pro testování PHP phpinfo(). Do tohoto adresáře musí mít přístup IIS 7.

Další vlastností IIS od verze 6 jsou tzv. Application Pools. Jde o skupinu aplikací, které běží pod stejnou identitou a jsou izolované od ostatních Application Pools. Standardně máte vytvořen DefaultAppPool a Classic .NET AppPool. Oba využívají identitu NetworkService. Pro testování mám připraven adresář, kam má přístup identita Everyone, tím pádem i libovolný Application Pool pod IIS.

Oprávnění v IIS

Nyní přidáme do IIS 7 virtuální adresář směřující na adresář s naším vytvořeným souborem.

  1. Spustíme konzolu pro správu IIS 7.
  2. Přidáme novou aplikaci na náš lokální IIS 7.
    Přidáme aplikaci do IIS
  3. Nastavíme alias a fyzickou cestu k našemu testovacímu adresáři (v našem případě mapujeme alias php na cestu C:tempwwwrootphptest):
    Nastavení aliasu v IIS
  4. Dále musíme přidat podporu PHP. V podstatě musíme připojit modul FastCGI na příponu PHP a nastavit cestu k instalaci PHP. Dvakrát kliknete na ikonu Mapování obslužných rutin a v pravém sloupci vyberete akci Přidat mapování modulů.
    Mapování modulů v IIS
  5. Nyní již stačí otevřít náš testovací PHP skript v prohlížeči:
    Spuštění testovacího skriptu

Když se nyní podíváte do adresáře s PHP skriptem, najdete v něm nový soubor web.config s následujícím obsahem:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="PHP" path="*.php" verb="*" modules="FastCgiModule"
                 scriptProcessor="C:phpphp-cgi.exe" resourceType="Unspecified" />
        </handlers>
    </system.webServer>
</configuration> 

Soubor definuje mapování přípony *.php na modul FastCgiModule. Tento soubor můžete vytvořit i ručně. Není nutné použít konzolu pro správu IIS 7, jako jsme použili před chvílí my.

Jak jsem již psal, není potřeba mít zavedené všechny moduly a handlery, které se nacházejí ve výchozí konfiguraci IIS 7. Vyházení zbytečných modulů a handlerů můžete udělat pomocí konzole pro správu IIS nebo editací web.config. Jaké moduly můžete vyházet závisí na tom, jaké služby IIS 7 (cache, autorizaci, logování, URL rewrite, …) chcete využívat. Tyto služby jsou v podstatě nezávislé na aplikaci.

U handlerů je to jednodušší, protože potřebujete jen handler pro PHP soubory (maska *.php) mapovaný na FastCGI modul a handler pro statické soubory (maska *) mapovaný minimálně na StaticFile modul. Výchozí mapování statických souborů ještě zahrnuje moduly DefaultDocumen­tModule a DirectoryListin­gModule.

Modul URL Rewrite

Tento modul není standardní součástí instalace IIS 7 a je třeba ho stáhnout. Po instalaci můžete modul konfigurovat buď přes konzolu IIS 7 nebo opět pomocí ruční editace souboru web.config ve vaší aplikaci.

  1. Ve stromu webů najděte a vyberte vaši aplikaci
  2. Dvakrát klikněte na konfiguraci modulu URL Rewrite
    Přidání modulu rewrite
  3. Zobrazí se seznam pravidel, zatím prázdný
  4. Vyberte Add Rules…
    Přidání rewrite pravidel
  5. Vyberte pravděpodobně nejčastěji používané „User friendly URL“.
    User friendly URL
  6. Pravidlo si můžete nechat vygenerovat automaticky. Stačí vložit současné volání stránky a konfigurační utilita vám nabídne různé varianty pravidla. Také si můžete nechat vygenerovat „reverzní“ pravidlo, které přesměruje původní volání na „User friendly“.
    Přidávání rewritovacích pravidel
  7. Po kliknutí na OK je pravidlo vytvořené. Nyní si můžete prohlédnou změny v souboru web.config a pravidlo vyzkoušet.

Pokud migrujete existující aplikaci z Apache na IIS 7 a máte již hotová pravidla pro mod_rewrite, můžete tato pravidla naimportovat pomocí volby Import rules…

Import rewritovacích pravidel

Pak již stačí otevřít soubor s pravidly pro migrovanou aplikaci a provést import. Na následujícím obrázku je import .htaccess pro Drupal:

Import rewritovacích pravidel Drupalu

Nyní si ukážeme vytvoření vlastního modulu.

Jak si vytvořit vlastní modul?

Jednoduše. Stačí vytvořit třídu v .NET, která implementuje rozhraní System.Web.IHttpModule. Každý modul vstupuje do hry při vyvolání příslušné události IIS 7 serveru. Seznam událostí a jejich popis najdete v dokumentaci. Podle toho, kdy potřebujete do zpracování požadavku (HTTP requestu) vstoupit, si vyberete příslušnou událost, v které modifikujete požadavek podle potřeby. Nezapomeňte si uvědomit, že pokud v požadavku něco změníte, další modul dostane pouze změněný výsledek a nemá šanci zjistit původní verzi požadavku.

  1. Spusťte Visual Studio 2008 SP1
  2. Vytvořte webový projekt pro testování.
  3. Přidejte nový projekt typu Class Library do Solution.
  4. Přidejte referenci na knihovnu System.Web.
  5. Třída musí implementovat IHttpModule. Editor vám automaticky nabídne vytvoření metod rozhraní.
    Implementace IHttpModule
  6. V metodě Init (součást implementace rozhraní IHttpModule) si zaregistrujte příslušnou událost. Visual Studio vám opět pomůže s implementací handleru události:
    Metoda Init
  7. V kódu pro obsloužení události změňte požadavek dle potřeby.

Ukážeme si výpis ukázkového modulu SimpleUrlRewrite v jazyce C# (provádí jednoduchý rewrite URL naší aplikace):

using System;
using System.Text.RegularExpressions;
using System.Web;

namespace SimpleRewriteModule
{
    public class SimpleModRewrite : IHttpModule
    {
        Regex rx = new Regex("Kategorie/(.*).aspx", RegexOptions.IgnoreCase);

        public void Dispose() {}

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(context_BeginRequest);
        }

        void context_BeginRequest(object sender, EventArgs e)
        {
            // získání požadavku klienta
            HttpContext c = ((HttpApplication)sender).Context;

            Match m = rx.Match(c.Request.Path);

            if (!m.Success)
            {
                return;
            }

            string rewrite = rx.Replace(c.Request.Path, "Default.aspx?category=$1");
            c.RewritePath(rewrite);
        }
    }
} 

Testovací web musí mít nastavenu referenci na projekt s modulem. Do konfiguračního souboru pak stačí přidat odkaz na modul v sekci  <system.webServer>.<modules>.

<add name="SimpleRewriteModule" preCondition="managedHandler"
     type="SimpleRewriteModule.SimpleModRewrite"/> 

Generic Handler

Další zajímavou funkcí, která umožňuje snadno kombinovat PHP aplikace s ASP.NET, jsou tzv. GenericHandlers, které se používají typicky v situaci, kdy výstupem nemá být HTML, ale plain text, JSON apod. Jedná se o třídu, která implementuje rozhraní System.Web.IH­ttpHandler a je uložena v souboru s příponou ashx. Rozhraní IHttpHandler obsahuje metodu ProcessRequest, která je zavolána při spuštění handleru. Za obsah odpovědi jste v tomto případě komplet zodpovědní vy sami, proto musíte nastavovat i hlavičky HTTP odpovědi, zejména hlavičku Content-Type, abyste určili MIME odpovědi:

context.Response.ContentType = "text/xml"; 

Data zapisujete přímo do streamu odpovědi ( Response), který získáte z objektu HttpContext. Jednoduchá ukázka generování textového souboru:

public class Hello : IHttpHandler
{
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
} 

Závěr

PHP na IIS 7 funguje a jeho použití má svůj smysl. Snadno můžete kombinovat výhody PHP a ASP.NET a nejste omezeni jen na jednu platformu pro vývoj webových aplikací. Další užitečné informace najdete na oficiálních stránkách IIS a také bych vám doporučil článek Enhance Your Apps with the Integrated ASP.NET Pipeline z MSDN Magazine, v kterém najdete popis dalších modulů IIS 7 serveru a jejich možnou spolupráci s PHP aplikacemi.

Kód probíraný v článku si můžete stáhnout: IIS a PHP (ZIP 43352 bytů)


Autorem článku je Štěpán Bechynský, specialista pro vývojové nástroje ve společnosti Microsoft v České republice. Informace pro vývojáře také najdete na blogu odborníků z českého Microsoftu.

Provozovali byste PHP na IIS?

Komentáře

Subscribe
Upozornit na
guest
42 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
petr.steinbauer

Jen přidám hlášku pro only Windows správce. Testovací soubor má obsahovat toto:
<?php phpinfo(); ?>

Mireczech

Jde nejakym zpusobem menit opravneni prez ftp pomoci prikazu chmod nebo podobneho?

Anonymní

Sice to sem nepatri, ale jde do. Napr. ftp klientem v Totalcommanderu.
Pripojit se a pak Soubor -> Změna atributů.

Borek Bernard

Pěkný přehled. Jen bych dodal, že nejjednodušší cestou k instalaci různých modulů, ať už vestavěných (FastCGI apod.) nebo externích (např. URL rewrite) je Web Platform Installer: http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx

luki.sk

no a neni jednoduchsie nainstalovat apache + php na winshit?

Borek Bernard

Když vám na Windows serveru běží IIS s nějakými ASP.NET aplikacemi a chcete, aby PHP aplikace rovněž používala port 80 (a uživatel tak nemusel psát něco jako http://www.example.com:8080), instalace Apache se komplikuje. Apache pravděpodobně budete muset nainstalovat na nějaký volný port a IIS nakonfigurovat jako reverse proxy, která prozkoumá HTTP hlavičky a pro určité requesty je interně přesměruje na Apache. Toto vše je je potřeba podstoupit třeba pokud na serveru s IIS chcete provozovat Trac, ale pro běžné PHP aplikace funguje IIS dobře a konfigurace popsaná v článku je daleko jednodušší.

nbusr

nebo nastavit apache aby poslouchal na jiny ip nez iss :-) my gosh ….

Standa

Apache? Proboha. Když web server, tak lighttpd. Lama chce radit lamě.

Anonymní

Presne. Polovica sveta su lamy, lolo.

webdev

Mnohem vic nez polovicka, polovicka sveta jsou zeny :-)

dc

Celkom fajn clanok, akurat mi neni jasna vyhoda FastCGI oproti tomu ked nainstalujem PHP cez isapi modul.A co sa tyka mixovania roznych prostredi, pokial to neni vylozene nutne asi by som sa osobne radsej vyhol kombinovaniu .net + php.Uz beztak je v tom webdevelopmente dost bordel.

Borek Bernard

ISAPI je záležitost IIS verze 6 a starších, IIS7 používá moduly. I v IIS7 lze sice ISAPI filtry pomocí kompatibilního módu zprovoznit, ale proč to dělat, že, když FastCGI funguje spolehlivě.

jurasek

Co ma tohle spolecneho s provozovanim nebo propagaci Linuxu ?

texis

Nic – melo by? Nebo je nejake pravidlo ze na Zdrojaku musi byt jen veci tykajici se programovani na linuxu?

Martin Hassman

Ne, žádné takové pravidlo na tomto server opravu není.

Stefan

Tato stránka má v meta tagu "description" tento obsah

description" content="Denní zpravodajství ze světa Linuxu, Unixu, otevřeného software (Open Source) a svobodného software (Free Software). Tipy, triky, tutoriály, novinky a recenze.

Takže si na podobné komentáře přímo nabíháte ….

Martin Hassman

Meta tagy někdo ještě čte?

Každopádně správný postřeh, zrušíme je.

djanosik

Proč, vždyť to odpovídá. Článek se týká PHP.

Martin Hassman

Teď už ano, před chvílí jsme nasadili novou podobu textu.

Anonymní

LOL? Zeby googlebot?

Jarda

Jasně, že jo PHP je opensource a taky je to pěkně tutorial. PHP je scriptovací jazyk pro Linux??? :o)

Jinak díky za pěknej článek. Šikne se. Plno projektů děláme v PHP nad IIS a žádné výkonostní problémy nemáme, naopak se v rámci firmy vše jednoduše konfiguruje a spravuje (PHP má vlastní pool) a jednodušeji se pracuje s právy nad Windows a taky s NTLM.

Prostě bych to nezavrhoval, ono Apache nad windows je horší kombinace.

broukoid

Nemam nic proti serveru zdrojak, klidne si publikujte jak delat skvely activeX komponenty pro IE 8.0, ale CO TO MA DO PRDELE DELAT NA STRANKACH ROOT.CZ?
Proste a jednoduse – clanky ze zdrojaku na root.cz patrit muzou, pokud se nejak tykaj opensource technologii, ale zrovna tohle je proste mimo.

Martin Hassman

Tak my máme trochu jiný názor. Na Rootovi se tenhle článek objevil, protože se týká nasazení open source technologie PHP, byť v méně obvyklém kontextu. Články např. čistě o ASP.NET na Rootovi nepropagujeme, ale tenhle o PHP čtenáře Roota podle našich informací zajímá.

Navíc již z názvu i perexu je vidět, o co se jedná (o to se snažíme), takže pokud někoho tato okrajová oblast Roota nezajímá, je předem varován a nemusí na článek vůbec klikat.

Borek

Díky za tenhle článek, hodí se mi.

B.

Peter

Z mantinelov, čo sa do vás navážajú si nič nerobte.
Keď sa im nepáči, nech prevádzkujú vlastný web.
Ja som windowsák a predsa mám root v záložkách.
Informácia, že do IIS je fungujúci modul pre PHP mne osobne pomohla.
Veci okolo webu robím v PHP, Apache a MySQL a vôbec som neuvažoval, že intranetovú aplikáciu spravím v aspx. Uvažoval som nad možnosťou mať na WS2003 pararelne IIS, MSSQL, Apache a MySQL a samozrejme uvažoval som, ako riešiť dosiahnuteľnosť intranetových stránok v IIS aj Apache na porte 80. Teraz už nemusím :)

JumBo

Ja teda nechci polemizovat o tom, jestli sem clanek patri, nebo ne.
Ale at premyslim, jak premyslim nad popsanymi situacemi, proc pouzit radeji IIS nez cokoli jineho, tak mi prijde argumentace smesna az vykonstruovana. Pokud tedy pominu fakt, ze informacni hodnota clanku je pro me hodne rozporuplna (3 dotazy do googlu?).

D.A.Tiger

No abych se přiznal, mě ten článek nepřišel moc jako o PHP – jak je tu prezentováno – ale spíš jako IIS. A navíc jak kdyby byl opsán z nějakého propagačního letáku. Nedivte se pak, že na to čtenáři reagují tak jak na to reagují, ani mě se ten článek dvakrát nelíbyl.

D.A.Tiger

Můj profil tu nefunguje? Jak to, že je tedy použito mé celé jméno, přestože server evidentně zná můj nick? Mohu prosím požádat o jeho změnu? Děkuji

Martin Hassman

Stránku profilu si musíte založit. Stejně jako jste to pravděpodobně již udělal na jiných serverech Internet Infa.

D.A.Tiger

Pravda, spatně jsem to pochopil funguje přihlášení na všech portálech ii. Profil je na každém zvlášť. OK.

JR

Poslyšte: když už se nechcete znát ani k vlastnímu meta-tagu description a tak důsledně popíráte to, z čeho root vlastně vzešel, a jste již tak zoufale závislí na reklamě od M$, nechtěli byste náhodou v IInfu kompletně změnit název 'root.cz' na něco jiného? Vždyť žádný root na woknech neexistuje. Doporučuji 'administrator-msad.cz', nebo ještě lépe 'oss-na-windows-rulez.cz'; rozhodně by to vystihovalo lépe to, co tu poslední dobou předvádíte. Myslel jsem si, že M$ má dost peněz na to, aby si reklamu, jakou je tento článek, zaplatil na webech, které jsou tematicky zaměřené na jeho vlastní software (vždyť na to má – anebo ne?), ale vy mu asi musíte dělat nabídku, kterou nelze odmítnout, jinak si nedokážu vysvětlit, že články tohoto typu prohlašujete za propagaci open source… Zkrátka, děláte Stevovi radost; je mi z toho smutno. A nebojte, na odkaz k tomuto článku jsem původně kliknul, protože jsem si naivně myslel, že jde o žert, a ne o vtíravou reklamu M$. Nebojte, už mizím… Snad jen poslední poznámka: to varování nějak nevidím; můžete mi, prosím, na něj poslat odkaz?

Láďa

Vždycky mě fascinují lidi, kteří nejsou schopní využít svého práva NEČÍST ČLÁNEK, KTERÝ SE JIM NELÍBÍ a potom to ventilují v diskuzích :-)

dc

hmm potom mam otazocku preco Linux (alebo poniektory "Lixnuaci") potrebuje napriklad wine? Sak maju svoje linuxacke aplikacie tak naco sa seru s blbymi windows app.Preco ma Linux (distribucie) potrebu kopirovat veci z ostatnych systemov na jednej strane a na druhej sa tvarit ako jedinecna platforma? Nechcem flame je to len rekacia na prvu poznamku.

broukoid

a flame ale mit budes ;)
nejde o zadne kopirovani nebo "svoje linuxacke aplikace". Jde o sw ktery dela nejaka firma a dela ho jenom pro windows. A nekdo kdo windows nema nebo mit nechce by ale chtel ten sw pouzivat (nebo dokonce ten sw pouzivat musi), a tak mu nezbejva nez pouzit neco jako wine.
Nerika to nic o tom jestli je linux lepsi nebo windows lepsi, proste nekterej sw je jenom pro windows. A jedinej kdo za to "muze" je firma co ho dela.

A samozrejme to plati i naopak. Je dost sw pro unix-like systemy kterej pod windows nespustis. No a lidi si proto porizujou treba Cygwin a poustej to pod tim. Takze v tomhle pripade bys mohl svou argumentaci presne obratit a rikat proc ti windowsaci pouzivaj cygwin kdyz maj ty svoje windowsi aplikace proc se seru s blbejma linuxackejma…

no a dotazeno do extremu – muzes se divit lidem co maj mobilniho operatora A proc telefonujou na telefony operatora B, kdyz maj svou A-sit tak proc se serou s blbou B-siti.. no a odpoved je, ze jim vyhovuje operator A, nicmene se chtej bavit i se svejma kamaradama co maj B, nebo treba musej volat do firmy kde maj jenom operatora B.

Anonymní

+1

nbusr

eh, takhle se s tim srat bych chapal tak pet let zpatky. dneska v dobe virtualizace pustis windows s iss a .NET ve virtualu a stejne tak linux s apache a php. Provozovat php na windows je sice uplne z jinych duvodu ale podobna blbost jako .NET aplikace na apache s mono

Ded Kenedy

tento clanek ukazuje jeden z bajecnych rysu GUI. aby autor popsal par trivialnich nastaveni, musi clanek obsahovat tunu screenshotu.

//R

Je běžné, že do wwwroot dáváte plná oprávnění uživateli Everyone?

Krtek

Nechci snizovat vyznam tohoto clanku, ale davam vam k zamysleni svou oblibenou metodu. K nasazeni jednoduche jednoucelove (nejen webove) linuxove aplikace na Windows serveru se da pouzit velice elegantne VMware Server (imho zdarma). Resil jsem tak mimo jine i obsluhu GSM modulu pres RS232 (VMware umi celkem spolehlive zprostredkovat hardwarove prostredky – a to vcetne USB zarizeni).

Zakaznikovi nainstalujete VMware Server, zkopirujete image virtualniho pevneho disku, spustite a mate hotovo. Zadna ohavna konfigurace IIS… Veskere konfigurovani provedete jednou a pak uz jen u zakazniku instalujete a instalujete…

Good luck

Martin Hassman

Naopak, vždy rádi vidíme doplňující postupy, jak danou úlohu řeší někdo jiný.

Anonym

Díky za článek.
Zajímalo by mě jaká práva musí mít účet pod kterým je Application pool, aby mi to pustilo php skript. Musím mít přesně definovaná práva, nic navíc. Už vůbec ne admin apod :)
Děkuji za případné info.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.