Waarschuwing
Kan map niet verwijderen. Pad: /data/sites/web/joomlacommunitynl/data/test.joomlacommunity.nl/public_html/cache/com_content
Bericht sluiten

| Door: Anja de Crom. | Categorie: Utrecht.

Verslag bijeenkomst phpMyAdmin en MySQL bij JUG Utrecht d.d. 13 jan 2014

jug030-jisse

Naast coördinatoren Lex & Anja en spreker Jisse Reitsma waren er 12 deelnemers

Volgende bijeenkomsten

10 februari Dokter Joomla
11 maart SilverAdmin?
14 april
12 mei
16 juni

Lex gaat kijken of we voor maart Tim Schutte kunnen uitnodigen; die heeft de extensie SilverAdmin gebouwd waarmee je aan de frontend je site volledig kunt beheren. Handig voor mensen (lees: klanten) die Joomla!-moeilijk vinden: //extensions.joomla.org/extensions/administration/admin-performance/25555.

Voor de bijeenkomsten van april, mei en juni zoeken we nog onderwerpen. Watchful zou er eentje kunnen zijn, ware het niet dat de ervaringen daarmee op dit moment nogal in de kinderziektesfeer zitten. Even in de gaten houden dus. Op de vrijdagmiddag voor de Joomladagen is er ook een presentatie over.

Andere mogelijke onderwerpen: Wilma wil nog steeds graag weten hoe je een statische template omzet naar een responsive. Als iemand tips heeft…

 

Joomla!-nieuws

Laatste versies:
Joomla!-1.5.26 (sterk verouderd)
Joomla!-2.5.17
Joomla!-3.2.1

Extensies:
Akeeba Backup 3.9.2
Admin Tools 2.6.0
JCE 2.3.4.4

Meer nieuws

De Joomladagen komen eraan; je kunt je al aanmelden via www.joomladagen.nl. Het programma is inmiddels bekend.

Joomla!-ers helpen Joomla!-ers, hoe het werkt:

Lex ontdekte dat na de update naar 2.5.17 zijn menu’s ineens raar gingen doen. Een bug, dacht hij maar dat ging hij eerst maar even checken: hij meldde het op het forum. Het bleek inderdaad een bug, en je hoeft niet te wachten tot de volgende update; er is een oplossing voor (heeft Lex gevonden op een ander forum). Hier lees je het hele verhaal: //bit.ly/1mrIjlf

Presentatie phpMyAdmin voor beginners – Jisse Reitsma

Voor wie liever de slides bekijkt: //slidesha.re/1edg0CF

Over Jisse
Met zijn bedrijf Yireo maakt Jisse betaalde Joomla- en Magento-extensies (zo’n 80% van zijn extensies is trouwens gratis). Hij sponsort de Joomladagen. Jisse schreef 5 jaar geleden een boek over templates (voor 1.5). Hij heeft nu plannen voor een boek over plugins maken van begin tot eind.

phpMyAdmin voor beginners

De presentatie bestaat uit drie delen:

  1. MySQL
  2. phpMyAdmin
  3. Geavanceerd

MySQL

Joomla! is gebaseerd op PHP. Dat draait op een webserver met PHP-support. De gegevens worden opgeslagen in een relationele database. SQL (Structured Query Language ) is de taal die wordt gebruikt om het systeem te bouwen en ermee te communiceren. Zo’n constructie heet een stack, oftewel een stapel applicaties. Die stack zorgt ervoor dat Joomla! draait:

Besturingssysteem + Webserver + Database + Scripttaal

Twee voorbeelden:

Linux + Apache + MySQL + PHP (LAMP).

Windows + IIS + MySQL + PHP (WIMP – Windows IIS is trouwens stevig in ontwikkeling; Microsoft heeft zich goed op de open source gestort)

De communicatie verloopt via een client/server model: samenwerking tussen twee of meer programma's. De server is permanent beschikbaar en reageert op verzoeken van de client. De server is meestal localhost, maar het kan zijn dat de verschillende onderdelen van de stack op verschillende servers staan, (zoals bij Byte). Dan heb je een aparte login nodig om met de verschillende onderdelen te communiceren. Theoretisch kan het ook nog zo zijn dat Joomla!-bij de ene hoster staat en de database bij een andere, maar dat komt eigenlijk vrijwel nooit voor. Gelukkig maar, want MySQL heeft nul beveiliging. Er is nog een andere optie: socket, een beginpunt op de lokale server waar je direct naartoe kunt programmeren. In de meest geoptimaliseerde situatie heeft een hostingprovider een socket (kom je ook niet zo vaak tegen).

