Webbstackar

Webbstackar

IIS, MySQL & PHP - Installationsguide (Windows 10)

Obs: Du måste vara inloggad i ett konto med administratörsrättigheter medan du utför anvisningarna i den här guiden.

För att slippa en krånglig konfiguration, börja med att ladda ner och installera den utmärkta textredigeraren Notepad++.

Installera IIS 10

Högerklicka på Windows-ikonen i aktivitetsfältet.

Fr.o.m Windows 10 version 1703 har alternativet Kontrollpanelen ersatts av alternativet Inställningar i menyn som öppnas när du högerklickar på Windows-ikonen i aktivitetsfältet. Kontrollpanelen finns dock kvar och det är enkelt att öppna dess startsida; i menyn som öppnas när du högerklickar på Windows-ikonen i aktivitetsfältet klickar du på alternativet Kör, skriv control i Öppna-textfältet och klicka på OK.

Gå till: Kontrollpanelen > Program > Program och funktioner.

Klicka på Aktivera eller inaktivera Windows-funktioner i navigeringslisten till vänster. Vänta tills listan med funktioner laddats klart.

Klicka i checkrutan vid Internet Information Services för att välja funktionen.

Expandera Internet Information Services genom att klicka på plustecknet till vänster om checkrutan.

Expandera World Wide Web-tjänster.
Expandera Programutvecklingsfunktioner.
Klicka i checkrutan vid CGI för att välja funktionen.

Expandera Webbhanteringsverktyg.
Klicka i checkrutan vid IIS-hanteringskonsol för att välja funktionen.

Klicka på OK.

Vänta medan Windows utför ändringar i funktioner.

Testa installationen:

Starta en webbläsare, skriv 127.0.0.1/ i adressfältet och tryck Enter. Om allt fungerar visar webbläsaren IIS 10:s välkomstsida.

Installera MySQL 5.7.20 (64-bitars)

Gå till: http://dev.mysql.com/downloads/

Klicka på länken MySQL Community Server.
Scrolla ner till sektionen MySQL Community Server 5.7.20
Om alternativet inte är förvalt, välj Microsoft Windows i Select Platform drop-downmenyn.
I listan med filer tillgängliga för nedladdning, klicka på Download-knappen vid alternativet Windows (x86, 64-bit), ZIP Archive.
Klicka på länken No thanks, just start my download (länken finns nedanför Login / Sign Up-knapparna).
När nedladdningen är klar, stäng nedladdningsfönstret/listen och gå till mappen där mysql-5.7.20-winx64.zip sparats.
Packa upp mysql-5.7.20-winx64.zip och kopiera mappen mysql-5.7.20-winx64 till C:\.

Skapa en knutpunkt till mysql-5.7.20-winx64:

Starta Kommandotolken (högerklicka på Windows-startknappen, klicka på alternativet Kommandotolken) och kör följande kommandon:

cd \
C:\>mklink /J mysql mysql-5.7.20-winx64

Stäng Kommandotolken.

Skapa och redigera konfigurationsfilen my.ini:

Öppna textredigeraren Notepad++, skapa en ny fil och spara den som my.ini (Filformat: All types(*.*)) i mappen mysql-5.7.20-winx64.

I mappen mysql-5.7.20-winx64, skapa en ny mapp och döp den till uploads

I den nya filen my.ini, redigera sektionen [mysqld] så innehållet i sektionen stämmer överens med exemplet nedan.

basedir = "C:\\mysql-5.7.20-winx64"
datadir = "C:\\mysql-5.7.20-winx64\\data"
port = 3306
server_id = 1

explicit_defaults_for_timestamp
secure_file_priv = "C:\\mysql-5.7.20-winx64\\uploads"

Spara ändringarna och stäng Notepad++.

Mer info om my.ini: Creating an Option File (MySQL Server Documentation)

Initiera mysql-5.7.20:

Kör Kommandotolken som administratör och kör följande kommandon.

cd \
cd mysql-5.7.20-winx64\bin
C:\mysql-5.7.20-winx64\bin>mysqld --defaults-file=C:\mysql-5.7.20-winx64\my.ini --initialize-insecure

Parametern --initialize-insecure innebär att MySQL-servern initieras utan att ett lösenord skapas för root-kontot.

Vänta tills operationen slutförts. Det kan ta en stund.

Testa installationen:

För att starta MySQL-servern, kör följande kommandon i Kommandotolken:

cd \
C:\>cd mysql\bin
C:\mysql\bin\>mysqld --console

Om ett fönster med en säkerhetsvarning visas, tillåt mysqld att kommunicera i privata nätverk och klicka på Tillåt åtkomst-knappen för att fortsätta.

