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

You can run several Joomla sites against one memcached daemon, but you should not point them all at one undivided key space. The safe default is to give each site its own memcached instance, port, or Unix socket. Joomla’s documented configuration exposes a host and port, while current Joomla 4 and 5 source does not establish that cache keys are automatically prefixed per site. Without verified namespacing, one site can overwrite another site’s cached values, and a cache flush can affect every site.

What “one memcached server” should mean

Memcached is a networked in-memory cache. “One server” can describe either one daemon with completely shared keys or one physical machine running several isolated memcached endpoints. Those designs have very different failure modes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Design How Joomla connects Isolation Recommendation
One endpoint, no per-site namespace Every site uses the same host and port None; keys and flush operations are shared Avoid
Separate port per site Each site receives a distinct port, such as 11211, 11212, or another administrator-assigned port Strong practical isolation between daemons Preferred when the host supports multiple instances
Separate Unix socket per site Each site points to its own socket path Strong local isolation; exact Joomla and host support must be checked Good option on a single machine when socket paths are supported
One endpoint with verified key prefixes All sites share a port but Joomla demonstrably adds a unique prefix for each installation Depends entirely on the Joomla version and implementation Use only after inspecting the exact version’s source or vendor documentation

A separate endpoint is not a second physical server. You can still use one host, one operating-system service account strategy, and one monitoring plan; the important boundary is that each Joomla installation has an independent key space and can be cleared without deleting another site’s entries.

Why an undivided cache causes trouble

Key collisions

Applications create cache keys from things such as component names, URLs, query results, and language or device variants. If two Joomla installations generate the same key and use the same memcached endpoint, the later write can replace the earlier value. The visible symptom can be stale, incorrect, or cross-site content rather than an obvious connection error.

Flush operations affect every site

A flush directed at a shared endpoint removes entries belonging to all connected sites. A deployment or troubleshooting action for one site can therefore make every other site cold-cache at the same time. A separate daemon, port, or socket gives each site a bounded flush scope.

Joomla namespacing is not established here

Community documentation for other systems recommends a unique prefix when several installations share memcached, but that is analogy, not proof of Joomla behavior. No official Joomla source identified here confirms automatic per-site prefixes for Joomla 4 or 5. Do not infer that $secret, $cache_platformprefix, or another configuration value creates a complete site namespace without checking the code for your installed release.

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

Check compatibility before changing configuration.php

Identify the PHP extension and its class

The cache-handler name must match the PHP extension actually loaded by the web process:

PHP extension PHP class Joomla handler value used in community examples
Memcached Memcached memcached
Memcache Memcache memcache

These names are not interchangeable. A reported Joomla 3.8 case produced a “not supported on this platform” error when the selected handler did not match the installed extension.

On a shell where the same PHP build is used by the website, you can check loaded classes with:

php -r "var_dump(class_exists('Memcached'), class_exists('Memcache'));"

A command-line result does not prove that PHP-FPM or the web server uses the same php.ini. Confirm the extension in the web SAPI as well, and ask the host to enable the matching module if neither class is available.

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

Confirm the Joomla release and configuration property names

Community guides for Joomla 2.5 and 3 show properties named $caching, $cache_handler, $memcached_server_host, and $memcached_server_port. Property names and supported handlers can change, so compare your file with the configuration.php-dist shipped with the exact Joomla version before editing. Keep a backup of configuration.php; a PHP syntax error can take the site offline.

Check the host’s service policy

Managed and shared hosts vary. One hosting guide says memcached is unavailable on non-Turbo shared accounts and uses a Unix-socket path on Turbo accounts, but the provider scope and reliability of that guidance are not established for every host. Treat support, socket paths, and allowed ports as provider-specific facts that must be confirmed with your host.

Recommended setup: isolate each Joomla site

The following procedure keeps one physical machine while giving each site an independent cache endpoint.

1. Assign an endpoint to every site

  1. List the Joomla sites that will use memcached.
  2. Choose a distinct TCP port for each site, or obtain a distinct Unix-socket path if your host provides socket-based memcached.
  3. Record the mapping in your operations notes—for example, Site A to port 11211 and Site B to port 11212. The numbers are examples; use ports permitted by your operating system and hosting plan.
  4. Ensure the daemon instances bind only to the interfaces required by the sites. For sites on the same machine, a loopback address or local socket limits unnecessary network exposure.

2. Verify the endpoint before involving Joomla

Ask the administrator or host to confirm that each endpoint is listening and that the web server’s user can reach it. Test one endpoint at a time. If a socket is used, verify both the path and filesystem permissions. Do not proceed on the assumption that a socket path accepted by the host is also accepted by your Joomla release; the Joomla cache adapter must support the format.

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

3. Select the matching cache handler

Use memcached only when the Memcached class is available, and use memcache only when the Memcache class is available. If your version’s administrator interface offers a cache-handler selector, its value must agree with the PHP module; otherwise edit the configuration file using the spelling expected by that release.

4. Edit each site’s configuration.php

A pattern used by older Joomla community guides is:

public $caching = '2';
public $cache_handler = 'memcached';
public $memcached_server_host = '127.0.0.1';
public $memcached_server_port = '11211';

For a site using the Memcache extension, the handler would be 'memcache' instead. Replace the host and port with that site’s assigned endpoint. If your host requires a Unix socket, use the socket value and property format documented for your Joomla version and hosting environment; do not copy a TCP example unchanged.

The value '2' is the progressive-caching setting shown in the community examples. Use the caching choices exposed by your installed Joomla release if they differ. Do not copy properties that are absent from your current distribution without checking the version documentation.

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

5. Clear only the site’s old cache

In the Joomla administrator, open the cache-maintenance screen—typically System → Maintenance → Clear Cache; older releases may label it System → Clear Cache. Clear the site after saving its configuration so stale entries from the previous backend are not mistaken for new memcached data. If the endpoint is shared, a flush from one site can clear other sites; this is another reason to migrate to separate endpoints first.

6. Confirm reads and writes

Load the public site twice, checking that the first request can populate the cache and a subsequent request remains error-free. Review the Joomla error log and the PHP web-server log for handler, connection, or permission errors. Test logged-in and logged-out views separately if your site varies output by session or access level. A successful page load alone does not prove that the intended memcached endpoint is being used, so verify the configured host, port, and PHP module in the runtime environment.

7. Repeat with a second site

Configure the next Joomla installation with its own endpoint and repeat the clear-and-verify cycle. Keep the host and port mapping under change control so a later deployment does not accidentally point two sites at the same daemon.

When a genuinely shared endpoint is acceptable

Use one port for multiple Joomla sites only when you have verified, for the exact Joomla version and cache adapter in production, that every cache key is isolated by site. Verification should be based on Joomla source or authoritative vendor documentation, not on the fact that the sites appear to work during a short test.

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.

A practical verification checklist

  • Identify the Joomla minor version and the PHP cache adapter in use.
  • Inspect the adapter and cache classes for the code that constructs keys.
  • Establish what value differentiates two installations: a documented prefix, installation identifier, or another guaranteed namespace.
  • Confirm that the namespace is applied to every cache group used by the site, not only page output.
  • Test two sites with deliberately similar URLs, component names, languages, and device variants.
  • Perform a cache clear for one site and verify that the other site remains warm and correct.

If any item is unknown, treat the endpoint as unisolated and use separate ports or sockets. The absence of a documented prefix is not evidence that Joomla derives one from $secret or $cache_platformprefix. A Polish configuration guide lists those settings and describes separate desktop and mobile cache behavior, but it does not establish how they participate in a site-wide key hash or which Joomla version it targets.

Do not assume memcached is a supported session backend

Page caching and session storage are separate decisions. A 2014-era community forum discussion describes changing a session handler to 'memcache' and adding a memcache_settings option, but that advice is for a much older Joomla generation and has not been verified here for Joomla 4 or 5.

Unless the documentation for your exact release explicitly supports the selected session handler, leave sessions on the supported backend and configure memcached for Joomla’s cache only. Moving sessions without a tested recovery path can log out every user or prevent authentication after a cache restart. If you must evaluate memcached sessions, test login, logout, session expiry, administrator access, and failover on a staging copy before changing production.

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

Operations for several isolated Joomla caches

Capacity and eviction

Each memcached instance has its own memory allocation and eviction behavior. Allocate capacity deliberately rather than assuming that one large pool will automatically give every site fair space. Record which site owns which endpoint so an eviction alert can be associated with the correct application.

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

Deployments and cache clears

Clear the endpoint belonging to the site being deployed. Never run a broad flush against a shared endpoint merely because one site changed. With separate ports or sockets, the blast radius is limited by design.

Monitoring

Monitor endpoint availability, connection failures, evictions, and memory pressure per instance. Joomla logs should be correlated with the corresponding memcached endpoint; otherwise a problem on one site can be misdiagnosed as a Joomla-wide failure.

Backups and expectations

Memcached is disposable cache, not durable storage. Your database, uploaded files, and Joomla configuration still require their normal backups. A daemon restart should result in a cold cache and slower first requests, not data loss, provided the site does not rely on memcached for an unsupported session configuration.

Troubleshooting common failures

Symptom Likely cause Action
“Not supported on this platform” or a handler initialization error The configured handler does not match the loaded PHP class, or the extension is missing from the web SAPI Check Memcached versus Memcache, verify the web PHP configuration, and use the handler spelling required by the Joomla release
Connection refused or timeout Wrong port, stopped daemon, firewall rule, or an incorrect socket path Confirm the endpoint mapping, service status, bind address, and socket permissions with the host or system administrator
Pages remain uncached Caching is disabled, the configuration was not loaded, or the selected adapter cannot initialize Check the site’s $caching value, review logs, clear the old cache, and confirm that the web process sees the extension
One site displays another site’s content or inconsistent values Two installations share an unprefixed key space Disable memcached for the affected sites or move them to separate endpoints immediately; investigate and clear only the dedicated endpoint once isolation is in place
Clearing one site logs out users or empties other sites’ caches The sites share an endpoint, and the flush operation is global to that endpoint Stop using the shared flush path and assign a separate port or socket per site
Works in CLI tests but fails through Joomla CLI PHP and web-server PHP load different extensions or configuration files Check the PHP-FPM/Apache environment used by the site, not only the command-line binary

Security and change-control precautions

  • Keep memcached reachable only from the interfaces and hosts that need it; do not expose an unauthenticated cache service to the public internet.
  • Use filesystem permissions that allow the Joomla web user to reach its assigned Unix socket, but do not make the socket broadly writable.
  • Document every site-to-endpoint assignment and review it after migrations, cloning, or staging-to-production copies.
  • When cloning a Joomla site, assign a new endpoint before enabling caching on the clone. A clone that retains the production endpoint can collide with the live site.
  • Test cache clears and rollback procedures on a staging installation so an operator knows exactly which endpoint is affected.

Decision guide

Your situation Choose
You control the server and can run multiple daemons One memcached instance per Joomla site, using separate ports or sockets
Your host offers only one managed endpoint Ask whether Joomla key namespacing is documented for your exact version; otherwise disable memcached for some sites or move to hosting that provides isolation
You are on a shared account with unclear support Confirm whether memcached is available on your plan and whether the host requires a socket; do not rely on a generic TCP example
You want memcached for sessions Use it only when the exact Joomla release documents and supports that session handler; otherwise keep the supported session backend
You cannot verify Joomla’s key construction Do not share the endpoint; isolate by port or socket

Bottom line

Running several Joomla sites on one physical memcached server is practical when each site receives an isolated daemon, port, or Unix socket. Configure the correct PHP handler, verify the property names for your Joomla release, clear and test each site independently, and treat sessions as a separate compatibility question. A single unprefixed endpoint is an avoidable collision and cache-flush risk; use it only when per-site namespacing is proven for the exact Joomla version in production.

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.

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.