Windows VPSInstall IIS on a Windows Server VPS (Guide)
Guide to installing and configuring IIS on a Windows Server VPS at Lordhosting: enabling via PowerShell, creating a website, hosting multiple sites, PHP and HTTPS.
IIS (Internet Information Services) is the web server built into Windows Server. It hosts static sites, ASP.NET or PHP applications, and acts as a reverse proxy. This guide installs it and configures a first site on a Windows Server VPS at Lordhosting, from the command line as well as the graphical interface.
⚙️ Requirements
- A Lordhosting VPS running Windows Server (2019, 2022 or 2025)
- RDP (Remote Desktop) access with an administrator account
- Optional: a domain name pointing to the VPS IP for HTTPS
⚙️ 1. Enable IIS via PowerShell (recommended)
Open PowerShell as administrator and install the role in one command:
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
The graphical method is still possible via Server Manager → Add Roles and Features → Web Server (IIS), but PowerShell is faster and reproducible.
⚙️ 2. Verify the installation
Check that the server responds:
Invoke-WebRequest http://localhost -UseBasicParsing | Select-Object StatusCode
A 200 code confirms IIS is serving the default page. From an external browser, http://your_ip should show the IIS welcome page.
The Windows firewall may be blocking port 80. Allow it: New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow.
⚙️ 3. Create a website
Create the site folder, then declare it in IIS:
New-Item -Path "C:\inetpub\mysite" -ItemType Directory
Set-Content "C:\inetpub\mysite\index.html" "<h1>My site on IIS</h1>"
New-Website -Name "MySite" -Port 8080 -PhysicalPath "C:\inetpub\mysite"
The site is reachable at http://your_ip:8080. You can also manage it visually in IIS Manager (inetmgr).
⚙️ 4. Host multiple sites
To serve several domains on port 80, use host header bindings:
New-Website -Name "SiteA" -Port 80 -HostHeader "a.yourdomain.com" -PhysicalPath "C:\inetpub\siteA"
New-Website -Name "SiteB" -Port 80 -HostHeader "b.yourdomain.com" -PhysicalPath "C:\inetpub\siteB"
Each site automatically gets its own application pool, which isolates the processes: a site that crashes does not affect the others.
⚙️ 5. Install PHP (optional)
To serve PHP applications, install PHP then the FastCGI module:
Install-WindowsFeature Web-CGI
Download PHP (the Non-Thread-Safe build) from windows.php.net, unzip it into C:\PHP, then in IIS Manager open Handler Mappings → Add Module Mapping to map *.php files to php-cgi.exe.
⚙️ 6. Configure HTTPS
The simplest way to get a free certificate is win-acme (Let's Encrypt for Windows):
# Download win-acme from https://www.win-acme.com/ then run:
.\wacs.exe
The wizard detects your IIS sites, obtains the certificate and creates the HTTPS binding (port 443) automatically, with scheduled renewal.
✅ Conclusion
IIS is installed, serves one or several sites, and can handle PHP as well as HTTPS. To automate backups and restarts, continue with our Windows Scheduled Tasks guide.
Need a high-performance Windows server? Our Windows VPS are delivered in minutes with RDP included and full administrator access.
❗Always good to know