Starta en ny instans av Kommandotolken så att ett nytt Kommandotolken-fönster öppnas. Arbeta med MySQL i det nya fönstret. För att logga in i MySQL-servern, kör följande kommandon:

cd C:\mysql\bin
C:\mysql\bin\>mysql -u root -p

Eftersom inget lösenord för root-kontot har skapats ännu, tryck bara Enter vid raden Enter password:

Om allt fungerar ska du ny vara inloggad och vid MySQL-prompten:

mysql>

Vid MySQL-prompten, kör följande kommando:

show databases;

Du borde se något som liknar detta:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

Skapa ett lösenord för root-kontot

Vid MySQL-prompten, kör något av följande kommandon (byt ut password mot det lösenord du vill använda):

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

eller

ALTER USER USER() IDENTIFIED BY 'password';

Mer info: https://dev.mysql.com/doc/refman/5.7/en/assigning-passwords.html

Nästa gång du använder kommandot

mysql -u root -p

för att logga in, använder du det nya lösenordet.

När du är klar, kör följande kommando vid MySQL-prompten:

exit;

Detta loggar ut dig från servern. Stäng Kommandotolkenfönstret.

Aktivera det Kommandotolkenfönster i vilket du startade MySQL-servern och tryck ner tangenterna Ctrl+C för att stänga av MySQL-servern.
När servern stängts av kan du stänga Kommandotolkenfönstret.

Om du inte vill starta MySQL-servern manuellt varje gång databasen ska användas kan du installera MySQL-servern som en Windows-tjänst.

För att göra detta; kör Kommandotolken som administratör och följ därefter exemplet nedan.

cd \
cd mysql-5.7.20-winx64\bin
mysqladmin -u root shutdown
mysqld --install

Tjänsten MySQL installeras. När installationen är klar får du ett meddelande om att installationen lyckats.
Nu måste du starta tjänsten manuellt.

För att starta tjänsten, kör följande kommando i Kommandotolken:

net start MySQL

Hädanefter kommer tjänsten att starta automatiskt varje gång du startar datorn.

Installera PHP (64-bitars)

OBS: För att PHP 7.2.0 ska fungera krävs att du har Visual C++ Redistributable for Visual Studio 2017 (64-bitarsversionen) installerat.

Visual C++ Redistributable for Visual Studio 2017-installationsfilen (vc_redist.x64.exe) hittar du här:
Visual C++ Redistributable for Visual Studio 2017
Visual C++ Redistributable for Visual Studio 2017

I rullgardin-menyn Select Language är alternativet engelska (English) förvalt. Välj det alternativet.

Ladda ner och packa upp php-7.2.0-nts-Win32-VC15-x64.zip

Gå till: http://windows.php.net/download/

I PHP 7.2 (7.2.0)-sektionen, klicka på Zip-länken i VC15 x64 Non Thread Safe-subsektionen.
Ladda ner filen php-7.2.0-nts-Win32-VC15-x64.zip.
Skapa en ny mapp under C:\ och döp mappen till php.
I mappen till vilken du laddat ner php-7.2.0-nts-Win32-VC15-x64.zip, skapa en ny mapp, ge den namnet php-7.2.0 och kopiera php-7.2.0-nts-Win32-VC15-x64.zip dit.
Packa upp php-7.2.0-nts-Win32-VC15-x64.zip i mappen php-7.0.1 och kopiera filerna till C:\php.

Redigera php.ini

I mappen C:\php folder finns en fil med namnet php.ini-production. Döp om den till php.ini.
Klicka Ja för att godkänna att namnet ändras.
Starta Notepad++ och öppna php.ini-filen.
I sektionen Paths and Directories, sätt sökvägen för doc_root till "C:\Inetpub\wwwroot" sökvägen för extension_dir till "C:\php\ext":

doc_root = "C:\Inetpub\wwwroot"
extension_dir = "C:\php\ext"

I sektionen Paths and Directories, ställ även in cgi.force_redirect, cgi.fix_pathinfo, fastcgi.impersonate och fastcgi.logging enligt exemplen nedan. Dessa inställningar styr hur FastCgiModule hanterar PHP-förfrågningar.

cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
fastcgi.logging = 0

För att aktivera stöd för MySQL, avkommentera följande rad i sektionen Dynamic Extensions:

;extension=mysqli

I sektionen Module Settings, sätt date.timezone till den tidszon som bäst motsvarar din geografiska placering (t.ex Europe/Stockholm). För en lista över de tidszoner som kan användas, gå till http://php.net/manual/en/timezones.php

date.timezone = "Europe/Stockholm"

Spara ändringarna och stäng Notepad++.

