Door: Dan Atrill.Categorie: Magazine.

De commando-regel gebruiken in Joomla

Your command is my Whish

Joomla’s Handige Commandoregel: Tijdbesparende Opdrachten voor Sitebeheerders

Joomla beschikt over een handige verzameling opdrachten die je vanuit een terminalvenster kunt uitvoeren – ideaal voor drukbezette sitebeheerders die tijd willen besparen. Dit artikel gaat over het gebruik van de commandoregel in het terminalvenster.

Een vaak gehoorde uitspraak bij het gebruik van de terminal is: *“Met grote kracht komt grote verantwoordelijkheid”*. Als je iets gaat proberen, gebruik deze opdrachten dan met zorg.

 

Ik ben een groot voorstander van "CRON-taken" en hoe ze het beheer van mijn websites kunnen automatiseren.
Bijvoorbeeld: wanneer ik een back-up instel met Akeeba, gebruik ik de verstrekte informatie om een CRON-taak voor offsite-back-ups te maken. De opdrachten die Akeeba aanreikt, maken gebruik van commandoregelinstructies. Dat is eigenlijk waar mijn nieuwsgierigheid naar Joomla’s CLI (Command Line Interface) vandaan komt.

  • CLI-opdrachten zijn vaak sneller of handiger dan equivalente acties via de Joomla- (of cPanel-)beheerinterface.
  • Joomla Docs over het gebruik van de CLI ofwel Commando-regel 

Aan de slag!

Om de commandoregel in Joomla te gebruiken, heb je SSH-toegang nodig tot de webserver. Dit is niet altijd mogelijk op shared hosting. Het kan ook wat instellingen vereisen om vanaf je eigen terminalvenster toegang te krijgen. In sommige cPanel-hostingomgevingen is er een Terminal-optie die mogelijk wat setup stappen overslaat.

Als je de terminal kunt gebruiken op je webserver, laten we dan eens kijken waar je Joomla-opdrachten kunt uitvoeren.


Let op: Alle volgende opdrachten worden uitgevoerd vanuit de documentroot van de website.
Je kunt ook navigeren naar de `cli/` map en de opdracht uitvoeren als: php joomla.php {opdracht}
DIt is vooral handig als Joomla in een andere directory is geïnstalleerd.

 

Gebruikerswachtwoorden wijzigen
Ik heb altijd moeite gehad met het wijzigen van gebruikerswachtwoorden, mede door mijn browser die details automatisch invult. In een extreem geval veranderde zelfs de gebruikersnaam. Een alternatieve methode is om wachtwoorden direct in de database aan te passen via phpMyAdmin en ze te hashen met MD5. Maar soms werkt dat ook niet voor mij – ik weet niet waarom. Daarom is een commandoregelopdracht om gebruikerswachtwoorden te wijzigen voor mij een uitkomst.

Voorbeeld: (aangenomen dat je in de documentroot van de site bent):
php cli/joomla.php user:reset-password

Je moet de gebruikersnaam weten, want de prompt vraagt hierom. Er is ook een opdracht om gebruikers op te sommen.

Voer een gebruikersnaam in: {geldige gebruikersnaam}  Please enter a username: { valid username }
Voer een nieuw wachtwoord in: {nieuw wachtwoord}  Please enter a new password: { new password }

Dit is super eenvoudig, maar het lijkt wel alle validatie voor complexiteit of minimale lengte te omzeilen. Je kunt, als je dat echt wilt, het wachtwoord vanaf de commandoregel instellen op één letter, en het wordt geaccepteerd! Gebruik deze opdracht dus met grote zorg.

 

Alle beschikbare opdrachten weergeven
Het is eenvoudig om alle beschikbare opdrachten te vinden met:
php cli/joomla.php list

Je ziet allerlei opdrachten, waaronder:
- Een gebruiker toevoegen met `user:add`
- De site offline halen met `site:down`
- Extensies weergeven met `extension:list`


Geplande taken en Joomla-updates

september CLI Scheduled Tasks

Met `php cli/joomla.php scheduler:list` kan ik zien of mijn installatie een update nodig heeft.
En met `php cli/joomla.php core:update` is deze taak snel geklaard.


Er zijn ook opties om extensies te installeren en om extensies op te sommen die een update nodig hebben met `php cli/joomla.php update:extensions:check`. Er is een opdracht om een extensie te verwijderen (als je het ID van de extensie weet, te vinden met `php cli/joomla.php extension:list`), maar er is geen opdracht om extensies bij te werken.

 

