Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides 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

Install WordPress on Debian with the distribution’s integrated package, Apache, MariaDB and PHP, then finish the setup at your site’s /wp address. The reliable sequence is to install the packages, harden MariaDB, create a dedicated WordPress database user, configure an Apache virtual host, add Debian’s hostname-specific configuration file, and complete the browser installer.

This guide follows Debian’s filesystem layout rather than an upstream WordPress tarball. That distinction matters: Debian stores the application under /usr/share/wordpress, content under /var/lib/wordpress/wp-content, and host configuration under /etc/wordpress.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check Debian, WordPress and server prerequisites

Use a supported Debian release with shell access, root or sudo privileges, a text editor and a browser. For a public site, point a DNS name at the server before opening the installer. A resolvable hostname is important because Debian selects the WordPress configuration file from the HTTP hostname sent by the browser.

WordPress.org’s current production guidance calls for PHP 8.3 or newer, MariaDB 10.11 or newer or MySQL 8.0 or newer, HTTPS, and Apache or Nginx. Check the versions available on your Debian release before committing to a production deployment:

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
cat /etc/debian_version
apt-cache policy wordpress php mariadb-server

Debian’s packaged version can trail the newest upstream release because it follows the release’s maintenance and security policy. Debian lists these WordPress versions by release in January 2026:

Debian release WordPress package version
Debian 11 Bullseye 5.7.14
Debian 12 Bookworm 6.1.9
Debian 13 Trixie 6.8.3

Compare the package, PHP and database versions with the minimum versions required by your planned plugins and themes. A plugin that requires a newer WordPress release may not work on an older Debian stable package. Upgrade Debian through its supported release process, or deliberately choose a separately managed upstream installation after planning its security updates, permissions, backups and migration path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A vanilla WordPress installation is documented as needing 128 MB of PHP memory. Treat that as a baseline rather than a capacity plan. Page builders, image processing, large imports, busy stores, traffic spikes and poorly behaved plugins can require substantially more memory, CPU, storage and database capacity. Leave room for logs, backups and package upgrades.

Install Apache, MariaDB, PHP and Debian WordPress

Refresh package metadata and install Debian’s WordPress package together with the LAMP components:

sudo apt update
sudo apt install wordpress curl apache2 mariadb-server

The dependency resolver normally installs PHP and the MySQL-compatible connector required by WordPress. If PHP database support or Apache’s PHP integration is absent, install the connector and module supplied by your Debian release:

sudo apt install php-mysql libapache2-mod-php

Confirm that the runtimes and services are present:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
php -v
mariadb --version
sudo systemctl status apache2 mariadb

Do not continue while MariaDB or Apache is stopped. Start them and arrange for them to start after a reboot:

sudo systemctl enable --now apache2 mariadb

For a local test machine, the default firewall policy may already permit local access. For a public server, allow only the services you intend to expose, normally SSH and HTTP/HTTPS, and keep MariaDB bound for local application use unless you have a specific, protected reason to allow remote database connections.

Harden MariaDB before creating WordPress credentials

Run Debian’s interactive hardening utility:

sudo mysql_secure_installation

Follow its prompts to remove anonymous accounts, restrict remote administrative access, remove the test database and reload privilege tables. The exact questions vary by MariaDB version, so read each prompt instead of accepting a copied answer blindly. This step reduces unnecessary exposure but does not replace operating-system updates, firewall rules, backups or application hardening.

WordPress must have its own database and application account. Never configure it with the MariaDB administrator account. A separate account limits the damage if a plugin, upload or application credential is compromised.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create the database interactively

Open the local MariaDB client using Debian’s administrative authentication:

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
sudo mariadb

Run SQL like this, replacing the example password with a long, unique secret:

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'replace-with-a-strong-secret';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
EXIT;

The grant is scoped to the wordpress database rather than granting server-wide privileges. Keep the password private and do not paste it into a public ticket, article, image or shell history. If your database name or account name differs, use those exact values consistently in the Debian configuration file.

Use a protected SQL file for repeatable setup

For automation, Debian documents executing SQL through its MySQL defaults file. Put the statements in a temporary root-owned file with mode 600, run it, and remove it immediately:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo install -m 600 /dev/null /root/wordpress-db.sql
sudo editor /root/wordpress-db.sql
sudo mariadb --defaults-file=/etc/mysql/debian.cnf < /root/wordpress-db.sql
sudo rm /root/wordpress-db.sql

