A 500 error on a brand-new Joomla install is one of the most disorienting problems a first-time self-hoster can hit: there's no Joomla error message to read, no log entry that points at Joomla itself, and every guide online assumes you already have a working site. If you're setting up Joomla on your own Linux server for the first time and you're stuck staring at a blank 500 page, here's how to actually isolate the cause instead of guessing your way through it.

Why a fresh-install 500 error is different from a normal Joomla error

Once Joomla is installed and running, a 500 error usually points at Joomla itself: a broken extension, a bad .htaccess rule, a PHP fatal error in a plugin. But when the 500 happens during installation, Joomla hasn't even started yet in any meaningful sense, so you're almost always looking at a problem in the server stack underneath it (Apache, PHP, or the database), not in Joomla's own code. That distinction matters, because it tells you where to actually spend your debugging time.

Step 1: Confirm your LAMP stack works before you touch Joomla at all

Before installing Joomla, prove each layer of the stack works on its own:

  • Apache: point your browser at http://localhost/ (not your public IP or domain yet). You should see your web server's default page or a directory listing. If you don't, nothing above this layer can work either.
  • PHP: run php -v from the command line to confirm PHP is installed and check the version against Joomla's current requirements (see below). A default Apache page loading doesn't guarantee PHP is wired into Apache correctly.
  • MySQL/MariaDB: confirm the database server is running and that you can log in with the database user and password you intend to give Joomla, using the command line or a tool like phpMyAdmin.

Skipping this step is the single most common reason installs stall: people jump straight into troubleshooting Joomla when the actual fault is one layer down, in a service that was never confirmed to work in the first place.

Step 2: Understand that configuration.php doesn't exist yet, and that's normal

A lot of guides tell you to check settings in configuration.php, which leads new self-hosters to go looking for a file that genuinely isn't there yet. Before installation, Joomla only ships a template at installation/configuration.php-dist. Joomla's own installer generates the real configuration.php in your site's root folder automatically once the web-based install wizard completes successfully. Editing the -dist file by hand is only a fallback for when the installer can't write the file itself (usually a folder-permissions problem), not a normal step.

Step 3: Make sure you actually ran the web installer

This trips up more first-time Linux self-hosters than anything else: unzipping the Joomla package and setting folder permissions is not the same as installing Joomla. After the files are in place, you still need to open index.php in your browser and go through Joomla's own multi-step install wizard (site name, admin account, database credentials). Until that wizard finishes, there is no working site, just an installer waiting to run, which is exactly the kind of state that can throw a 500 error if a lower-level requirement isn't met yet. The official Joomla installation guide walks through this sequence end to end if you want the canonical steps.

Step 4: Match your PHP limits to what Joomla actually needs

Joomla's official technical requirements call for a PHP memory limit of at least 256MB, along with the json, simplexml, dom, zlib, gd, and mysqlnd/pdo_mysql/pdo_pgsql extensions (mbstring is recommended too). A memory limit that's too low, or a missing required extension, can produce a 500 during install with nothing useful in Joomla's own logs, because the failure happens before Joomla can log anything. Check your live PHP configuration with phpinfo() or php -i rather than assuming your php.ini matches what you think you set.

Step 5: Let a diagnostic tool do the environment audit for you

Manually checking every PHP setting, extension, and file permission by hand is slow and error-prone. The Joomla community's Forum Post Assistant (FPA) is a free, standalone script built exactly for this: you drop the single PHP file into your site's folder, open it in a browser, and it reports your server environment, PHP configuration, installed extensions, and folder permissions in one pass, without depending on Joomla's own admin panel being reachable, which matters when Joomla itself is the thing that isn't working. It's the same tool experienced volunteers on the official Joomla forum ask for by name when they're helping someone debug an install.

Step 6: If it's still failing, read the real server error log, not Joomla's

A 500 error page tells you almost nothing on its own. The actual cause is in your web server's or PHP's own error log, not anywhere Joomla can write to at this stage. On a typical Debian/Ubuntu Apache setup this is commonly /var/log/apache2/error.log; on other distros or managed hosting it may be exposed differently through your control panel. Tail that log while you reload the install page and you'll usually see the exact PHP fatal error or permissions failure that's producing the 500, which turns a guessing game into a two-minute fix.

Quick checklist

  • Does http://localhost/ load Apache's own default page?
  • Does php -v confirm PHP is actually installed and roughly the version you expect?
  • Can you log into MySQL/MariaDB with the exact credentials you'll give Joomla?
  • Did you actually open index.php in a browser and run the install wizard, not just unzip the package?
  • Is your PHP memory limit at least 256MB, with the required extensions enabled?
  • Have you run FPA (or checked phpinfo()) to see your real environment instead of assuming it?
  • Have you checked your web server's actual error log, not just the blank 500 page?

Work down that list in order and a fresh-install 500 almost always resolves, because by the time you reach the bottom, you've confirmed every layer Joomla depends on actually works, rather than guessing at the one you assumed was fine.

Rather not debug it yourself?

If you would prefer someone set up, fix, or maintain your Joomla site for you, that is what I do. Send me your site for a quick, free look.

See my Joomla services