Lägg till stöd för PHP i IIS

Högerklicka på Windows Start-knappen.

Klicka på alternativet Kör, skriv inetmgr i textfältet och klicka på OK. Internet Information Services (IIS)-hanteraren öppnas.

I Internet Information Services (IIS)-hanterarenfönstret, dubbelklicka på Hanteramappningar.
I den högra navigeringslisten (Åtgärder), klicka på länken Lägg till modulmappning...

I Lägg till modulmappning-fönstret:
Skriv *.php i Sökväg för begäran-textfältet.
Öppna Modul-drop downmenyn and och klicka på FastCgiModule för att välja den modulen.
Klicka på Bläddraknappen vid Körbar fil (tillval) och gå till C:\php.
I Öppna-fonstret, öppna drop down-menyn för filtyp och klicka på (*.exe) för att välja den filtypen.
Klicka på php-cgi för att välja den filen och klicka sedan på Öppna-knappen.
I Namn-textfältet, döp modulmappningen till något beskrivande, som PHP7-FastCgi (det kommer att bli phpmodulens namn i Handler Mappings module list). Klicka på OK.
Om det visas en förfrågan om du vill skapa ett FastCGI-program för den körbara filen, klicka Ja.

I listan över Hanterarmappningar, klicka på PHP7-FastCgi för att markera modulen.
I den högra navigeringslisten (Åtgärder), klicka på länken Redigera...
Klicka på knappen Begränsningar för begäran.
Under fliken Mappning, klicka i checkrutan vid Anropa hanterare endast om begäran mappas till: för att välja funktionen.
Klicka sedan i radioknappen Fil eller mapp för att välja det alternativet.
Klicka på OK.
Klicka på OK.

Om det visas en förfrågan om du vill skapa ett FastCGI-program för den körbara filen, klicka Ja.

Följande steg i guiden utgår från att du använder webbplatsen Default Web Site.

Återanvänd programpool

I Internet Information Services (IIS)-hanterarenfönstret, i den vänstra kolumnen (Anslutningar):
Klicka på pilen till vänster om servernamnet för att visa underkategorierna.
Klicka på pilen till vänster om Webbplatser för att visa de webbplatser som finns på IIS-servern.
Klicka på Default Web Site för att markera den webbplatsen.
I den högra navigeringslisten (Åtgärder), klicka på länken Avancerade inställningar...
Kontrollera vilken programpool webbplatsen använder (standard är DefaultAppPool).
Klicka på OK för att stänga Avancerade inställningar-fönstret.
I den vänstra kolumnen (Anslutningar), klicka på Programpooler. En lista över de programpooler som finns på IIS-servern visas i mitten av (IIS)-hanterarenfönstret.
Klicka på den programpool Default Web Site använder.
I den högra navigeringslisten (Åtgärder), klicka på Återanvänd...

Testa installationen

Starta Notepad++ och kopiera in följande:

<?php
phpinfo();
?>

Döp dokumentet till phpinfo.php (var noga med att välja Alla filer som filtyp så att filen inte får dubbla filändelser) och spar dokumentet in din användarmapp. Kopiera sedan phpinfo.php till C:\Inetpub\wwwroot. Du behöver godkänna att filen kopieras till C:\Inetpub\wwwroot. Klicka på Fortsätt när du bli ombedd.

Starta en webbläsare och skriv in sökvägen till filen i webbläsarens adressfält (ex: 127.0.0.1/php/phpinfo.php).
Om allt fungerar ska information om din PHP-installation visas i webbläsarfönstret.

En påminnelse: För att webbservern ska kunna nås från andra datorer i ditt LAN, behöver du konfigurera Windows brandvägg så att den tillåter inkommande HTTP-trafik. När man arbetar med IT-relaterade grejor, händer det då och då att man glömmer det mest uppenbara. :) OK:

Högerklicka på Windows-startknappen.

Gå till: Kontrollpanelen > System och säkerhet > Windows-brandväggen.
Klicka på Avancerade inställningar i den vänstra navigeringslisten.
I fönstret Windows-brandväggen med avancerad säkerhet, klicka på Regler för inkommande trafik i den vänstra navigeringslisten.
Vänta medan listan laddas.
Scrolla ner till regeln World Wide Web Services (inkommande HTTP-trafik), (World Wide Web Services (HTTP), Privat).
Klicka på regeln för att välja den.
Högerklicka på regeln och klicka på Aktivera regel i menyn som öppnas.
När regeln har aktiverats (Aktiverad-status är Ja), stäng fönstret Windows-brandväggen med avancerad säkerhet.
Stäng fönstret Windows-brandväggen.

Klart! :)