Do not leave a plaintext password in a broadly readable script, a shared shell history or a backup directory. Verify the account and database if you need to troubleshoot later:

sudo mariadb -e "SHOW DATABASES;"
sudo mariadb -e "SHOW GRANTS FOR 'wordpress'@'localhost';"

Configure Apache with a dedicated WordPress virtual host

Create a site definition at /etc/apache2/sites-available/wp.conf. Replace myblog.example.com and the administrator email with values for your server:

<VirtualHost *:80>
    ServerName myblog.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /usr/share/wordpress

    Alias /wp-content /var/lib/wordpress/wp-content
    <Directory /usr/share/wordpress>
        Options FollowSymLinks
        AllowOverride Limit Options FileInfo
        DirectoryIndex index.php
        Require all granted
    </Directory>
    <Directory /var/lib/wordpress/wp-content>
        Options FollowSymLinks
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

The two directory blocks are deliberate. The document root contains Debian’s packaged WordPress code, while the alias exposes the writable content directory used for themes, plugins and uploads. Do not substitute a generic /var/www/html layout without also changing the package configuration.

AllowOverride Limit Options FileInfo permits the per-directory settings Debian expects while avoiding an unrestricted override policy. Keep the Require all granted directives scoped to the two WordPress locations; do not grant access to unrelated system directories.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Enable the site and reload Apache

Disable the default site, enable the WordPress virtual host and reload Apache:

sudo a2dissite 000-default
sudo a2ensite wp
sudo service apache2 reload

Check the active configuration if Apache reports an error:

sudo apache2ctl configtest
sudo apache2ctl -S

configtest should report a successful syntax check. The virtual-host listing should show your hostname and the expected configuration file. If another virtual host answers first, check its ServerName, DNS target and whether the default site was actually disabled. Reload Apache after every virtual-host change; editing a file alone does not change the running configuration.

Add Debian’s hostname-specific WordPress configuration

For the hostname myblog.example.com, create:

sudo editor /etc/wordpress/config-myblog.example.com.php

Use values matching the database and user you created:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
<?php
 define('DB_NAME', 'wordpress');
 define('DB_USER', 'wordpress');
 define('DB_PASSWORD', 'replace-with-a-strong-secret');
 define('DB_HOST', 'localhost');
 define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
?>

Debian chooses the first matching file according to the HTTP hostname. It also documents fallback names such as config-example.com.php and config-default.php, but a hostname-specific file is safer for a server hosting more than one site. The hostname in the filename must correspond to the name the browser sends, not merely an internal machine name.

Protect the file from unrelated users while leaving it readable by the web process:

sudo chown root:www-data /etc/wordpress/config-myblog.example.com.php
sudo chmod 640 /etc/wordpress/config-myblog.example.com.php

Check that the directory permissions do not prevent the Apache process from traversing the path. Do not make the file world-writable, and do not put the database password in a file inside a publicly served document root.

Do not put a second, conflicting wp-config.php in an unrelated document root. Mixing Debian’s configuration discovery with a manually unpacked WordPress tree is a common source of confusing database and content-path errors.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Complete the installation in a browser

Open the hostname at its WordPress path:

http://myblog.example.com/wp

Debian documents this address redirecting to /wp/wp-admin/install.php. The installer asks for the site title, administrator username, administrator password and email address. Use a unique administrator name rather than a predictable public-facing name, and store the generated password in a password manager.

For a private test machine, the local hostname or an internal DNS name can be sufficient. For an internet-facing site, configure HTTPS before exposing the administrator login. WordPress’s current requirements list HTTPS as part of the recommended production environment; terminate TLS at Apache or at a properly configured reverse proxy, and ensure the canonical site URL uses https. Do not treat an unencrypted first login as harmless if the server is reachable from an untrusted network.

What to verify after the installer finishes

  • Visit the front page and confirm that PHP is rendered rather than downloaded as source.
  • Sign in at /wp/wp-admin/ and open the dashboard’s site health screen.
  • Check that the media library can create an upload under /var/lib/wordpress/wp-content.
  • Confirm that the site title and administrator email are correct before enabling public registration or installing plugins.
  • Open the site from the canonical hostname, not only from an IP address or alternate alias.
  • Remove any temporary SQL file and close unused administrative shell sessions.

Maintain the Debian installation

Keep Debian’s package metadata and installed packages current:

sudo apt update
sudo apt upgrade

Debian delivers WordPress security fixes through this package route. Review upgrades before applying them on a production site, and take a database and file backup first if the site cannot tolerate downtime or rollback work. Update Apache, PHP and MariaDB along with WordPress; a patched application running on an obsolete runtime is still a maintenance risk.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read /usr/share/doc/wordpress/README.Debian before changing themes, plugins, content locations, multisite behavior, permalink handling or upgrade mechanics. Debian’s package layout and helper scripts differ from instructions written for an upstream tarball. Keep local changes documented so a future administrator can tell which files are package-managed and which are site-specific.

Back up the two things WordPress needs

  • Database: export the wordpress database with a MariaDB-compatible dump and store it outside the web root.
  • Files: back up /var/lib/wordpress/wp-content, especially uploads, themes and plugins, along with the hostname-specific file in /etc/wordpress.

Test that a backup can be restored on a non-production machine. A backup that has never been restored is only an assumption. Keep at least one copy away from the server so a filesystem failure or compromised host does not destroy the original and its backup together.

Choose the Debian package or an upstream tarball deliberately

Approach What it provides Important trade-off
Debian package Integration with Debian paths, Apache conventions, package updates and README.Debian WordPress versions follow Debian’s release and security-maintenance policy
Upstream tarball Direct control over the WordPress files and upstream release timing You must design the filesystem layout, update process, permissions and web-server configuration yourself

This article uses the package route. Do not copy a tarball tutorial’s document root, ownership commands or wp-config.php placement into the Debian layout without understanding the consequences. The package route is usually easier to audit on a Debian host because its paths and update behavior follow system conventions; the tarball route can make sense when a required upstream version is unavailable, but it transfers more operational responsibility to you.

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

Single-site and multisite layouts are not interchangeable

The virtual host above is a straightforward single-site arrangement. Debian also documents an alternate helper-script method for pretty permalinks and multisite deployments. Those configurations can require different Apache rules, rewrite support and hostname or path decisions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Decide whether the server will host one independent site or a network before installing multiple instances. For multisite, read the Debian README and use its helper-script method rather than adding copied rewrite rules to the single-site file. A single-site configuration that works at /wp is not evidence that a network installation is configured correctly. Plan DNS, cookies, administrator roles, backups and domain mapping before converting a working site.

Troubleshoot the failures that occur most often

Apache shows a directory listing or downloads PHP

Check that the WordPress directory block contains DirectoryIndex index.php, that the virtual host is enabled, and that Apache’s PHP integration is installed. Run:

sudo apache2ctl configtest
sudo apache2ctl -S
sudo systemctl status apache2

A directory listing usually means Apache is serving the wrong document root or is missing the index directive. PHP downloads generally indicate that the PHP Apache module is not installed or enabled. Also verify that the request is reaching the intended virtual host instead of the default site.

WordPress reports a database connection error

Compare every value in the hostname-specific file with the database account:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • DB_NAME must be wordpress, unless you chose another database name.
  • DB_USER must match the dedicated account.
  • DB_PASSWORD must match exactly, including punctuation.
  • DB_HOST should match the account host; the example uses localhost.
  • MariaDB must be running.
  • The account must have privileges on the selected database.

Check service state and grants:

sudo systemctl status mariadb
sudo mariadb -e "SHOW GRANTS FOR 'wordpress'@'localhost';"

If the password was exposed while troubleshooting, change it in MariaDB and update the protected configuration file immediately. A successful login with the administrative account does not prove that the WordPress account has the correct host restriction or database grant.

The browser reaches the wrong site

Verify that DNS resolves to this server, the request’s hostname matches the ServerName, and the WordPress virtual host is enabled. sudo apache2ctl -S shows which virtual host Apache will select. A stale DNS record or an enabled default site can make a correct WordPress installation appear missing. Test with the exact hostname used in the configuration filename.

Pretty permalinks return 404 responses

Review Apache rewrite and module settings and follow the Debian instructions in /usr/share/doc/wordpress/README.Debian. Do not paste rewrite rules from an unrelated upstream installation method; Debian’s helper scripts and package paths may differ. Test the home page first, then one post URL, so you know whether the issue affects routing generally or only rewrite handling.

Uploads fail or themes cannot be installed