MySQL is er in nog twee varianten: mysqli (de te adviseren variant, de I staat voor “improved”) en PDO MySQL (PHP Data Objects), dat de mogelijkheid biedt om verschillende databases aan te roepen zonder iets wezenlijks aan de code te wijzigen. Joomla! begon met MySQL, werkt nu met mysqli en wil uiteindelijk naar een PDO-laag. MySQL is namelijk fantastisch voor kleine databases, maar zodra je database te groot wordt loop je tegen limieten aan en kan de database eruit klappen.

De MySQL client praat dus met de server door middel van SQL. Je database bestaat uit tabellen, en als je iets doet op je website, geeft de client eigenlijk de database de opdracht om een tabel te benaderen, gegevens op te zoeken en bijvoorbeeld te verwijderen. SQL is als taal ooit bedacht om informatie in relationele databases te benaderen. Voorbeelden daarvan zie je in sheets 15 en 16 van Jisses presentatie: //slidesha.re/1edg0CF

Deel 2 PHPMyAdmin

PhpMyAdmin is een applicatie waarmee je de MySQL-database op een technische manier benadert. Dus alles wat je met Joomla! doet, kun je theoretisch ook met phpMyAdmin doen (dat is wel moeilijker dan met Joomla!). Je kunt het ook gebruiken als je een probleem niet via Joomla!-kunt oplossen.

Je logt in met een gebruikersnaam en wachtwoord (je database-gebruikersaccount). Je komt er via een directe weblink of bij sommige providers via een controlepaneel.

Bij de installatie van Joomla!-maakt Joomla! de database al voor je aan. Alles van je Joomla-site kun je wijzigen met phpMyAdmin. Je kunt er ook alle standaard Joomla!-beveiligingsmechanismes (bijvoorbeeld verboden scripts) mee omzeilen.

Gegevens selecteren en bewerken

Een database bestaat uit tabellen. Als je in phpMyAdmin een database selecteert, zie je een lijst met tabellen. Zodra je op een van die tabellen klikt, opent een venster met de kolommen van die tabel. Elke kolom bevat gegevens van een veld. Een veld binnen de tabel “jos_content” is bijvoorbeeld de titel, een alias of een introtext. Al die kolommen kunnen het onoverzichtelijk maken.

Bovenin zie je staan:

SELECT*
FROM`jos_content`
LIMIT0,30

Dit betekent dat hij alle kolommen van jos_content laat zien.

Je kunt het (onder de tab SQL) zo instellen dat je alleen de kolommen ziet die voor jou van belang zijn. Wil je alleen de kolommen “title” en “alias” zien, dan kun je een select-statement opgeven:

SELECT title, alias, FROM jos_content

Dit geeft als resultaat alle kolommen van de velden “title” en “alias”.

SELECT is een van de meest gebruikte opdrachten. Je gebruikt het dus om gegevens te selecteren. Je kunt het nog verder specificeren door een WHERE-commando te gebruiken:

SELECT voornaam FROM jos_users WHERE id = 42

Dit geeft als resultaat alle velden “voornaam” uit de tabel “jos_users” waarbij het ID 42 is. Dat zal er maar eentje zijn, aangezien het ID uniek is.

Je kunt exacte gegevens zoeken, maar ook een groter/kleiner dan gebruiken, of groter/gelijk aan, of wildcards. Voorbeelden van wildcards:

SELECT * FROM tabelnaam WHERE title LIKE “Voorbeeld%”

Of

SELECT * FROM tabelnaam WHERE title LIKE “%voorbeeld%”

Andere opdrachten die je nog wel eens gebuikt: UPDATE, INSERT INTO, DELETE FROM

Plugins uitzetten

Stel, je hebt een plugin geïnstalleerd die vervolgens je Joomla!-laat klappen. Dan kun je er dus toch nog bij: inloggen op de database en uit de juiste tabel (_extensions) de plugin zoeken, en ‘m uitzetten (bij “enabled” kun je kiezen voor 1 (enabled) of 0 (disabled)). En als het goed is werkt je site daarna weer.

Wachtwoorden

Stel, je bent je admin-wachtwoord vergeten. Dan kun je phpMyAdmin gebruiken om jezelf weer toegang tot je site te geven – mits je je database-inlog nog weet natuurlijk.

