Server components, PHP and .NET
The software websites run on is managed under Tools & Settings › Server Components. Downloads come from the vendors and are checked against published checksums or Microsoft signatures before they run. PHP versions and their php.ini files have their own page, and ASP.NET and application pools have theirs.
Server Components#
Go to Tools & Settings › Server Components (also reachable from Add or remove components on Home). Components are grouped:
| Group | Components |
|---|---|
| Web server | Internet Information Services (managed by the installer), IIS URL Rewrite 2.1, Microsoft Visual C++ 2015-2022 Redistributable (x64) |
| DNS | Microsoft DNS Server |
| FTP | Microsoft FTP Service |
| Publishing | Web Deploy 4.0 |
| Scripting | PHP, .NET Framework and ASP.NET 4.x (part of Windows), ASP.NET Core Hosting Bundle, Node.js, iisnode |
| Developer tools | Git for Windows, Composer, WP-CLI |
| Databases | MariaDB Server, Microsoft SQL Server Express, phpMyAdmin |
| MailEnable Standard, Roundcube Webmail | |
| Security | ModSecurity for IIS with OWASP Core Rule Set |
| Panel | StackRegent SQL Server (MariaDB), the panel's own database |
Each row shows the Installed version and the Available versions.
To install or update a component:
- Click Check for new versions. The panel reads the vendors' release lists; the page shows when they were last read.
- Click Install next to an available version, or Update when a newer build of an installed version exists.
- The job runs as a task. Follow it in the Task Manager; it can take a few minutes.
To remove a component, click Remove and confirm. Websites that need it stop working until it is installed again. Components shown as "Managed by Windows or the installer" cannot be installed or removed here.
Some components need others first: PHP needs the Visual C++ runtime, iisnode needs URL Rewrite, and Composer, WP-CLI, phpMyAdmin and Roundcube need PHP.
PHP, ASP.NET Core Hosting Bundle and Node.js can be installed in several versions side by side. For PHP and Node.js the page shows how many websites use each version.
PHP Settings#
Go to Tools & Settings › PHP Settings. Every website runs PHP through FastCGI as its own Windows user, with a php.ini built from the server-wide file of its version plus the website's own settings. The builds are the non-thread-safe x64 builds from windows.php.net.
Install or update a PHP version#
- Under Available from windows.php.net, click Check to read the release list.
- Click Install next to a branch, or Update to followed by the version for an installed branch.
Manage installed versions#
The Installed versions table shows each version, its folder and the number of websites using it.
- Offered to websites – untick to hide a version from website settings without removing it.
- php.ini – opens the server-wide php.ini of that version.
- Remove – deletes the version's folder. It is unavailable while websites use the version.
Edit the server-wide php.ini#
- Click php.ini next to a version.
- Edit the file.
- Click Save and update websites.
New PHP versions are installed with disable_functions set to the functions that start programs or shells (exec, passthru, shell_exec, system, popen, proc_open and its helpers), plus show_source, dl, pcntl_exec, symlink and link. Uploaded web shells rely on these; ordinary sites do not (WordPress and PHPMailer check for them and use other ways). Websites cannot change disable_functions. Composer, WP-CLI and Laravel Artisan started from the panel run without this restriction. To allow a function on the whole server, remove it from the line here and click Save.
Website settings are added after these lines, so a value set on a website wins over the same directive here. Websites choose their PHP version and values under their own PHP Settings tool.
ASP.NET Settings#
Go to Tools & Settings › ASP.NET Settings.
Installed runtimes shows the detected .NET Framework (ASP.NET 4.x) versions and ASP.NET Core Hosting Bundle versions. ASP.NET 4.8 is enabled by the StackRegent installer.
Below it are the values new websites start with. Websites that changed a value keep their own.
| Group | Settings |
|---|---|
| web.config | Manage these settings in the website's web.config |
| Errors and debugging | Custom errors, Default error page URL, Compile with debugging |
| Security | Code access security trust level, Authentication mode |
| Globalization | Request encoding, Response encoding, File encoding, Culture, UI culture |
| Session | Session state mode, Session timeout, Session cookies |
Click Save. Connection strings and application settings are set per website under its ASP.NET Settings tool.
ASP.NET Core#
Install one or more versions of ASP.NET Core Hosting Bundle under Server Components. It adds the .NET runtime and the IIS ASP.NET Core Module. The installed versions then appear on the ASP.NET Settings page.
Node.js and iisnode#
- Under Server Components, install IIS URL Rewrite 2.1 (if it is not installed yet), then iisnode.
- Install one or more Node.js LTS versions. They are placed side by side.
- On a website, open the Node.js tool to run the application. iisnode runs it in the website's application pool, and requests for files that do not exist go to the startup file.
Git, Composer and WP-CLI#
| Component | Used by |
|---|---|
| Git for Windows | The Git tool of websites: pull from GitHub, GitLab or any server, or push to a repository the panel hosts. |
| Composer | The PHP Composer tool of websites and the Laravel tool. |
| WP-CLI | The WordPress Toolkit, to install, update and secure WordPress. |
Install them under Server Components. Composer and WP-CLI need PHP.
IIS Application Pools#
Go to Tools & Settings › IIS Application Pools. Every subscription runs in its own application pool under its own Windows user. Pool limits come from the Performance tab of the service plan.
The list shows each pool with its pipeline, State, .NET CLR version, Websites and Worker processes, and refreshes every 10 seconds. Use the search box to find a pool or website.
- Recycle restarts a running pool's worker processes.
- Stop stops a pool; its websites stop answering.
- Start starts a stopped pool.
Troubleshooting#
| Problem | What to do |
|---|---|
| "Check for new versions first" in the Available column | Click Check for new versions. |
| "Some release lists could not be read" | The server could not reach a vendor's site; check outbound HTTPS and try again. |
| Remove is greyed out for a PHP version | Websites still use it; move them to another version first. |
| A php.ini change has no effect on a site | The website sets the same directive itself; check its PHP Settings. |
| A website shows errors after a pool was stopped | Click Start on its pool. |
Related#
- Installation
- Security (ModSecurity)
- Mail server (MailEnable, Roundcube)
Something missing? Ask in the community or open a ticket.