Confirm that the alias points to /var/lib/wordpress/wp-content, that the directory exists, and that the web process can write where Debian expects uploads. Inspect Apache’s error log at /var/log/apache2/error.log and avoid making the entire filesystem world-writable as a shortcut. Correct the specific directory ownership or permissions required by the package rather than granting unrestricted access to the whole server.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The package version is older than a plugin requires

First compare the plugin’s minimum WordPress and PHP versions with the versions available from your Debian release. A release package can intentionally trail upstream. Upgrade Debian through its supported release process or choose a separately managed upstream installation only after planning its security updates, backups, permissions and migration path. Do not replace package files in place with an extracted tarball; use a clearly separated migration plan.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Production hardening checklist

  • Use a current Debian release and verify PHP, MariaDB or MySQL, and WordPress compatibility before deployment.
  • Serve the site over HTTPS and redirect plain HTTP after TLS is working.
  • Keep Apache, PHP, MariaDB and WordPress packages updated with Debian’s package manager.
  • Use a dedicated database and non-administrator database account.
  • Protect /etc/wordpress/config-*.php and never publish its database password.
  • Restrict SSH and database access with the host firewall and network policy appropriate to your environment.
  • Back up both the database and /var/lib/wordpress/wp-content, then test restoration.
  • Install only maintained plugins and themes, and remove components you no longer use.
  • Monitor Apache and MariaDB logs so failed logins, PHP errors and storage problems are visible.
  • Check available disk space before updates and media imports.

Apache or Nginx is recommended as the most robust and featureful server for running WordPress, but any server that supports PHP and MySQL will do.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

For this Debian procedure, Apache is the web server, MariaDB supplies the MySQL-compatible database, and Debian’s package conventions connect the two through the hostname-specific configuration file. Following those boundaries is what keeps installation, upgrades and troubleshooting predictable.

Frequently Asked Questions

Which Debian packages install the complete WordPress LAMP stack?

Install Debian’s integrated route with sudo apt update followed by sudo apt install wordpress curl apache2 mariadb-server. If the dependency resolver has not supplied them, add php-mysql and libapache2-mod-php.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can WordPress use the MariaDB root or administrator account?

No. Create a separate database and user, then grant that user privileges only on the WordPress database. Using the administrator account increases the impact of a compromised plugin or application credential.

Where does Debian store WordPress files?

The packaged application is under /usr/share/wordpress, writable themes, plugins and uploads are under /var/lib/wordpress/wp-content, and host-specific database settings belong under /etc/wordpress.

Why does Debian use a file named config-myblog.example.com.php?

Debian chooses the configuration file from the HTTP hostname. A hostname-specific file lets separate virtual hosts use different databases and credentials. Debian also documents fallback names such as config-example.com.php and config-default.php.

What URL opens the Debian WordPress installer?

Browse to http://myblog.example.com/wp. Debian documents that path redirecting to /wp/wp-admin/install.php, where you enter the site title, administrator account, password and email.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Is HTTPS required for a private test installation?

A local or private test machine can use an internal hostname, but HTTPS is part of WordPress’s recommended production environment. Configure TLS before exposing an administrator login to the public internet.

How much memory does WordPress need?

WordPress’s hosting handbook lists 128 MB as sufficient for a vanilla installation. Builders, media processing, imports, traffic and plugins can require more, so treat 128 MB as a baseline rather than a production capacity plan.

What should be backed up?

Back up the MariaDB WordPress database, /var/lib/wordpress/wp-content, and the hostname-specific file in /etc/wordpress. Store copies outside the web root and test restoration on a non-production machine.

Should I use Debian’s package or an upstream WordPress tarball?

The Debian package integrates with Debian paths, Apache conventions and package updates. An upstream tarball offers direct control over release timing but requires you to design the layout, permissions, update process and security maintenance yourself. Do not mix the two layouts casually.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why do pretty permalinks return 404 errors?

Review Apache rewrite and module settings and follow the instructions in /usr/share/doc/wordpress/README.Debian. Rules copied from an unrelated tarball installation may not match Debian’s helper scripts or paths.

The Bottom Line

For a predictable Debian deployment, install the packaged WordPress stack, harden MariaDB, create a database-scoped application user, map Apache to /usr/share/wordpress and /var/lib/wordpress/wp-content, add the hostname-specific file under /etc/wordpress, and finish at /wp. Keep the package, PHP, Apache and MariaDB versions current, use HTTPS for production, and back up both the database and content directory.

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.