Wachtwoorden werken met een versleutelmechanisme. Er zijn een paar verschillende versleutelmechanismes, die variëren van simpel (te kraken) tot moeilijker (te kraken). MD5-encryptie is de zwakste, omdat hetzelfde wachtwoord altijd dezelfde versleuteling geeft. Die kun je dus gebruiken om jezelf weer toegang te geven. Bedenk een nieuw makkelijk wachtwoord (je gaat het inzetten als wegwerpwachtwoord, dus niks ingewikkelds met speciale tekens enzo), ga naar een site waar je een MD5 versleuteling kunt genereren (hier vind je er een paar: //bit.ly/1jniR3m), kopieer de versleutelde string naar het wachtwoordveld van de administrator in je database. Nu kun je op je Joomla!-site inloggen met dat makkelijke wachtwoord. Wel meteen weer wijzigen natuurlijk.

Gegevens exporteren

Moet je je site verhuizen, dan kun je phpMyAdmin gebruiken om gegevens te exporteren. Je kunt er niet zomaar een kopietje van maken, je gebruikt het tabblad export om een database dump te maken. Dan maakt hij een makkelijk te lezen tekstbestand. Daar staan allerlei opdrachten in (plaats bepaalde gegevens in een tabel, maak een tabel als die er nog niet is, etc.) Je kunt ook de opdracht geven om een bestaande tabel weg te halen en er een nieuwe voor in de plaats te zetten (onder “add statements”). Op de nieuwe site kun je vervolgens je database weer importeren. Jisse gebruikt het voor sites zonder Akeeba Backup, maar Akeeba Backup is veel handiger om mee te backuppen. (Frits vult aan: je kunt het ook gebruiken als je sites met dwarse extensies moet migreren)

Wat je niet moet doen

Dingen die met gebruikers te maken hebben kun je beter niet proberen te regelen via phpMyAdmin. Je hebt namelijk een tabel _users, maar er zijn ook dingen vastgelegd in _assets. Een van de kolommen uit _assets is bijvoorbeeld “rules”, daar hangt een code in met een gelaagde structuur, een matrix van gegevens die plat is opgeslagen. Oftewel: te complex. Wil je het toch proberen, google dan eerst goed en maak een stappenplan.

Deel 3: geavanceerd

Kies altijd een goede database table prefix. Die kun je instellen tijdens de Joomla!-installatie. Het was altijd jos_, maar dat wisten de hackers natuurlijk ook (let op: heb je je site van 1.5 naar 2.5 gemigreerd met JUpgrade , dan is het standaard j25). Met een eigen prefix is het voor hackers moeilijker om een SQL injectie te doen. Wil je de prefix vervangen, doe dat dan niet via phpMyAdmin maar gebruik een tool als AdminTools. Kies een korte prefix; de tabelnaam mag maximaal 64 tekens zijn, en wat achter de prefix komt kan ook al veel karakters hebben.

Databasetabellen opschonen

Je kunt databasetabellen opschonen met het commando TRUNCATE (onder “operations”). Daarmee gooi je een tabel in één keer leeg… maar de permissies bestaan nog. Daarom toch beter artikelen weggooien via de Joomla!-backend.

Een database aanmaken

Afhankelijk van je rechten (check bij je hoster) kun je al dan niet een nieuwe database aanmaken. Die database is leeg, die vul je zelf met tabellen waar je velden in maakt. Bij het maken van een database moet je een collation kiezen. Daarmee regel je de volgorde van karakters in de database, zodat die zo efficiënt mogelijk te benaderen is. Hoe algemener, hoe beter. Joomla! heeft standaard de UTF-8 karakterset, die ondersteunt allerlei talen en karakters. Kies voor Joomla! utf8_unicode_ci of utf8_general_ci. Zie je blokjes aan de voorkant van je website waar eigenlijk karakters moeten staan? Dan is er iets mis met de karakterset. Je kunt het ingewikkeld repareren met MySQL, maar je kunt ook de tool Phoca Changing Collation gebruiken: //www.phoca.cz/phoca-changing-collation (is geen Joomla!-extensie maar een aparte tool).

Alternatieven voor MySQL

Zoals Jisse al zei is MySQL inmiddels van Oracle. Er zijn alternatieven.

MariaDB is open source, gebaseerd op MySQL. Percona is hetzelfde als MySQL, maar dan betaald. Een MySQL database kun je in Percona en MariaDB importeren.

Bij NoSQL wordt het hele concept van de relationele database overboord gegooid. Handig en snel voor kleine strings.

Er is ook nog Note JS, een concept om javascript op de server te laten draaien.

 

1000 Resterende tekens


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