Repareer de bug in de Joomla! 3.4.0 extensions installer
Na het updaten naar Joomla! 3.4.0 is het je misschien al opgevallen dat sommige extensies die bij vorige versies van Joomla! 3 wel goed installeerden, nu een foutmelding geven. Dit betreft uitsluitend deze foutmelding:
Geen bestand geselecteerd. Kan geen installatiepakket vinden.
Op de site van rsjoomla staat een goede uitleg met oplossing. Voor Joomla!NL is deze uitleg door Wouter (WoodyF4u) vertaald.
Waardoor ontstaat deze foutmelding?
Joomla! 3.4.0 introduceerde een nieuwe veiligheidsfunctionaliteit die bestanden die worden geupload scant op mogelijke gevaarlijke PHP-code. Dat is iets wat niet zou moeten gebeuren in de Extensions Installer (com_installer). Gelukkig hebben Joomla!ontwikkelaars dit inmiddels ook gesignaleerd en hebben het al gerepareerd.
Mocht je niet willen wachten op het uitkomen van Joomla! 3.4.1, volg dan de tip hieronder.
Workarounds om verder te kunnen:
- Gebruik ‘Installeer vanuit map’ ('Install from Directory'). Dat doe je door de extensie eerst te downloaden naar je lokale PC. Vervolgens pak je zip-bestand uit ergens in een tijdelijke map op je PC. Ga met een FTP-programma naar de map tmp in je Joomla!-installatie op de server. Maak (indien nodig) die map eerst leeg. Upload vervolgens de uitgepakte bestanden en mappen naar die map en klik op Installeren.
- Het gebruik 'Installeren vanaf web’ (Install from from URL') is voorlopig niet beschikbaar. Je kunt het oplossen door het bestand ergens op de server te plaatsen en er vervolgens naar te verwijzen in het veld: ‘Installeer van URL’('Install URL') . Upload bijvoorbeeld: 'com_jouw_extensie.zip' in de root-map van je website en type dan in: http://www.jouw_website.nl/com_jouw_extensie.zip. Vergeet niet het bestand te verwijderen als de installatie is afgerond.
- Voer de reparatie handmatig uit. Lees daarvoor onderstaande instructies goed door.
Handmatige reparatie
Het repareren kan worden uitgevoerd met minimale kennis:
- Open je FTP account, verbind met je websitedata en ga naar de map: administrator/components/com_installer/models/. FileZilla is een goed FTP-programma, mocht je hier nog niet bekend mee zijn. Van je hostingprovider heb je als het goed is een gebruikersnaam en wachtwoord ontvangen om met FTP te verbinden.
- Maak eerst een back-up van install.php (download die naar je computer) je weet maar nooit.
- Bewerk daarna install.php met een tekst-editor. Als je die nog niet gebruikt, dan wordt Notepad++ sterk aangeraden.
- Vervang in het bestand:
$userfile = $input->files->get('install_package', null, 'array');
met: $userfile = $input->files->get('install_package', null, 'raw');
Scroll in het bestand verder naar beneden en vind daar: JFile::upload($tmp_src, $tmp_dest);
Vervang deze regel met de regel hieronder: JFile::upload($tmp_src, $tmp_dest, false, true);
- Sla het bestand op. Had je het bewerken vanuit Filezilla gestart, dan verschijnt er automatisch een vraag of je het bestand wil overschrijven. Anders moet je het bestand handmatig uploaden naar de originele plaats.
Probeer opnieuw een installatie te starten als je deze wijziging hebt uitgevoerd. De extensie waar je eerst problemen mee had, zal nu wel goed installeren. Het zou natuurlijk kunnen dat er een andere foutmelding verschijnt. Op de site van rsjoomla staat een goede (Engelstalige) uitleg hoe je dit soort problemen kunt debuggen. guide to debug the installation of Joomla! extensions.