To self-host WordPress, you need a reachable, patched Linux server running a production web server (Apache or Nginx), supported PHP, MySQL or MariaDB, and HTTPS. You then create a dedicated database, place the WordPress release in the site’s document root, point DNS at the server, complete the installer, and take responsibility for updates, credentials, backups, TLS, monitoring, and recovery.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
This guide uses Ubuntu Server with Apache because it is the clearest beginner path. The same architecture works with another Linux distribution or Nginx if you are comfortable adapting package names, service paths, and PHP-FPM settings.
As an Amazon Associate I earn from qualifying purchases.
What self-hosting WordPress actually means
WordPress is a PHP application. Its posts, pages, settings, users, comments, and much of its plugin data live in a MySQL-compatible database, while the application code, themes, plugins, uploaded media, and configuration files live on the server’s filesystem. A web server accepts browser requests and passes PHP requests to the PHP runtime; PHP then reads or writes the database and returns HTML to the browser.
With self-hosting, you control the Linux machine and the software stack instead of handing those decisions to a managed WordPress provider. That gives you freedom to choose the operating system, web server, PHP settings, firewall, backup destination, and deployment process. It also means you—not a hosting support team—must patch the operating system, renew certificates, protect credentials, detect failures, and restore the site when something goes wrong.
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
The minimum public-site architecture
- A Linux server with a public IP address or a reliable reverse proxy in front of it.
- A registered domain whose DNS records point to that address.
- Apache or Nginx to serve static files and handle HTTP requests.
- PHP and the WordPress PHP extensions.
- MySQL or MariaDB for WordPress data.
- HTTPS with a valid certificate.
- SSH access for administration, plus a backup location separate from the server.
Current WordPress requirements
WordPress.org’s current baseline (checked in 2026) recommends PHP 8.3 or greater, MariaDB 10.11 or greater or MySQL 8.0 or greater, and HTTPS. Apache or Nginx is described as the most robust and featureful choice, although any server that supports PHP and MySQL can run WordPress. Older runtimes may still install, but they are end-of-life and can leave the site exposed to security and compatibility problems.
| Component | Recommended baseline | Why it matters |
|---|---|---|
| Operating system | A currently supported Linux server release with security updates | Kernel, library, and package patches are part of your security boundary. |
| PHP | 8.3 or newer | Runs WordPress and must include the database connector and common extensions. |
| Database | MariaDB 10.11+ or MySQL 8.0+ | Stores site content, accounts, settings, and plugin data. |
| Web server | Apache or Nginx | Handles HTTP, static files, virtual hosts, and PHP integration. |
| Transport security | HTTPS | Protects logins, administration, cookies, and traffic in transit. |
The official pre-install guidance also assumes an administrative account with shell or FTP access, a text editor, and a web browser. Do not use the same password for your Linux login, database user, WordPress administrator, and domain registrar.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Choose Apache or Nginx before installing
| Decision point | Apache | Nginx |
|---|---|---|
| Beginner documentation | The Ubuntu walkthrough supplies a complete Apache example, so it is the easiest first deployment. | Well supported, but you must understand server blocks and PHP-FPM. |
| PHP execution | Can use the Apache PHP module or PHP-FPM. The Ubuntu example installs the module. | Normally passes PHP requests to PHP-FPM over a Unix socket or TCP connection. |
| Configuration model | Virtual-host files and optional per-directory .htaccess rules. |
Central server-block configuration; there is no .htaccess equivalent. |
| Static files and proxying | Works well for ordinary WordPress sites and can proxy applications when configured. | Efficient static-file serving and reverse-proxy behavior are major strengths. |
| Resource use under load | Simple to operate; tune the chosen PHP mode as traffic grows. | Often attractive for high concurrency, but PHP-FPM pools and caching require deliberate tuning. |
| Best fit | An operator following the standard Ubuntu tutorial or wanting familiar per-directory rules. | An operator already comfortable with server blocks, PHP-FPM, and centralized configuration. |
Do not run both as competing front-end web servers on the same ports. Pick one for the public site. PHP’s built-in server, including the one launched by WP-CLI’s wp server command, is a development or limited-use tool; the command documentation advises using a more advanced web server when production behavior is required.
Prepare the Linux server
1. Create a patched machine and connect over SSH
Provision an Ubuntu Server instance or another supported Linux distribution. Assign a stable public address, create a non-root administrative account, and use key-based SSH authentication where practical. Before installing WordPress, update the operating system:
sudo apt update
sudo apt full-upgrade -y
Use your provider’s firewall or the host firewall to allow SSH only from trusted networks when possible, and allow TCP ports 80 and 443 for web traffic. Keep a second administrative path or console available in case a firewall rule locks you out.
2. Install Apache, PHP, the database, and extensions
On Ubuntu, the Apache stack can be installed with:
sudo apt install apache2 mysql-server php libapache2-mod-php
php-curl php-imagick php-intl php-mbstring php-mysql php-xml php-zip unzip curl -y
The package names provide the web server, MySQL-compatible database, PHP integration, and extensions commonly required by WordPress core, themes, and plugins. If you choose Nginx, install Nginx and the matching PHP-FPM package instead of the Apache PHP module, then verify the actual PHP-FPM socket path supplied by your distribution.
Enable the installed services and check their status:
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
sudo systemctl enable --now apache2 mysql
systemctl --no-pager --full status apache2 mysql
php -v
mysql --version
Version output must meet the WordPress baseline. If your distribution offers an older PHP or database release, do not expose the site publicly until you have selected a supported package source or a newer operating-system release.
Create a dedicated WordPress database
WordPress should have its own database and database account. The database password is independent of your Linux password and should be long, unique, and stored in a password manager. Open the database console as the local administrator:
sudo mysql
Run SQL similar to the following, changing the password to a value generated for this site:
Free tools Windows power users keep installed
One-click scans. No signup required.
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'use-a-long-unique-password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Granting privileges on the WordPress database—not on every database—limits the damage if the application credential is exposed. Keep a record of the database name, user, host, and password because the browser installer will ask for them.
Download WordPress and set the document root
Use the release distributed by WordPress.org rather than an unrelated operating-system package. You can download the archive in a browser and copy it to the server, or use WP-CLI after installing it. The Ubuntu layout in the official tutorial places the site under /srv/www:
sudo mkdir -p /srv/www/wordpress
sudo chown -R "$USER":"$USER" /srv/www/wordpress
Extract the release so that files such as wp-admin, wp-includes, and wp-content are directly inside /srv/www/wordpress, not inside an extra nested directory. If you use WP-CLI, the equivalent download command is:
wp core download --path=/srv/www/wordpress
After extraction, inspect the directory before changing ownership. A single-site Apache installation commonly uses:
Rank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
sudo chown -R www-data:www-data /srv/www/wordpress
sudo find /srv/www/wordpress -type d -exec chmod 755 {} ;
sudo find /srv/www/wordpress -type f -exec chmod 644 {} ;
These are starting permissions, not a reason to make every file world-writable. Treat wp-config.php as a secret-bearing file and tighten it further after the installer creates it. On a multi-site server, assigning every site to the shared www-data account is weaker isolation: Ubuntu’s guidance describes separate Unix users and PHP-FPM pools per site as the stronger design.
Configure the Apache virtual host
Create a virtual-host file, replacing the domain names with the domain you actually control:
sudo nano /etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /srv/www/wordpress
<Directory /srv/www/wordpress>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wordpress-error.log
CustomLog ${APACHE_LOG_DIR}/wordpress-access.log combined
</VirtualHost>
Enable URL rewriting, enable the site, disable the default site if it would answer the same request, validate the syntax, and reload Apache:
sudo a2enmod rewrite
sudo a2ensite wordpress.conf
sudo a2dissite 000-default.conf
sudo apachectl configtest
sudo systemctl reload apache2
A successful Syntax OK is required before the reload. If Apache refuses to start, inspect the error shown by systemctl status apache2 and the journal rather than repeatedly editing files.
Point DNS at the server and enable HTTPS
DNS
Create an A record for the apex domain pointing to the server’s IPv4 address. If you use IPv6, create an AAAA record only when the server and firewall are correctly configured for IPv6. Add a separate record for www if you intend to serve that hostname. DNS changes can take time to appear because resolvers cache records; verify that both names resolve to the intended machine before troubleshooting Apache.
TLS certificate and redirect
Obtain a certificate from a trusted certificate authority with an ACME client appropriate for your distribution and web server. Complete certificate provisioning while port 80 is reachable, then configure the web server to redirect HTTP to HTTPS. Test both the bare domain and the www name, and schedule automatic renewal checks.
HTTPS is not optional for a modern WordPress deployment: it protects administrator passwords, session cookies, media uploads, and every other request. Do not simply hide the login page while leaving it on plain HTTP.
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
Finish the WordPress installation
Open the HTTPS domain in a browser. The installer asks for the database name, database username, database password, and database host (normally localhost for the local database). It can create wp-config.php, which stores these credentials and other site configuration; protect the file and never paste it into a public support forum.
- Enter the database values created earlier. Leave the table prefix at its default only if this is a single, isolated installation; changing it is not a substitute for security controls.
- Set the site title, administrator username, a unique administrator password, and an email address you can access.
- Keep the “discourage search engines” option enabled only while building a private site. Clear it before launch if the site should be indexed.
- Sign in at the HTTPS dashboard and immediately confirm that the site URL, timezone, permalink choice, and administrator email are correct.
For repeatable deployments, WP-CLI can perform the same work without the browser:
wp core download --path=/srv/www/wordpress
wp config create --path=/srv/www/wordpress
--dbname=wordpress --dbuser=wpuser --dbpass='database-password' --dbhost=localhost
wp core install --path=/srv/www/wordpress
--url='https://example.com' --title='Site title'
--admin_user='siteadmin' --admin_password='unique-admin-password'
--admin_email='[email protected]'
Do not leave real passwords in shell history or shared deployment logs. Prefer a protected environment variable, an interactive secret prompt, or a deployment secret store, then remove any temporary copies.
Nginx alternative: what changes
Nginx uses a server block rather than an Apache virtual host and normally sends PHP requests to PHP-FPM. The conceptual sequence is unchanged: install Nginx, PHP-FPM, the PHP extensions, and MySQL or MariaDB; place WordPress in a document root; configure the domain; pass only PHP scripts to the FPM socket; and reload after testing the configuration.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Because socket names vary by PHP version and distribution, do not copy a guessed path. Find the installed socket, confirm that the Nginx worker can reach it, and ensure the server block’s location rules do not execute arbitrary uploaded files as PHP. Nginx is a good choice for operators who already manage PHP-FPM pools and centralized server configuration; Apache is less error-prone when following the standard Ubuntu example.
Production security and maintenance
Keep the stack supported
Schedule operating-system, PHP, database, web-server, WordPress core, plugin, and theme updates. Read compatibility notes before changing PHP or major plugins, and apply updates on a staging copy when the site is business-critical. Unsupported runtimes may continue to function but no longer receive the security and bug fixes the site depends on.
Limit access
- Use SSH keys where practical, disable direct root login, and restrict SSH by source address or VPN when possible.
- Allow only the ports the site needs. Public HTTP and HTTPS are normally required; database port access should remain private.
- Use separate WordPress administrator accounts rather than sharing one login, and remove accounts that no longer need access.
- Install only maintained plugins and themes. Delete unused extensions instead of leaving disabled code on disk.
Protect files and secrets
Keep wp-config.php out of web-accessible downloads and source-control repositories. Do not make the whole document root writable by every process. On a single-site machine, Apache’s account ownership can be workable; on a server hosting several sites, isolate each site with its own Unix user and PHP-FPM pool so one compromise cannot freely write into another site.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
Back up what WordPress actually needs
A usable backup contains both the database and the files. Export MySQL or MariaDB regularly, and copy the WordPress directory—including wp-config.php and uploaded media in wp-content/uploads—to storage separate from the production server. Retain multiple restore points and encrypt backups that contain personal data or credentials.
Recommended Free Tools
Test restoration on a separate machine or isolated directory. A backup that has never been restored is an assumption, not a recovery plan. Record the database version, PHP version, DNS details, certificate process, and the credentials or keys required to rebuild the host.
Monitor the machine
Watch disk space, memory, database availability, certificate expiry, failed SSH logins, Apache or Nginx errors, and WordPress’s own update notices. A full disk can prevent uploads, database writes, and log rotation at the same time. Keep web-server access and error logs long enough to investigate incidents, while rotating or shipping them so they cannot consume the entire filesystem.
Self-hosting versus managed hosting
| Concern | Self-hosted Linux server | Managed WordPress hosting |
|---|---|---|
| Control | Complete control over Linux, web server, PHP settings, database, firewall, and deployment. | Provider controls much of the stack and may restrict low-level changes. |
| Infrastructure cost | You pay for the server, storage, bandwidth, domain, TLS needs, and backup storage. | A recurring plan commonly bundles infrastructure and some operational services; exact inclusions vary. |
| Patching | You schedule and verify operating-system, runtime, database, WordPress, plugin, and theme updates. | The provider may handle some layers, but you still own WordPress content and extension updates unless the plan says otherwise. |
| Backups | You design retention, off-site storage, encryption, and restoration tests. | Backups may be included, but verify frequency, retention, download access, and restore procedure. |
| Scaling | You choose larger hardware, caching, replicas, or multiple servers and perform the migration. | The provider may offer guided scaling, but available architectures and limits are plan-specific. |
| Support and recovery | You diagnose outages and restore service yourself or through a contract you arrange. | Support can shorten diagnosis, although response times and recovery guarantees vary. |
Self-hosting is a good fit when you need operating-system-level control, custom services, or a repeatable deployment process and are willing to operate the system. Managed hosting is usually easier when predictable support and delegated maintenance matter more than low-level control.
Troubleshooting the common failure points
The domain shows the wrong site or cannot connect
- Confirm the A and AAAA records point to the current server, not an old address.
- Check that the firewall and provider security group allow ports 80 and 443.
- Verify the Apache virtual host or Nginx server block has the exact hostname and document root.
- Use the web-server access and error logs to distinguish DNS, routing, and application failures.
Apache will not reload
Run sudo apachectl configtest. Fix the first syntax error it reports, then check for a port conflict or a disabled module. Reload only after the test returns Syntax OK.
Windows 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 reinstallOutdated 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 installer reports a database connection error
- Confirm the database service is running.
- Check the database name, user, password, and host character-for-character.
- Ensure the user was granted privileges on the intended database and that the account host is
localhostwhen the database is local. - Do not open the database to the internet merely to make a local connection work.
Permalinks return 404 errors
On Apache, confirm mod_rewrite is enabled and the WordPress directory allows overrides. On Nginx, add the equivalent front-controller rule in the server block. Test the configuration and reload the web server after every change.
Uploads fail or updates ask for FTP credentials
Check available disk space, PHP upload limits, and ownership of wp-content. Avoid making the entire site world-writable. If ownership is inconsistent after a manual copy, correct it for the selected single-site or per-site-user design, then retest with the smallest required write scope.
HTTPS produces warnings or redirect loops
Verify that the certificate covers the hostname users visit, that the server clock is correct, and that only one layer is forcing redirects. Confirm WordPress’s site and home URLs use https after the certificate is active. A reverse proxy may need an explicit forwarded-protocol setting so WordPress does not think every secure request is plain HTTP.
A launch checklist
- PHP is 8.3 or newer, and MariaDB is 10.11 or newer or MySQL is 8.0 or newer.
- The operating system, web server, PHP, and database have current security updates.
- A dedicated database and unique database password are configured.
- The domain resolves to the correct server and the virtual host serves the intended document root.
- HTTPS works for every public hostname and HTTP redirects to HTTPS.
wp-config.php, uploads, and logs have deliberate ownership and permissions.- SSH is restricted and direct root access is disabled or tightly controlled.
- WordPress core, plugins, and themes are updated; unused extensions are removed.
- Database and file backups run off-server, and a restoration test has succeeded.
- Disk space, failed logins, certificate expiry, and web-server errors are monitored.
What you remain responsible for
The installation wizard gets WordPress running, but it does not operate the server for you. Self-hosting transfers patching, credential management, TLS renewal, backups, monitoring, capacity planning, and incident recovery to the operator. A small site can run reliably on one Linux machine when those tasks are scheduled and documented; the risk comes from treating the initial install as the finished system.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
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.




