Windows Server RS3: IIS Incontra Apache

Windows Server

Con l’implementazione del Windows Subsystem for Linux, molti interessanti e nuovi scenari si apriranno per gli amministratori IT. Uno di questi è sicuramente la possibilità di utilizzare IIS ed Apache nello stesso contenitore. Ovviamente Apache è già disponibile per Windows ma in questo caso la logica è quella di sfruttare la sua base nativa, ovvero Linux. In questo articolo andremo a vedere come configurare Internet Information Services ed Apache, su Linux, all’interno di Windows Server RS3.

Installazione IIS

Per installare IIS, utilizzate questi comandi:

Install-WindowsFeature -Name NET-Framework-45-ASPNET

Install-WindowsFeature -Name Web-Server,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-Static-Content,Web-Http-Redirect,Web-Health, Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Performance,Web-Stat-Compression,Web-Security,Web-Filtering,Web-Basic-Auth,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext,Web-Net-Ext45,Web-Asp-Net,Web-Asp-Net45,Web-CGI,Web-ISAPI-Ext,Web-ISAPI-Filter

Verificate che tutto sia funzionante, aprendo l’indirizzo IP della macchina via browser, come mostrato nella figura 1.

Figura 1 – IIS Operativo

Creazione Sito Web in IIS

A seconda della confidenza che avete con PowerShell, potete lavorare via riga di comando oppure via Windows Explorer per copiare i contenuti dei file dentro il web server – figura 2.

Figura 2 – Remote Folders

Create la nuova cartella e caricate i file web; successivamente create il nuovo sito all’interno di IIS, attraverso questo comando:

New-IISSite -Name “Inside Tech Lab” -PhysicalPath “C:\inetpub\wwwroot\InsideTechLab\” -BindingInformation “*:80:www.insideweb.net” -Verbose

Il record www.insideweb.net deve essere presente all’interno del vostro host file oppure nel DNS Server. Lanciate il browser per testare quanto appena fatto – figura 3.

Figura 3 – Sito Operativo in IIS

Installazione Apache

Per questo articolo utilizzo Ubuntu. Se volete conoscere come installare e configurare il WSL, potete leggere questo articolo.

Per semplificare alcune operazioni, anche in ottica futura, utilizzo tasksel che serve per installare l’intero stack LAMP (Linux Apache MySQL PHP).

apt install tasksel

tasksel install lamp-server

Verificate lo stato di Apache, tramite il comando service apache2 status, e nel caso eseguite il comando service apache2 start per avviarlo.

Configurazione Firewall

Due motori web possono coesistere nella stessa macchina ma ovviamente non possono rispondere sulla stessa porta e questo può essere aggirato partendo dalla configurazione del firewall. In questo caso andremo ad impostare la porta 81 per assegnare le chiamate fatte per Apache. Il comando per fare questo è il seguente:

New-NetFirewallRule -Name “Custom Apache HTTP 81″ -DisplayName ” Apache 81″ -Protocol TCP -LocalPort 81 -Action Allow

Configurazione Apache

Per fare in modo che Apache risponda sulla porta 81, è necessario riconfigurare il file /etc/apache2/ports.conf e cambiare la variabile Listen da 80 ad 81, come mostra la figura 4.

Figura 4 – Cambio Porta

L’ultimo step è quello di configurare il default site. Prima di farlo è necessario eliminare il binding tramite il comando a2dissite 000-default.conf; una volta fatto lanciate il comando nano /etc/apache2/sites-available/000-default.conf e modificate la variabile VirtualHost in *:81, come mostra la figura 5.

Figura 5 – Cambio VirtualHost

Eseguite il comando a2ensite 000-default.conf ed anche service apache2 restart per applicare le modifiche. Lanciate il browser per testare quanto appena fatto – figura 6.

Figura 6 – Apache Operativo

Creazione Sito Web in Apache

Ricordate che Linux non è Windows e che alcuni passaggi è sempre meglio farli via bash, come la creazione della cartella e l’assegnazione dei permessi:

mkdir -p /var/www/ insidetechlab

chown -R www-data:www-data /var/www/insidetechlab

Il contenuto del sito può essere copiato via bash oppure tramite Windows Explorer (\\10.10.1.62\c$\Linux\Ubuntu\rootfs\var\www).

Duplicate il file di configurazione 000-default.conf tramite il comando cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/insidetechlab.conf e modificatelo andando ad aggiungere le seguenti variabili:

ServerName www2.insideweb.net

ServerAlias www2.insideweb.net

DocumentRoot /var/www/insidetechlab

Figura 7 – Personalizzazione site.conf

Lanciate il comando a2ensite insidetechlab.conf e riavviate apache per applicare le modifiche – figura 8.

Figura 8 – Sito Operativo in Apache

Conclusioni

La possibilità di usare IIS ed Apache, in ambiente Linux, è sicuramente una grande cosa che offre la possibilità di semplificare l’infrastruttura IT, riducendo i costi di gestione ed anche quelli hardware.