Cache leegmaken
Voor een specifieke website moet ik regelmatig de cache leegmaken. De content wordt automatisch bijgewerkt, en ik moet ervoor zorgen dat de nieuwste informatie op mijn site wordt weergegeven. Met een CRON-taak en de cache-opdracht kan ik de verlopen cache leegmaken zonder in het dashboard te hoeven of interactie met de site te hebben.


Mijn voorbeeld:**
/usr/local/bin/php /home/voorbeeldsite/public_html/cli/joomla.php -n -q cache:clean

Afhankelijk van geïnstalleerde extensies vind je mogelijk extra taken voor back-ups en opschoning onder **Systeem > Beheren > Geplande taken.

 

Snel een nieuwe gebruiker toevoegen
Dit is een zeer handige opdracht, vooral als je snel nieuwe gebruikers moet toevoegen. Mijn eigen ervaring (en ik moet echt mijn browserinstellingen aanpassen) is dat het wisselen van tabbladen in het gebruikersformulier de gebruikersnaam kan resetten.

Met `php cli/joomla.php user:add` word je door een paar snelle vragen geleid, zoals gebruikersnaam, volledige naam, e-mailadres, wachtwoord en gebruikersgroep. Binnen een minuut voeg je een nieuwe gebruiker toe. Let op de laatste vraag: je kunt de gebruiker aan meerdere groepen toevoegen door de groep-ID’s gescheiden door komma’s in te voeren.

 

september CLI Usergroup

 

Maar wat als ik een gebruiker moet aanpassen?
Je kunt het wachtwoord wijzigen, de gebruiker uit een groep verwijderen of verwijderen, maar andere taken moeten nog steeds via het Gebruikers-gedeelte in de beheeromgeving gebeuren.


Configuratie-instellingen bijwerken
Je kunt individuele instellingen van de configuratie wijzigen, handig als je de site live zet na een ontwikkelperiode om deze indexeerbaar te maken.

php cli/joomla.php config:set robots="index,follow"

Maar net als bij het aanpassen van `configuration.php`: alles wat je intypt, wordt gebruikt. Zorg ervoor dat het correct is, anders kun je een Server 500-fout, kapotte navigatie of een verbroken databaseverbinding riskeren.

 

Hulp nodig?
Gebruik de `-h` of `--help`-schakelaar in je opdracht om gebruiksaanwijzingen te zien. Ik vond dit handig bij het overwegen van een database-export, omdat het me opties geeft om op te slaan in een specifieke map, een zip-bestand te maken, en de juiste syntax. Standaard worden er XML-bestanden in de site-root gemaakt, dus lees de instructies zorgvuldig om rommelige opruimwerkzaamheden te voorkomen.


Mijn eigen exportopdracht:
php cli/joomla.php database:export --folder=tmp --zip      werkte perfect.

En zoals je verwacht, is er ook een importopdracht, met bijbehorende helpopties.

Je kunt ook opdrachten voor een specifieke “namespace” weergeven, bijvoorbeeld `user`, met:
php cli/joomla.php list user

Conclusie
Ik ben grote voorstander van handige snelkoppelingen voor veelvoorkomende onderhoudstaken. Met Joomla’s CLI kan ik taken uitvoeren zonder zelfs maar in te loggen op het dashboard. Alles gebeurt via een beveiligde verbinding, vanaf mijn terminalvenster of via cPanel. Dit is een zeer nuttige toolkit voor websitebeheerders.

Voor een volledige lijst met opdrachten, ga naar:
[Joomla Docs: CLI gebruiken](https://docs.joomla.org/J4.x:Using_the_CLI)


Verder lezen?
- [ezone.co.uk – Joomla CLI](https://www.ezone.co.uk/cms/joomla-cli.html)
- [Joomla Docs: Een CLI-applicatie schrijven](https://docs.joomla.org/J4.x:Writing_A_CLI_Application)
- [Joomla Docs: CLI gebruiken](https://docs.joomla.org/J4.x:Using_the_CLI)

Dit artikel werd oorspronkelijk gepubliceerd in het Joomla Community Magazine.
Lees alle artikelen in het magazine via deze link
Joomla! bestaat al 20 jaar als Open Source project. Dat is een lange tijd in technologiejaren! 19 jaar geleden kon je niet eens een iPhone bezitten, of X gebruiken en waarschijnlijk had je geen Facebook-account maar een Hyves-account 😊.
Er is veel gebeurd, maar Joomla! is al die tijd een duurzame keuze gebleken als CMS voor miljoenen websites wereldwijd, ondersteund door een betrokken community.

 

1000 Resterende tekens


Deze site wordt beschermd door reCAPTCHA en Google Privacybeleid en Servicevoorwaarden zijn van toepassing.