Installer in Joomla
Elke Joomla-site groeit door er dingen aan toe te voegen: een back-uptool, een formulierbouwer, een nieuwe template, een taalpakket. Een enkel core-component regelt dit allemaal. Het installeert het bestand, houdt het up-to-date en verwijdert het weer wanneer je klaar bent. Dat component is com_installer, en je komt het tegen elke keer dat je het menu Systeem opent.
Dit artikel legt uit hoe de Joomla Installer-component echt werkt. Het behandelt de basis voor website-eigenaren en redacteuren, de dagelijkse schermen voor beheerders en de technische details voor ontwikkelaars: de weergaven, de installatiepijplijn, het updatesysteem, de databasetabellen, de Opties en de REST API.
Een component, zes schermen en die ene pijplijn die alles wat je aan Joomla toevoegt installeert, bijwerkt en verwijdert.
Het doel is simpel: je com_installer goed genoeg leren begrijpen zodat je met vertrouwen extensies kunt installeren, bijwerken en problemen kunt oplossen.
1. De basis
1.1 Wat com_installer is
com_installer is het core Joomla-component dat de hele levensloop van een extensie beheert: installeren, inschakelen, uitschakelen, bijwerken en verwijderen. Het heeft geen eigen menu op het hoogste niveau. In plaats daarvan verschijnt het als een groep schermen onder Systeem in de beheeromgeving.
Het is zelf een extensie (een component met de naam com_installer) en het is gemarkeerd als beschermd, zodat je het niet per ongeluk kunt verwijderen. Zonder dit component zou je niets anders kunnen toevoegen of bijwerken.
Als een scherm je een extensie laat toevoegen, bijwerken of verwijderen, dan kijk je naar com_installer.
1.2 Waar je het vindt
Alle installerschermen staan onder het menu Systeem, verdeeld over drie groepen:
Systeem
├─ Installeren
│ └─ Extensies (nieuwe toevoegen)
├─ Bijwerken
│ └─ Extensies (openstaande extensie-updates)
└─ Beheren
├─ Extensies (in-/uitschakelen / verwijderen, alle records zien)
├─ Updatesites (waar updates vandaan komen)
├─ Detecteren (bestanden registreren die al op de schijf staan)
├─ Database (het schema controleren en herstellen)
└─ Waarschuwingen (problemen met de omgeving)
Elke regel is een andere weergave van hetzelfde component. De URL verraadt het: elk van deze schermen is index.php?option=com_installer&view=... in de beheeromgeving.
1.3 Wat het niet is
com_installer beheert extensies: de uitbreidingen die je aan Joomla vastmaakt. Het werkt de Joomla-core zelf niet bij. Dat is een apart component, com_joomlaupdate, te bereiken via Systeem → Bijwerken → Joomla. Mensen verwarren de twee vaak, dus houd het onderscheid in gedachten: com_installer voor je uitbreidingen, com_joomlaupdate voor het CMS.
2. De anatomie van het component
2.1 Een component, veel weergaven
com_installer volgt de standaard Model-View-Controller (MVC) structuur van Joomla. Elk scherm dat je onder Systeem zag, is een weergave met een eigen model en template. De namen van de weergaven kennen helpt wanneer je een URL of een bugmelding leest.
| Weergave | Scherm | Taak |
|---|---|---|
install |
Installeren → Extensies | Een pakket uploaden, ophalen of aanwijzen en installeren |
manage |
Beheren → Extensies | Alle geinstalleerde extensies tonen; in-/uitschakelen, verwijderen |
update |
Bijwerken → Extensies | Openstaande extensie-updates tonen en toepassen |
updatesites |
Beheren → Updatesites | De update-URL's die Joomla raadpleegt tonen en opnieuw opbouwen |
discover |
Beheren → Detecteren | Manifesten op de schijf vinden die geen databaserecord hebben |
database |
Beheren → Database | Het databaseschema vergelijken en herstellen |
warnings |
Beheren → Waarschuwingen | Omgevingsproblemen tonen die de installer heeft gevonden |
languages |
Talen installeren | Taalpakketten installeren vanuit de officiele lijst |
2.2 Het gedeelde basismodel
De lijstweergaven (manage, update, discover, updatesites, languages) breiden allemaal een gedeeld model uit, InstallerModel. Daarom zien ze er hetzelfde uit en gedragen ze zich hetzelfde: hetzelfde zoekvak, dezelfde filters, dezelfde paginering. Elke weergave voegt alleen toe wat voor haar speciaal is.
2.3 De controllers
Elke actie die je aanklikt verwijst naar een controller. De namen lezen als de knoppen:
InstallControllerverzorgt de eigenlijke installatie vanaf upload, map of URL.ManageControllerverzorgt inschakelen, uitschakelen en verwijderen (intern "remove").UpdateControllerdownloadt en past openstaande updates toe.DiscoverControllervoert de schijfscan uit en registreert gevonden extensies.DatabaseControllervoert het schemaherstel ("Fix") uit.UpdatesiteControllerenUpdatesitesControllerbewerken en herbouwen updatesites.
Je raakt deze namen zelden direct aan, maar ze verschijnen in het task-deel van een URL, bijvoorbeeld task=update.update, en in de toegangscontroles die later worden beschreven.
3. Extensies installeren
3.1 De vier manieren om te installeren
De weergave install biedt vier tabbladen. Ze eindigen allemaal in dezelfde pijplijn; ze verschillen alleen in hoe het pakket de server bereikt.
| Methode | Hoe | Wanneer te gebruiken |
|---|---|---|
| Pakketbestand uploaden | Sleep een .zip of kies er een van je computer |
De normale manier - je hebt het bestand |
| Installeren vanuit map | Geef een serverpad naar een al uitgepakte map | Grote pakketten, of bestanden geupload via FTP |
| Installeren vanaf URL | Plak een directe link naar een .zip |
De leverancier geeft je een downloadlink |
| Installeren vanaf het web | Blader door de Joomla Extensions Directory binnen Joomla | Ontdekken en installeren op een plek |
"Installeren vanaf het web" is een app-store-ervaring die in de backend is ingebouwd. Het communiceert met de Joomla Extensions Directory (JED) via een aparte plugin, en je moet eenmalig de voorwaarden accepteren voordat het verschijnt.
3.2 Wat "installeren" eigenlijk doet
Welke methode je ook kiest, com_installer een pakket aanreiken start dezelfde vaste volgorde:
1. Pak het pakket uit in een tijdelijke map
2. Vind en verwerk het manifest → lees type, files, sql, scriptfile
3. Voer het script preflight() uit → kan de installatie afbreken
4. Kopieer bestanden naar hun plek → components/, modules/, plugins/, media/
5. Voer de install-SQL uit → CREATE TABLE #__example...
6. Registreer de PSR-4-namespace
7. Schrijf het #__extensions-record + manifest_cache
8. Registreer eventuele updatesites uit het manifest
9. Voer het script postflight() uit → basisdata, toon een bericht
10. Verwijder de tijdelijke map
Als een stap mislukt, draait com_installer het geheel terug. Je houdt nooit een half geinstalleerde extensie over die wel op de schijf staat maar in de database ontbreekt.
3.3 De maximale uploadgrootte
De meest voorkomende installatiefout heeft niets met Joomla te maken. Een grote .zip kan de PHP-instellingen upload_max_filesize of post_max_size overschrijden, en dan stopt de upload gewoon. Wanneer een groot pakket niet wil uploaden, gebruik dan Installeren vanuit map (upload de uitgepakte bestanden eerst via FTP) of Installeren vanaf URL. Het scherm Waarschuwingen, dat later aan bod komt, toont deze PHP-limieten zodat je ze in een oogopslag ziet.
4. Detecteren: bestanden installeren die al op de schijf staan
4.1 Waarom Detecteren bestaat
Soms komen extensiebestanden binnen zonder via de installer te gaan: een FTP-upload, een Git-checkout of een map die van een andere site is gekopieerd. De bestanden staan op de schijf, maar er is geen record in de tabel #__extensions, dus Joomla doet alsof de extensie er niet is.
4.2 Hoe het werkt
Beheren → Detecteren
→ scant de standaardmappen op niet-geregistreerde manifesten
→ toont wat het vindt
→ je selecteert ze en klikt op Installeren
→ de ontbrekende #__extensions-records worden aangemaakt
Detecteren kopieert geen bestanden. De bestanden staan al waar ze horen. Het maakt alleen de databaserecords aan die Joomla bewust maken van hun bestaan. Het is de brug tussen "bestanden op de schijf" en "een extensie die Joomla echt beheert".
Als een Detecteren-scan niets vindt nadat je bestanden hebt gekopieerd, controleer dan of het manifest-XML in de map staat die Joomla voor dat type verwacht, en of de mapnaam overeenkomt met de elementnaam.
Naar boven5. Het scherm Beheren
5.1 Je bedieningspaneel
Systeem → Beheren → Extensies is de hoofdweergave van com_installer. Het toont elk record in de tabel #__extensions: core en van derden, in- en uitgeschakeld, elk type.
| Actie | Effect |
|---|---|
| Inschakelen / Uitschakelen | Wisselt de kolom enabled - een uitgeschakelde extensie draait niet |
| Verwijderen | Verwijdert de bestanden, voert de uninstall-SQL uit, wist het record |
| Filteren | Op type, op locatie (site of beheer), op status, op map |
| Zoeken | Op naam; sorteren op naam, type, versie, datum of auteur |
5.2 Beschermd en vergrendeld
Twee markeringen voorkomen dat je de site per ongeluk kapotmaakt:
- Beschermd (
protected = 1) betekent dat de extensie niet kan worden verwijderd. Core-extensies zoalscom_contentdragen deze markering. - Vergrendeld (
locked = 1) betekent dat de extensie niet kan worden uitgeschakeld of bewerkt.
Daarom weigert het scherm Beheren je com_installer zelf te laten verwijderen of de standaardtaal uit te schakelen. De knoppen worden voor die records simpelweg niet aangeboden.
5.3 Filteren op core versus niet-core
Een verse Joomla 6-installatie wordt geleverd met ongeveer 150 extensies. Om je eigen uitbreidingen daartussen te vinden, stel je de locatie- en statusfilters in, of gebruik je het "core"-filter dat de API beschikbaar maakt (later beschreven). Het meeste dagelijkse werk gaat over de kleine set extensies die je zelf hebt toegevoegd.
Naar boven6. Het updatesysteem
6.1 Updatesites: hoe Joomla weet dat er een update is
com_installer gokt nooit. Elke extensie kan een of meer updatesites registreren: URL's die Joomla raadpleegt om te vragen "is er een nieuwere versie?". Ze staan in #__update_sites, gekoppeld aan extensies via #__update_sites_extensions.
#__extensions --< #__update_sites_extensions >-- #__update_sites
(com_example) (https://.../update.xml)
Geen updatesite betekent dat com_installer nooit een update voor die extensie kan aanbieden. Dit is de meest voorkomende reden dat een handmatig geinstalleerde extensie nooit een updatemelding toont.
6.2 Het scherm Updatesites
Beheren → Updatesites toont elke geregistreerde update-URL en laat je deze inschakelen, uitschakelen of verwijderen. Er is ook een knop Opnieuw opbouwen. Opnieuw opbouwen leest elk geinstalleerd manifest opnieuw en maakt de updatesite-records helemaal opnieuw aan. Gebruik het wanneer updates niet meer verschijnen en je vermoedt dat de lijst met updatesites uit de pas is geraakt.
6.3 De updatestroom
Geplande controle / paginalading / "Zoek updates"
↓
Joomla haalt de XML van elke updatesite op
↓
Vergelijkt de geadverteerde versie met de geinstalleerde versie
↓
Nieuwer? → een record in #__updates → getoond onder Bijwerken → Extensies
↓
Je klikt op Bijwerken → Joomla downloadt het pakket
↓
...en voert exact dezelfde installatiepijplijn uit (method="upgrade")
Een update is gewoon een installatie van een nieuwer pakket bovenop het oude. Hetzelfde manifest, dezelfde SQL-stap, dezelfde veilige terugdraaibaarheid. Er is niets bijzonders aan "bijwerken" behalve dat de extensie al bestaat.
6.4 De updatecontrole cachen
Elke updatesite bij elke paginalading raadplegen zou traag zijn, dus com_installer cachet het resultaat. De optie Update-cachetijd (standaard 6 uur) bepaalt hoe lang Joomla de laatste controle vertrouwt voordat het opnieuw vraagt. Als je net een nieuwe versie hebt uitgebracht of geinstalleerd en de update verschijnt niet, gebruik dan de knop Zoek updates om een verse controle te forceren, of verlaag de cachetijd tijdelijk.
Naar boven7. Het scherm Database
7.1 Het schema synchroon houden
Beheren → Database vergelijkt de SQL-updatebestanden die in elke extensie worden meegeleverd met wat er werkelijk in je database staat. Wanneer een update nieuwe bestanden heeft gekopieerd maar de bijbehorende SQL nooit is uitgevoerd, raken de tabellen achter. Dit scherm vindt dat gat.
- Het toont elke extensie waarvan de databasestructuur verouderd is.
- Een knop Herstellen speelt de ontbrekende schemawijzigingen opnieuw af.
- Het is de oplossing voor de rode waarschuwing "Databaseschema is verouderd" op het dashboard.
7.2 Hoe het dit weet: #__schemas
De controle werkt via een kleine tabel, #__schemas, die de hoogste toegepaste schemaversie per extensie vastlegt.
#__schemas
extension_id | version_id
27 (com_content) | 6.0.0
10000 (com_example) | 1.1.0
De updatemap van elke extensie bevat SQL-bestanden die naar versies zijn vernoemd, bijvoorbeeld sql/updates/mysql/1.1.0.sql. Na het uitvoeren ervan schrijft Joomla de hoogste toegepaste versie naar #__schemas. Dus #__extensions.manifest_cache bewaart de versie van het bestand, terwijl #__schemas de versie van de database bewaart. Wanneer de twee niet overeenkomen, is dat de waarschuwing, en Herstellen speelt de ontbrekende SQL opnieuw af om het gat te dichten.
8. Het scherm Waarschuwingen
8.1 Wat het meldt
Beheren → Waarschuwingen toont omgevingsproblemen waar de installer om geeft, voordat ze een mislukte installatie veroorzaken. Typische vermeldingen zijn:
- PHP-instellingen die uploads beperken, zoals
upload_max_filesizeenpost_max_size. - Ontbrekende PHP-extensies die een installatie nodig kan hebben, zoals
zip. - Mappen die niet schrijfbaar zijn, zodat bestanden niet gekopieerd kunnen worden.
- Achtergebleven bestanden van een eerder mislukte installatie.
8.2 Wanneer je hier moet kijken
Controleer dit scherm wanneer een installatie "slaagt" maar de extensie zich vreemd gedraagt, of wanneer een upload zonder duidelijke reden mislukt. De getallen die het toont voor PHP-uploadlimieten verklaren de meeste "mijn pakket wil niet uploaden"-problemen in enkele seconden.
Naar boven9. Onder de motorkap (ontwikkelaarsblik)
9.1 De tabellen die com_installer raakt
| Tabel | Bevat |
|---|---|
#__extensions |
Een record per geinstalleerde extensie - het register van de site |
#__update_sites |
De update-URL's die Joomla raadpleegt |
#__update_sites_extensions |
Koppelt updatesites aan de extensies die ze bedienen |
#__updates |
Openstaande updates gevonden bij de laatste controle |
#__schemas |
De toegepaste databaseschemaversie per extensie |
9.2 De Installer-klasse en haar adapters
Geen van de schermen bevat de echte installatielogica. Ze roepen allemaal een framework-klasse aan, Joomla\CMS\Installer\Installer, die de hele volgorde regisseert: uitpakken, het manifest verwerken, bestanden kopieren, SQL uitvoeren, het record schrijven, events afvuren, opruimen.
Het slimme is dat Installer niet weet hoe een specifiek extensietype wordt geinstalleerd. Dat delegeert het aan een passende adapter. Elk extensietype heeft een eigen adapterklasse onder Joomla\CMS\Installer\Adapter:
| Adapter | Installeert het type |
|---|---|
ComponentAdapter |
component (com_) |
ModuleAdapter |
module (mod_) |
PluginAdapter |
plugin (plg_) |
TemplateAdapter |
template (tpl_) |
LanguageAdapter |
language (xx-XX) |
LibraryAdapter |
library (lib_) |
PackageAdapter |
package (pkg_) |
FileAdapter |
file |
Bij het installeren leest Installer het attribuut type uit het manifest, laadt de adapter met die naam en draagt het werk over. Daarom gaan een component, een plugin en een taalpakket allemaal door "de installer", maar belandt elk op een andere plek met andere databasewijzigingen. Ondersteuning voor een gloednieuw extensietype toevoegen zou betekenen dat je een nieuwe adapter schrijft, niet dat je Installer zelf wijzigt.
Nog twee klassen maken het plaatje compleet: InstallerAdapter is de gedeelde basis die elke adapter uitbreidt, en InstallerScript is de basis voor het eigen preflight/postflight-script van een extensie (behandeld in het extensies-artikel).
9.3 Installer-events: inhaken op installeren en bijwerken
com_installer vuurt events af rond elke installatie, update en verwijdering. Elke ingeschakelde plugin kan meeluisteren, waardoor deze kan reageren wanneer een andere extensie wordt geinstalleerd of bijgewerkt. Zo voegen commerciele leveranciers een downloadsleutel toe op het moment van bijwerken, zonder de core te wijzigen.
| Event | Vuurt af |
|---|---|
onInstallerBeforePackageDownload |
Vlak voordat een pakket wordt gedownload - voeg een sleutel toe, wijzig de URL |
onExtensionBeforeInstall / onExtensionAfterInstall |
Rond het installeren van een extensie |
onExtensionBeforeUpdate / onExtensionAfterUpdate |
Rond het bijwerken van een extensie |
onExtensionBeforeUninstall / onExtensionAfterUninstall |
Rond het verwijderen van een extensie |
// Een leveranciersplugin voegt zijn abonnementssleutel toe aan de download-URL:
public function onInstallerBeforePackageDownload(&$url, &$headers)
{
if (str_contains($url, 'example.org')) {
$url .= '&key=' . $this->params->get('download_key');
}
}
9.4 Programmatisch installeren
Je kunt de installer vanuit je eigen code aansturen met diezelfde Installer-klasse. Dit is wat scripts, migraties en de CLI onder de motorkap gebruiken; het kiest op basis van het manifest de juiste adapter voor je.
use Joomla\CMS\Installer\Installer;
$installer = new Installer();
// Installeren vanuit een al uitgepakte map:
if ($installer->install('/path/to/unzipped/extension')) {
// gelukt
}
9.5 De beveiligingsgrens
Een extensie installeren betekent code kopieren en uitvoeren op je server, dus com_installer is een echte beveiligingsgrens. Het controleert bij elke installatie verschillende dingen:
- Toegangscontrole: het definieert eigen ACL-acties in
access.xml, vooralcore.manage(de schermen gebruiken) encore.admin(volledige controle). Beperk deze tot beheerders die je vertrouwt. Een gebruiker die extensies kan installeren, kan in feite elke code op je server uitvoeren. - CSRF-tokens: elke installatie-, update- en verwijderaanvraag draagt een eenmalig token mee, zodat een aanvaller een ingelogde beheerder niet via een vervalste link iets kan laten installeren.
- Een schrijfbare tijdelijke map: pakketten worden uitgepakt in de
tmp-map van Joomla voordat er iets wordt gekopieerd. Als die map ontbreekt of niet schrijfbaar is, mislukt de installatie vroegtijdig. Het schermWaarschuwingensignaleert dit.
10. Opties en configuratie
10.1 Waar de opties staan
Klik op Opties op een willekeurig installerscherm, of open Systeem → Beheren → Extensies en gebruik de werkbalk, om bij de eigen instellingen van com_installer te komen. Ze worden als JSON opgeslagen in het #__extensions-record van het component, net als de Opties van elke andere extensie.
| Optie | Standaard | Wat het doet |
|---|---|---|
Update-cachetijd (cachetimeout) |
6 uur | Hoe lang Joomla de laatste updatecontrole vertrouwt voordat het opnieuw raadpleegt |
Minimale stabiliteit (minimum_stability) |
Stabiel | De laagste releasestabiliteit die de updater zal aanbieden |
10.2 Minimale stabiliteit
De optie Minimale stabiliteit bepaalt welke geadverteerde versies com_installer bereid is je te tonen. De niveaus, van soepelst tot strengst, zijn:
Development < Alpha < Beta < Release Candidate < Stabiel
Laat het op Stabiel staan voor productiesites, zodat je alleen afgeronde releases ziet. Verlaag het alleen op een testsite waar je bewust pre-releaseversies van een extensie wilt proberen. Een veelvoorkomende verrassing is een update die "niet verschijnt" omdat het een beta is terwijl de instelling op Stabiel staat: dan werkt de optie precies zoals bedoeld.
Naar boven11. Web Services API
11.1 Extensies opvragen via REST
com_installer stelt zijn Beheren-lijst beschikbaar via de Joomla Web Services API. Met de API ingeschakeld en een token aangemaakt onder je gebruikersprofiel kun je de lijst met geinstalleerde extensies van buiten Joomla uitlezen. De route is:
GET /api/index.php/v1/extensions
curl -H "X-Joomla-Token: <token>" \
"https://example.test/api/index.php/v1/extensions"
11.2 De lijst filteren
Het eindpunt accepteert queryparameters die overeenkomen met de schermfilters, zodat je het resultaat kunt beperken tot wat je nodig hebt:
| Parameter | Waarden | Effect |
|---|---|---|
core |
true / false |
Alleen core, of alleen niet-core extensies |
type |
component, plugin, ... |
Een extensietype |
status |
geheel getal | Filter op in- of uitgeschakelde status |
curl -H "X-Joomla-Token: <token>" \
"https://example.test/api/index.php/v1/extensions?core=false&type=plugin"
Dit is handig voor monitoring: een script kan de lijst met niet-core extensies over veel sites ophalen en alles markeren wat uitgeschakeld, verouderd of onverwacht is. Let op: de publieke API dekt het uitlezen van de lijst; installeren en bijwerken gebeurt nog steeds via de backendschermen of de CLI.
11.3 Het CLI-alternatief
Voor automatisering die dingen wijzigt, kan de Joomla-opdrachtregeltool controleren op core-updates en deze toepassen en geplande taken uitvoeren. Voor extensiebeheer blijven de backendschermen en de framework-klasse Installer de belangrijkste hulpmiddelen.
12. SEO en metadata
com_installer is een component alleen voor beheer. Het heeft geen frontend-weergave, geen menu-itemtype en levert geen openbare pagina's. Dat betekent dat het geen directe SEO-voetafdruk heeft: zoekmachines zien het nooit, en het heeft geen metadata, SEF-instellingen of sitemap-vermeldingen nodig.
De verbinding met SEO is indirect maar reeel. De extensies die je via com_installer installeert, bepalen de snelheid, de opmaak en de gestructureerde data van je site. Een opgeblazen stapel ongebruikte extensies vertraagt pagina's en schaadt de ranking. De geinstalleerde set slank houden, met het scherm Beheren, is goed onderhoud dat zich uitbetaalt in prestaties.
Naar boven13. Veelgemaakte fouten en valkuilen
13.1 Extensie-updates verwarren met Joomla-update
Symptoom: Je voert trouw Systeem → Bijwerken → Joomla uit, maar extensies blijven verouderd.
Oplossing: Dit zijn twee componenten. Extensie-updates staan onder Systeem → Bijwerken → Extensies (com_installer); de core staat onder Bijwerken → Joomla (com_joomlaupdate). Controleer beide.
13.2 Een pakket dat niet wil uploaden
Symptoom: Een grote .zip mislukt of blijft hangen bij Pakketbestand uploaden.
Oplossing: Het bestand overschrijdt de PHP-instellingen upload_max_filesize of post_max_size. Controleer de limieten op het scherm Waarschuwingen en gebruik daarna Installeren vanuit map of Installeren vanaf URL.
13.3 Er verschijnt nooit een updatemelding
Symptoom: Een handmatig geinstalleerde extensie biedt nooit een update aan.
Oplossing: Waarschijnlijk heeft deze geen updatesite. Open Beheren → Updatesites, controleer of de site bestaat en is ingeschakeld, en gebruik Opnieuw opbouwen als de lijst er verkeerd uitziet.
13.4 De update lijkt laat
Symptoom: Er is een nieuwe versie uit, maar Joomla toont deze niet.
Oplossing: De updatecontrole is gecacht. Klik op Zoek updates om een verse controle te forceren, of verlaag Update-cachetijd in de Opties. Controleer ook of Minimale stabiliteit geen pre-release verbergt.
13.5 Bestanden kopieren zonder Detecteren
Symptoom: Je hebt de map van een extensie via FTP geupload, maar Joomla ziet deze niet.
Oplossing: Bestanden op de schijf zijn pas een geinstalleerde extensie als ze een #__extensions-record hebben. Voer Beheren → Detecteren uit om ze te registreren, of installeer de zip op de normale manier.
13.6 De schemawaarschuwing negeren
Symptoom: Een rode melding "Databaseschema is verouderd" die je steeds wegklikt.
Oplossing: Het betekent dat een SQL-migratie niet is uitgevoerd. Ga naar Beheren → Database en klik op Herstellen voordat er vreemde bugs verschijnen.
14. Best practices
Als je maar een paar dingen uit dit artikel onthoudt, onthoud dan deze:
- com_installer beheert je uitbreidingen; com_joomlaupdate werkt de core bij. Houd beide up-to-date.
- Installeer alleen vanuit de JED of rechtstreeks bij de ontwikkelaar; behandel installeren als het uitvoeren van code op je server.
- Wanneer een groot pakket niet wil uploaden, schakel over naar Installeren vanuit map of URL, en lees het scherm
Waarschuwingen. - Als updates niet verschijnen, controleer dan Updatesites, de update-cachetijd en Minimale stabiliteit, in die volgorde.
- Los schemawaarschuwingen op zodra ze verschijnen, op het scherm
Database. - Verwijder extensies die je niet meer gebruikt - een kleinere stapel is sneller en veiliger.
- Beperk wie
core.manageencore.adminop com_installer heeft.
15. In het kort
INSTALLEREN Systeem → Installeren → Extensies (Upload / Map / URL / Web)
BEHEREN Systeem → Beheren → Extensies (in-/uitschakelen / verwijderen)
BIJWERKEN Systeem → Bijwerken → Extensies (openstaande updates)
CORE-UPDATE Systeem → Bijwerken → Joomla (com_joomlaupdate, apart)
UPDATESITES Beheren → Updatesites (opnieuw opbouwen als updates verdwijnen)
DETECTEREN Beheren → Detecteren (bestanden op de schijf registreren)
DATABASE Beheren → Database (ontbrekende SQL opnieuw afspelen met Herstellen)
WAARSCHUWING Beheren → Waarschuwingen (PHP-limieten, schrijfbare mappen)
OPTIES cachetimeout (6u) . minimum_stability (Stabiel)
REST GET /api/index.php/v1/extensions ?core= &type= &status=
TABELLEN #__extensions . #__update_sites . #__updates . #__schemas
Naar boven16. Samenvatting
com_installer is het ene core-component dat de hele levensloop van elke extensie die je aan Joomla toevoegt beheert. Het staat niet onder een eigen menu; het verschijnt als een set schermen onder Systeem.
Zodra je het ziet als een enkel component met meerdere weergaven, valt alles op zijn plek:
- Een pijplijn: upload, map, URL en web eindigen allemaal in dezelfde installatievolgorde, met terugdraaien als een stap mislukt.
- Beheren toont elk record in
#__extensionsen laat je in-/uitschakelen en verwijderen. - Detecteren registreert bestanden die al op de schijf staan; Database herstelt het schema; Waarschuwingen meldt omgevingsproblemen.
- Updatesites en de updatestroom maken van een extern versienummer een update met een klik - apart van Joomla-update voor de core.
- Opties regelen de updatecache en de minimale stabiliteit; de REST API stelt de extensielijst beschikbaar op
/v1/extensions.
Of je nu een Joomla-site plant, worstelt met een update die niet wil verschijnen, of je zorgen maakt dat een verouderde uitbreiding je site in gevaar brengt: het loont om te begrijpen hoe com_installer werkt. Het is de poortwachter voor elk stukje code dat op je site draait, dus zijn schermen kennen hoort bij het snel, actueel en veilig houden van die site.
Naar boven

Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.


