Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstalliTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
To install SilverStripe on a VPS, provision PHP 8.1–8.3 with the required extensions, install the project with Composer, point your web server at the project’s public/ directory, create a root-level .env file, build the database, and then complete the setup at /admin. The public/ boundary is a security requirement: application code, configuration, and Composer’s vendor/ directory must remain outside the webroot.
What you need before installing
SilverStripe CMS 5.2 and later currently supports PHP 8.1, 8.2, and 8.3. Current Silverstripe CMS server-requirements documentation (accessed in 2026) specifies a minimum PHP memory_limit of 48M. For a real site, choose a VPS size based on expected traffic, uploaded-asset volume, scheduled jobs, and database workload; no universal CPU, RAM, or storage figure is established by the platform documentation.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →| Component | Requirement or supported choice | Why it matters |
|---|---|---|
| PHP | 8.1–8.3 for SilverStripe CMS 5.2+ | Unsupported PHP versions can prevent Composer installation or produce runtime errors. |
| PHP extensions | ctype, dom, fileinfo, hash, intl, mbstring, session, simplexml, tokenizer, and xml |
Core framework and module functionality depends on these extensions. |
| Image processing | Either gd or imagick |
Required for image manipulation and thumbnail generation. |
| Database connector | A PHP connector for the database engine you select | Allows the installer and application to connect to the database. |
| Database engine | MySQL or MariaDB are the built-in commercially supported options. PostgreSQL, SQL Server, and SQLite are third-party or community-supported choices. | Support level affects troubleshooting and module compatibility. |
| Dependency manager | Composer 2 | SilverStripe is installed and upgraded through Composer. |
| Web server | Apache or Nginx with PHP-FPM | All requests must be routed to public/index.php. |
You also need a domain or temporary hostname, SSH access with a non-root deployment account, DNS pointed at the VPS, and a database plus database user. Install TLS before exposing an administrator login to the public internet.
Choose Apache or Nginx
Both servers can run SilverStripe. Apache’s quick-start path is simpler because the project includes public/.htaccess and public/assets/.htaccess; Apache must have mod_rewrite enabled and permit those files with an appropriate directory override policy. Nginx does not read .htaccess, so its configuration must express equivalent routing and file-security rules explicitly.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
| Deployment concern | Apache | Nginx |
|---|---|---|
| URL rewriting | Uses the supplied public/.htaccess with mod_rewrite. |
Uses try_files and an explicit fallback to index.php. |
| PHP execution | Normally connects to PHP through the distribution’s PHP handler or PHP-FPM integration. | Requires a PHP-FPM upstream or Unix socket in fastcgi_pass. |
| Asset handling | The supplied assets rules help route and protect uploaded files. | Add an explicit assets location; return 404 for files that do not exist and pass non-file paths to the framework. |
| Reverse proxy and TLS | Configure proxy headers and TLS in the virtual host or upstream proxy. | Configure the same headers, TLS settings, and trusted proxy behavior in the server block or proxy. |
| Automation | Configuration is familiar where Apache is already standard. | Explicit configuration is highly reproducible, but every rule must be maintained in deployment files. |
Prepare the VPS
1. Create an application account and directory
Use a dedicated account for the site rather than running Composer or deployment scripts as root. Pick a directory such as /var/www/my-project and make the account that owns the release files distinct from the web-server service account when your operating system supports that arrangement. The web-server account will need read access to the public tree and write access only where SilverStripe must generate files.
2. Install the PHP runtime and extensions
Use your VPS distribution’s package manager to install PHP 8.1, 8.2, or 8.3, the PHP-FPM service if you select Nginx, Composer 2, and every extension in the requirements table. Confirm the command-line PHP version and loaded modules before creating the project. A mismatch between the PHP binary used by Composer and the PHP-FPM binary used by the web server is a common cause of “works in SSH, fails in browser” errors.
Set memory_limit to at least 48M. That is the documented minimum, not a performance recommendation; image-heavy sites, large imports, and complex modules may require more memory after observing real workload behavior.
3. Create the database and credentials
Create an empty database and a dedicated user with a strong, unique password. Grant that user the permissions needed by the application on its own database. Record the exact database name, server hostname, username, and password; they will be placed in the root-level .env file. If the database is on another host, confirm firewall rules, TLS requirements, and the hostname that PHP must use instead of localhost.
Install SilverStripe with Composer
Change to the directory in which the application should live and run the official project-creation command:
composer create-project silverstripe/installer my-project
Composer creates my-project, resolves the framework and module dependencies, and places managed packages in vendor/. Do not move vendor/ into the public directory. If Composer stops because an extension or PHP version is missing, correct the runtime rather than forcing the install with an ignore-platform option; bypassing platform checks can leave an application that cannot run under PHP-FPM.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
After the command completes, the important layout is:
my-project/public/— the only directory that should be exposed by the web server.my-project/public/index.php— the front controller for rewritten requests.my-project/public/assets/— generated and uploaded public assets.my-project/app/, configuration, and other application files — kept above the public boundary.my-project/vendor/— Composer-managed dependencies, also above the public boundary.
Configure the environment and database
In the project root, create a file named .env. It must be next to the project’s application files, never inside public/. Restrict its permissions so ordinary users cannot read database credentials.
SS_DATABASE_CLASS="MySQLDatabase"
SS_DATABASE_NAME="DB_NAME"
SS_DATABASE_SERVER="localhost"
SS_DATABASE_USERNAME="DB_USER"
SS_DATABASE_PASSWORD="DB_PASSWORD"
SS_DEFAULT_ADMIN_USERNAME="admin"
SS_DEFAULT_ADMIN_PASSWORD="A_LONG_UNIQUE_PASSWORD"
SS_ENVIRONMENT_TYPE="live"
Replace every example value with the credentials and administrator name you actually created. The example uses MySQL-compatible configuration. A different supported database engine needs the class and connection settings documented for that driver; do not leave MySQLDatabase in place when the server is using another engine.
Keep .env out of version control and deployment archives unless your secret-management process deliberately encrypts it. In CI/CD, inject the production values at deployment time or write the file from a protected secret store.
Point the web server at public/
Apache configuration
Set the virtual host’s DocumentRoot to the absolute path ending in my-project/public, not to the project root. Enable mod_rewrite, allow the supplied public/.htaccess to operate, and grant the virtual host access to the directory. The supplied public/assets/.htaccess also needs to remain in place.
DocumentRoot /var/www/my-project/public
<Directory /var/www/my-project/public>
AllowOverride All
Require all granted
</Directory>
The exact virtual-host syntax and PHP-FPM wiring differ by distribution. Add your normal TLS certificate, access/error logs, and PHP handler settings. If Apache serves a blank page or downloads PHP source, PHP is not connected to the virtual host; if every path returns a 404, rewrite support or the directory override is usually missing.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Nginx configuration
Set root to the same public directory and pass non-file paths to index.php. The following is a pattern, not a drop-in configuration: change the server name, TLS directives, log paths, and PHP-FPM socket for your VPS.
server {
root /var/www/my-project/public;
index index.php;
location ^~ /assets/ {
sendfile on;
try_files $uri =404;
}
location / {
try_files $uri /index.php?$query_string;
}
location ~ .php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}
The official file-security pattern for assets serves an existing file and returns 404 when it does not exist; requests that are not actual files must still reach the framework. Add rules that prevent access to hidden files and configuration files, and never configure Nginx to expose the project root. Validate the configuration and reload Nginx before testing the domain.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Set permissions without exposing secrets
The web-server service account needs read access to the public tree and write access to public/assets/ and the temporary or cache locations used by the application. Grant the smallest practical write scope. Do not make the entire project writable by the web server and do not solve permission errors with a world-writable mode.
Projects that use GraphQL may also need the generated .graphql-generated directory and public/_graphql handled during a build or deployment. Confirm which account runs build commands and ensure that account can create the generated files before handing the release to PHP-FPM.
Protect uploaded and private assets
Disable PHP execution for uploaded assets. Protected assets must not be directly downloadable merely because a file exists under an assets directory. For stronger isolation, set SS_PROTECTED_ASSETS_PATH="../.protected/" so the protected store is outside public/. Test both an authorized and an unauthorized request after enabling this arrangement.
Build the schema and sign in
From the project root, run:
vendor/bin/sake dev/build
This creates or updates the database schema and initial framework data. Run it with the same PHP version and environment variables that the web process will use. A database connection error means the host, port, credentials, driver, firewall, or PHP connector is wrong; a missing-table error usually means the build did not complete successfully.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Once the build finishes, open the site’s domain and then visit /admin. Sign in with the administrator credentials from .env, change the initial password if your operational policy requires it, and remove any temporary setup artifacts that your deployment process created.
Reverse proxies, HTTPS, and hostnames
If the VPS is behind a load balancer, CDN, or TLS-terminating reverse proxy, preserve the valid Host header and correctly forward the scheme and client-IP headers according to your proxy’s documented trust model. SilverStripe uses the host when constructing links such as password-reset URLs. An incorrect host or scheme can produce links that point to an internal hostname, use HTTP instead of HTTPS, or fail behind a proxy.
Redirect plain HTTP to HTTPS at the edge or web server, but make sure the application is aware that the original request was secure. Test login, password-reset generation, canonical URLs, and uploaded-asset links through the public hostname rather than only from localhost.
Use a repeatable production deployment
A safer production workflow builds a release in CI and deploys a known package to the VPS instead of running an ad-hoc Composer update on the live server. Keep the dependency lock file, install the exact locked versions, and generate application resources as part of the release process.
- Check out the intended commit and run Composer installation in a clean build environment.
- Inject production secrets separately; do not commit the live
.envfile. - Ensure generated resources such as
public/_resources/, recipe-generated files, and GraphQL schema directories (when used) are included or generated deterministically. - Publish the release so the web server points to its
public/directory, then switch the site to the new release atomically where possible. - Run
vendor/bin/sake dev/buildusing the release’s dependencies and verify the result before accepting traffic. - Retain the previous release for a rollback, while keeping database migrations and application changes coordinated.
Composer-managed modules normally remain in vendor/; front-end assets required by those modules are mapped into public/_resources/ during the build. A deployment that copies only PHP files but omits generated resources can appear installed while pages are missing styles, scripts, or module assets.
Post-install verification checklist
- Load the home page over HTTPS and confirm the expected hostname appears in generated links.
- Open
/admin, authenticate, and confirm the CMS can load dashboard data. - Create or edit a page and verify that database writes succeed.
- Upload an image and confirm that files are written under
public/assets/with the intended ownership. - Request a nonexistent URL and confirm SilverStripe’s error page is returned rather than a server directory listing.
- Request a known asset and confirm it is served; request a missing asset and confirm the server returns 404.
- Attempt to fetch
.env, files underapp/, and files undervendor/through the browser; none should be publicly readable. - If protected assets are enabled, test an authorized download and an unauthorized direct request.
- Review PHP-FPM, web-server, and application logs for warnings after the first build.
- Verify scheduled jobs, backups, log rotation, and monitoring before declaring the site ready.
Troubleshooting common failures
“Composer says my PHP version or extension is unsupported”
Check the PHP binary used by the shell, then list loaded modules and compare them with the required extension list. Install the missing extension for the same PHP minor version and rerun Composer. Also check that the web server’s PHP-FPM pool is not using an older binary.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Every URL except the home page returns 404
Confirm that the document root is public/, not the project directory. On Apache, enable mod_rewrite and allow the supplied .htaccess. On Nginx, add the try_files $uri /index.php?$query_string fallback and reload the validated configuration.
Free tools Windows power users keep installed
One-click scans. No signup required.
The site shows a permissions error when uploading
Check ownership and write access on public/assets/ and the application’s temporary/cache paths. Grant write access to the service account only for those locations, then retry an upload while watching the PHP-FPM and web-server logs. Avoid changing the whole project to mode 777.
PHP source is downloaded or displayed
The request is reaching the web server without a PHP handler. Verify PHP-FPM is running, the configured socket or upstream exists, and the virtual host or server block sends .php requests to it. Never leave source exposure enabled on a public hostname.
Password-reset links use the wrong domain
Inspect the reverse proxy’s forwarded host and scheme headers. SilverStripe uses the host header when constructing those links, so an internal proxy hostname or an untrusted header can produce unusable URLs. Correct the proxy configuration and test through the public domain.
Assets or GraphQL output are missing after deployment
Compare the release contents with the build output. Confirm that public/_resources/, public/_graphql, and .graphql-generated are generated or copied when the installed modules require them, and that the web-server account can read them.
Recommended Free Tools
Ongoing maintenance
Keep PHP within the SilverStripe-supported range, update Composer dependencies through a controlled release process, and test upgrades on a staging copy before production. Back up the database and uploaded assets together; a database-only backup cannot restore images and documents, while an assets-only backup cannot restore page content or configuration state.
Review the webroot after every deployment, confirm that .env, app/, and vendor/ remain outside it, and periodically test that protected assets cannot be fetched directly. Monitor disk usage, PHP-FPM failures, database capacity, and failed administrator logins so a full disk or exhausted worker pool does not become an unexplained CMS outage.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

