PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchThe safest practical pattern for several independent WordPress sites on one LEMP VPS is to give every site its own Unix account, document root, PHP-FPM pool and Unix socket, Nginx server block, database, and database user. This arrangement limits accidental file access and reduces the blast radius of a compromised plugin, while keeping administration manageable. It is stronger than putting every site under www-data, but it is not a substitute for patching the host, Nginx, PHP, database server, and WordPress itself.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
The per-site architecture
Think of each domain as a small service with its own identity. Nginx receives the request, selects the matching server {} block, and sends PHP requests to that site’s PHP-FPM socket. The pool runs under that site’s Unix user, so PHP cannot normally read another site’s files when directory permissions are correct. WordPress connects to a database owned by a separate database account that has no privileges on the other sites’ databases.
As an Amazon Associate I earn from qualifying purchases.
| Component | Site 1 example | Site 2 example | Isolation purpose |
|---|---|---|---|
| Unix account | site1 |
site2 |
Owns files and runs PHP for only that site |
| Document root | /home/site1/public |
/home/site2/public |
Keeps WordPress trees separate |
| Nginx server block | example.com |
example2.com |
Maps each hostname to one root |
| PHP-FPM pool | [site1] |
[site2] |
Uses a different UID/GID and limits workers |
| PHP-FPM socket | /run/php/site1.sock |
/run/php/site2.sock |
Prevents requests being sent to the wrong pool |
| Database | site1_db |
site2_db |
Separates content and credentials |
| Database user | site1_db_user |
site2_db_user |
Least-privilege access to only its database |
Use this model for unrelated sites, customer sites, or sites that need different plugin, theme, or PHP release schedules. A shared WordPress Multisite installation solves a different problem and is covered later.
Plan names, paths, and operating-system assumptions
The examples use a Debian or Ubuntu-style layout, Nginx, PHP-FPM, and a MySQL-compatible server. Package names and the PHP configuration directory can differ by distribution. Replace site1, domains, PHP version directories, and passwords with your values; do not copy example passwords into production.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
- Choose a lowercase Unix account name for each site, such as
site1andsite2. - Use a dedicated document root such as
/home/site1/public, not a shared directory. - Reserve a unique socket name for every pool under
/run/php/. - Keep service accounts non-login accounts. Give administrators their own SSH accounts and use
sudo. - Record the domain, Unix user, root, socket, database name, and database user in a deployment inventory so a later change cannot target the wrong site.
Before changing configuration, create DNS records for every domain and confirm that each name resolves to the VPS address. If DNS still points elsewhere, an apparently broken Nginx configuration may simply be receiving no traffic.
Create a separate Unix account and filesystem tree
Create one account and directory tree per site. The --system and --home choices below create a service identity without giving it an interactive shell. Some distributions use different defaults, so verify the resulting UID, home directory, and shell.
sudo useradd --system --home-dir /home/site1 --create-home
--shell /usr/sbin/nologin site1
sudo mkdir -p /home/site1/public /home/site1/logs
sudo chown -R site1:site1 /home/site1
sudo chmod 750 /home/site1
sudo chmod 750 /home/site1/public /home/site1/logs
Repeat the commands for site2 and each additional site. Nginx must be able to traverse the path to serve static files, but that does not mean it should own the files. On systems where Nginx runs as www-data, grant that group only the traversal and read access it needs; avoid making the entire home directory world-readable.
Do not use chmod 777. A deliberately writable directory is usually limited to paths such as wp-content/uploads, and even there the owner and group should be chosen to match your update and upload workflow. Keep wp-config.php readable only by the site account and administrators whenever your deployment model permits it.
Install the LEMP components and PHP extensions
Install Nginx, the PHP-FPM package for the PHP version you support, the PHP extensions required by WordPress and your chosen plugins, and a MySQL-compatible database server. Typical WordPress installations need the FPM SAPI plus extensions for MySQL, XML, cURL, image processing, multibyte strings, and ZIP; confirm the exact set against the WordPress and plugin requirements for your PHP release.
Enable and start the services using your distribution’s service manager. Do not expose PHP-FPM’s FastCGI listener publicly. A local Unix socket is preferable to a TCP listener bound to an Internet-facing address.
Recommended Free Tools
sudo systemctl enable --now nginx
sudo systemctl enable --now php8.3-fpm
sudo systemctl enable --now mariadb
The service name may be php8.2-fpm, php8.3-fpm, or another version. Check with systemctl list-units 'php*-fpm.service' rather than assuming a name.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
Create one PHP-FPM pool and socket per site
PHP-FPM pools can use different Unix users, groups, sockets, process limits, and other settings. Create a pool file for each site in the active PHP-FPM configuration directory, commonly /etc/php/<version>/fpm/pool.d/. The pool name, account, and socket must be unique.
; /etc/php/8.3/fpm/pool.d/site1.conf
[site1]
user = site1
group = site1
listen = /run/php/site1.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = ondemand
pm.max_children = 8
pm.process_idle_timeout = 10s
pm.max_requests = 500
Make a corresponding site2.conf with [site2], user = site2, group = site2, and listen = /run/php/site2.sock. The www-data ownership is appropriate only when that is the account used by Nginx; substitute your distribution’s Nginx user if different.
Choose worker limits from capacity, not habit
pm.max_children = 8 is an example, not a universal recommendation. The correct value depends on available RAM, PHP version, average worker memory, traffic, and whether plugins perform slow external or database operations. Too many workers can cause swapping and make every site slow; too few produce a queue during bursts. Start conservatively, watch FPM status and system memory, then adjust one pool at a time. Keep the total possible workers across all pools within the VPS’s realistic capacity.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Validate and reload safely
sudo php-fpm8.3 -t
sudo systemctl reload php8.3-fpm
sudo ls -l /run/php/site1.sock /run/php/site2.sock
Use the binary and service names installed on your system. The socket should exist with permissions that allow Nginx to connect, while PHP workers run as the site account. If the socket is absent, inspect the FPM journal and pool configuration for a duplicate name, invalid directive, or typo in the PHP version path.
Never publish an FPM TCP endpoint to the Internet. An exposed FastCGI service can permit arbitrary code execution by an attacker who can reach it. Keep listeners on local Unix sockets unless you have a tightly controlled private network design and understand the additional access controls.
Configure one Nginx server block per domain
Create a separate file in /etc/nginx/sites-available/ for each domain and enable it with the distribution’s usual symlink mechanism. The root, hostname, and FastCGI socket must all refer to the same site.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /home/site1/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
try_files $uri =404;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/site1.sock;
}
location ~* /.ht {
deny all;
}
}
For example2.com, change server_name, root, and fastcgi_pass to the site 2 values. Keep the try_files $uri =404; check in the PHP location so Nginx does not pass arbitrary nonexistent paths to PHP. Review any copied include file and restriction: a typo in a regular expression or an overly broad exception can expose a sensitive file.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
Enable the sites and test the complete Nginx configuration before reloading:
sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/site1.conf
sudo ln -s /etc/nginx/sites-available/site2.conf /etc/nginx/sites-enabled/site2.conf
sudo nginx -t
sudo systemctl reload nginx
Remove or disable the distribution’s default virtual host if it can catch an unrecognised hostname and reveal an unintended document root. Confirm that every hostname has exactly one intended matching block.
Add HTTPS and canonical redirects
WordPress logins, administration sessions, cookies, and visitor traffic should run over HTTPS. Use your distribution’s supported ACME client or certificate automation, then configure the HTTP virtual host to redirect to the HTTPS host. Certificate issuance is separate from per-user isolation, but it must be completed for every domain and renewal must be monitored.
After certificates are installed, test both the bare and www names (or whichever canonical form you selected), confirm that HTTP returns a permanent redirect to the correct HTTPS URL, and check that no mixed-content warnings remain. Do not blindly copy an HSTS policy to a domain before you are certain every required subdomain supports HTTPS; an incorrect policy can make recovery difficult.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Create separate databases and least-privilege users
Each WordPress installation should have its own database and credentials. Create the database with an appropriate character set, create a unique database user, and grant that user privileges only on its own database. Never reuse one database password across sites.
sudo mariadb
CREATE DATABASE site1_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site1_db_user'@'localhost' IDENTIFIED BY 'use-a-long-random-secret';
GRANT ALL PRIVILEGES ON site1_db.* TO 'site1_db_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Repeat with different names and a different random secret for site 2. If the database server uses a different authentication or host policy, follow that distribution’s secure setup and ensure the account can connect only as intended. The WordPress configuration should contain the matching database name, user, password, and local host value.
Database separation limits accidental queries and makes per-site export, restore, and incident response practical. It does not protect data from a host administrator or a compromised database service; those remain shared infrastructure.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Deploy WordPress into the matching document root
Download WordPress from WordPress.org, verify that the archive is the release you intended to deploy, and extract it into the corresponding site’s public directory. Do not install one site’s files into another site’s root and then try to compensate with Nginx rules.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minutesudo -u site1 mkdir -p /home/site1/public
# Extract the WordPress release into /home/site1/public using your approved method
sudo chown -R site1:site1 /home/site1/public
sudo chmod 640 /home/site1/public/wp-config.php
During the web installer or a managed deployment, enter only the site1_db credentials. For a second site, repeat the process with the site2 account, root, and database. Set unique authentication salts and keys in each configuration, and keep secrets out of publicly readable files and shell history.
When using a command-line deployment tool, run it as the site account so newly created files have the expected ownership. If an administrator extracts files as root, correct ownership before enabling automatic updates. WordPress performs automatic file operations as the user that owns the files; ownership and your update method therefore have to agree.
Design permissions around updates and uploads
There is no single permission mode that fits every deployment. A controlled model gives the site account ownership, lets PHP write only where runtime writes are required, and lets administrators deploy releases through a repeatable process.
- Keep core PHP files, themes, and plugins non-writable by the web process when you deploy updates through SSH, a CI job, or a package process.
- If WordPress must update itself, ensure the site account (the PHP-FPM user) owns the relevant files and that the update workflow does not require broad world-write permissions.
- Allow uploads in
wp-content/uploadsonly when needed. Review whether plugins create additional cache or temporary directories. - Protect
wp-config.php, backup archives, deployment keys, logs, and any environment files from web access. - Do not place one site’s writable directory inside another site’s tree, and do not grant a site account access to a shared parent that contains other sites.
Test a normal upload, plugin update, and rollback as the actual service account before declaring the permissions complete. A configuration that blocks all writes may look secure but can cause administrators to “fix” it later with unsafe permissions.
Free tools Windows power users keep installed
One-click scans. No signup required.
Verify every boundary before launch
Use a repeatable verification pass for each site. Perform the checks from an administrator account, then test normal visitor and WordPress administrator actions through the domains.
- Resolve each DNS name and confirm it reaches the VPS address.
- Run
nginx -tand the relevant PHP-FPM configuration test; fix every warning before reloading. - Check that each pool has a distinct socket and that the socket owner/group permits Nginx access.
- Request each domain and verify that the expected WordPress site, not a default host or another domain, is returned.
- Log in to each
wp-admin, save the permalink settings, and open a front-end permalink. - Upload a test image and confirm it appears only in that site’s media library and uploads directory.
- Run a controlled plugin or core update using the intended ownership model.
- Check PHP-FPM, Nginx, and database logs for permission errors, upstream failures, or requests reaching the wrong pool.
- Test the HTTP-to-HTTPS redirect, certificate hostname, login cookies, cron or scheduled tasks, and outbound email path.
- Restore a backup of each database and file set in a non-production location so you know the backup is usable.
Troubleshoot common failures
“502 Bad Gateway” or “File not found”
Confirm that the socket named in fastcgi_pass exists, belongs to the active PHP-FPM version, and is accessible to Nginx. A stale socket path after a PHP upgrade, a stopped FPM service, or a mismatched pool name is common. Check the Nginx error log and FPM journal, then reload both services after correcting the configuration.
Best Value
403 errors for static files
Walk the entire path with directory permissions in mind. Nginx needs execute (traverse) permission on parent directories and read permission on files. Grant the narrowest group or ACL access that works; do not solve a traversal problem by making the whole home directory mode 777.
WordPress cannot update or upload
Inspect ownership of the target path and identify which user performed the failed operation. If PHP-FPM runs as site1 but files belong to root, automatic updates may fail by design. Either deploy as the site account or deliberately adjust ownership and writable paths to match the chosen workflow.
The wrong site appears
Check DNS, the exact server_name values, enabled-site symlinks, and whether a default server catches the request. Use a request with the intended Host header and inspect the selected access log. Also verify that the Nginx root and FPM socket were changed together when cloning a configuration.
A site can read another site’s files
Audit Unix ownership, group membership, ACLs, parent-directory traversal, shared writable directories, backup locations, and any plugin that deliberately accesses system paths. Ensure each pool really runs under its site’s UID/GID and that no site account has been placed in a shared privileged group. Rotate credentials and treat unexplained cross-site reads as an incident rather than merely a permissions typo.
Independent installs versus WordPress Multisite
Multisite hosts several sites in one WordPress installation and shares core administration. It can be appropriate when one organisation wants common governance, plugins, themes, and update timing. The sites remain distinct within WordPress, but they share the installation’s core files and much of its operational lifecycle. Nginx generally needs network-specific configuration when Multisite is created.
Choose independent installations when sites belong to different customers, require different plugin or theme sets, need separate PHP lifecycles, or demand a stronger filesystem and database boundary. Separate installs also let you take one site offline, restore it, or change its maintenance schedule without coordinating a network-wide change. They consume more configuration and update work, so document and automate the repeated pattern rather than manually improvising each host.
Understand what this isolation does not protect
Separate users and pools reduce the blast radius of ordinary file-permission mistakes and many single-site compromises. They do not create virtual machines or a complete security boundary. All sites still share the kernel, VPS, Nginx master process, PHP packages, database service, network stack, storage hardware, and host administrator. A kernel vulnerability, a compromised privileged service, or an attacker who gains host-level access can cross those boundaries.
Keep the operating system, Nginx, PHP, PHP extensions, database server, WordPress core, themes, and plugins patched. Remove unused plugins, restrict administrative access, use strong unique credentials and multi-factor authentication where available, and monitor authentication and error logs. Review every directory writable by PHP, because a writable path is a common place for malicious code or persistent files to land.
Maintain off-site, encrypted backups for each site’s files and database, with retention that allows you to recover from delayed detection. Test restores regularly. Keep an incident plan that identifies which credentials to revoke, how to isolate one site, how to preserve logs, and how to rebuild a clean pool or VPS if the host itself can no longer be trusted.
Quick Recap
A repeatable per-site checklist
- DNS points the domain to the intended VPS.
- A non-login Unix account owns the site’s tree.
- The document root is unique and outside other sites’ writable paths.
- A dedicated PHP-FPM pool runs as that account and listens on a unique local socket.
- Nginx has one server block with the matching hostname, root, and socket.
- The database and database user are unique, with privileges limited to that database.
wp-config.phpcontains only that site’s credentials and has restrictive permissions.- HTTPS, redirects, permalinks, uploads, scheduled tasks, and updates have been tested.
- Logs, monitoring, off-site backups, and a tested restore procedure exist for the site.
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.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →

