• The new Python extension is now available. It allows customers to deploy and manage WSGI-based Python applications on their websites directly from Plesk.
  • The Plesk Mobile apps for iOS and Android and the Plesk Mobile Center extension have been deprecated, and are no longer available for new installations. In Plesk Obsidian 18.0.84, the Plesk Mobile Center extension will be removed from servers during the upgrade, and the Plesk Mobile apps will lose their server management features.
  • The Social Login extension has been deprecated and will be removed in Plesk Obsidian 18.0.84. After that, it will no longer be possible to log in to Plesk with a Google, Facebook, GitHub account, or with a passkey. Plesk usernames and passwords, as well as logging in with a WebPros Account, are not affected.

Issue Joomla Toolkit - Not all instances shown

TRmediendesign

New Pleskian
Server operating system version
Ubuntu 24.04.4 LTS
Plesk version and microupdate number
Plesk Obsidian 18.0.78
Hello,

I got another problem with the Joomla! Toolkit. I can start "Find Joomla! Websites" and it finishes without an error, showing certain Joomla! installations. Unfortunately it does not show all my instances and I got no clue, why some of them are missing. The missing installations work properly and the file structures are equal to the ones shown in the Joomla! Toolkit. There is no site shown as "Broken" or "Detached" as well. I compared all the shown and missing instances, but could not figure out any difference or reason for the problem.

Kind regards,
Tobias
 
Hi, Tobias. When you say the file structure is the same does that include the document root? If the document root is not standard (httpdocs) and contains characters like underscore, the toolkit usually fails.
 
Hi, Tobias. When you say the file structure is the same does that include the document root? If the document root is not standard (httpdocs) and contains characters like underscore, the toolkit usually fails.
Hi,

the document root /httpdocs/www is working for multiple sites, but not for all of them. I can see the Joomla icon in the domain overview and in the dashboard of the subscription, but when I click on them it says "No items found." in the Joomla! Toolkit.

Kind regards,
Tobias
 
Thank you for the confirmation. Please temporarily enable debug mode, attempt a new search and double-check what's being logged into /var/log/plesk/panel.log for extension/joomla-toolkit. Also, please run the following commands:

Code:
sqlite3 /usr/local/psa/var/modules/joomla-toolkit/joomla-toolkit.sqlite3
select id,domain,displayName,site,root from instances;

and confirm if you see the missing instances listed.
 
Thanks. Could you please check if there are any plugins unique for the instances that cannot be found? There is a recent case for "Linky Map", which was identified to be causing issues with CLI operations and consequently preventing the toolkit from identifying the instances.
 
Thank you for the confirmation. I am afraid that I am out suggestions what might be causing the issue. I would suggest opening a ticket with Plesk support for further investigation on your server. To sign-in and open a ticket please go to:
If you got your license from a reseller, your reseller is in charge of providing you with support. You can raise the inquiry with them and they can forward it to our team for further processing. If the reseller does not provide support, here is an alternative to get support directly from Plesk:
 
Is there a know fix for that problem?

i Have three Joomla Instances (with VIrtuemart and VM OnePage Checkout) - and those instances are gone in the toolkit as well...
 
Just for the record:
In my case it were the plugins "vmloaderpluginupdate.php" from the extension Virtuemart and the extension "OnePage Checkout", which prevented the Joomla-Toolkit to show the instances.

When i disabled both plugins - the instances reappeared in the Joomla toolkit.
 
Hey @TRmediendesign , hey @ThiloS ,

quick heads-up before anything else: the only confirmed fix in this thread is Thilo's (VirtueMart's vmloaderpluginupdate.php plus OnePage Checkout, disabled = instances came back). For Tobias the cause is still unknown, so what follows is a way to find it, not a guaranteed fix.

The theory that fits everything so far: the Toolkit asks each Joomla instance for info through Joomla's CLI. If a plugin throws an error or spits out extra output during that call, the Toolkit drops the instance. That's why the sqlite DB still lists them, but the UI doesn't, and nothing shows up as "Broken". Plesk staff mentioned the same thing with the Linky Map plugin. This is a theory, not proof.

--- READ THIS BEFORE YOU RUN ANYTHING ---

1) Steps 1 and 2 only read. Step 3 CHANGES a live database. Only do Step 3 if Step 1 clearly points at one specific plugin.

2) If the site is a shop (VirtueMart, OnePage Checkout, anything with a checkout): disabling a plugin can break ordering for real customers. Test on a copy first, or do it outside business hours, and keep the backup from Step 3 ready.

3) Plain "mysql" or "mysqldump" as root will NOT work on a Plesk server. Plesk's MariaDB has no root user, it uses "admin" and keeps the password in /etc/psa/.psa.shadow. Without that you just get "Access denied for user 'root'@'localhost'". All DB commands below use the admin login for that reason. Don't skip the backup just because the command errors out, check that the dump file exists and isn't empty before you continue.

Placeholders are in <angle brackets>. Run everything as root.

Step 1: Run the Joomla CLI by hand on a missing instance (read only)
Use the system user of the subscription and the PHP version the site uses. Joomla 4/5 only, Joomla 3 has no cli/joomla.php.
Code:
plesk bin site --info <DOMAIN> | grep -i -E "system user|php"
su -s /bin/bash <SYSTEM_USER> -c "cd <DOCROOT> && /opt/plesk/php/<PHP_VERSION>/bin/php cli/joomla.php list"

Then the same on one instance that DOES show up in the Toolkit. If the missing one prints warnings, notices, fatal errors or any extra junk above the normal output and the working one doesn't, you've found the culprit area. The error usually names the plugin file.

Step 2: Compare plugin files between a working and a missing instance (read only)
Even if the extension list looks the same, this catches leftovers and files you wouldn't spot in the backend.
Code:
diff <(cd <DOCROOT_WORKING> && find plugins -type f | sort) <(cd <DOCROOT_MISSING> && find plugins -type f | sort)

Anything that exists only on the missing instances is suspect. Also check the PHP error log of the domain at the time you run Step 1.

Step 3: Disable the suspect plugin, then rescan (CHANGES the database)
Only if Step 1 or 2 clearly names a plugin, and only after reading the warning above. Easiest and safest: Joomla backend > System > Plugins > disable it there. Use the database route only if the backend is no option.

First find the DB name and table prefix of that instance:
Code:
grep -E "(db|dbprefix|host) =" <DOCROOT>/configuration.php

Backup first (admin login, see warning 3), then check that the file isn't empty:
Code:
mysqldump -uadmin -p"$(cat /etc/psa/.psa.shadow)" <DB_NAME> > /root/<DB_NAME>-$(date +%F).sql
ls -lh /root/<DB_NAME>-$(date +%F).sql

Look up the plugin, then disable exactly that one row:
Code:
mysql -uadmin -p"$(cat /etc/psa/.psa.shadow)" <DB_NAME> -e "select extension_id,name,element,type,enabled from <PREFIX>_extensions where type='plugin' and element like '%<PLUGIN_NAME>%'"
mysql -uadmin -p"$(cat /etc/psa/.psa.shadow)" <DB_NAME> -e "update <PREFIX>_extensions set enabled=0 where extension_id=<EXTENSION_ID>"

To undo it, same command with enabled=1.

Then run "Find Joomla! Websites" again in the Toolkit. For Thilo's case the two culprits were:
Code:
vmloaderpluginupdate.php   (VirtueMart)
OnePage Checkout           (extension)

If the instance comes back, you know which plugin it is. Update or replace it, re-enable and check again.

Step 4: Still nothing?
Open a ticket with Plesk support (as suggested earlier in the thread) and attach:
Code:
plesk -v
sqlite3 /usr/local/psa/var/modules/joomla-toolkit/joomla-toolkit.sqlite3 "select id,domain,displayName,site,root from instances;"

plus the full output of the CLI run from Step 1 for one missing instance. That's the thing they'll want to see first.

Hope that helps. Report back what Step 1 prints, that's the interesting part.

Regards
Tessa
 
Small correction to my post above: Step 1 isn't what the Toolkit actually runs, and disabling the plugin is only a workaround. To find the real cause, enable Plesk debug mode (panel.ini: enabled = on, filter.priority = 7, show.util_exec = on), run "plesk ext joomla-toolkit --instances-scan" and check /var/log/plesk/panel.log for the "site:list" call and any "Deprecated" or "Syntax error" lines.

Regards
Tessa
 
Back
Top