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.