A- A A+

Spelen in Linux, Joomla, VPS bouwen en site opschonen

Twee weken geleden was het zo ver, een nieuwe versie van Joomla.

Langzamerhand had deze site wel zo een beetje iedere versie vanaf 1.5 meegemaakt met als gevolg dat de boel aardig vervuild was, en veel enger, vol met  php code stond welke potentieel onveilig en was.

  Joomla

Tijd dus voor een drastische aanpak....

Opschonen of herbouwen

Deze vraag stelde ik mijzelf als eerste. Waarbij ik ging rekenen hoe veel tijd het was om de site alleen maar op te schonen.

Gezien mijn ervaring met Joomla code was dat niet echt een goede optie, ik had een extract gemaakt van mijn site, de kale Joomla 3.5.1 code er naast en eens een compare gemaakt. Het aantal bestanden waarvan ik de herkomst en belangrijkheid niet kon bepalen liep de spuigaten uit. Ergo, opschonen was ondoenlijk.

Het plan

Het plan leek vrij eenvoudig, ik maak een kopie van de database en zet er een lege nieuwe Joomla installatie naast. Mijn ervaring met oudere versies van Joomla gaf mij goede hoop tot ik er achter kwam dat joomla opeens databases had met "foreign-key", "primary-indexen" en andere relationele database situaties en dat id's opeens niet meer zo consistent waren als in het verleden. Het plan was dus gedoemd te mislukken.

Het B-Plan

Bij inspectie van de database en de site zelf kwam ik tot mijn schrik achter een aantal zaken waarvan ik dacht af te zijn. Ik bleek dus in het verleden bij het recoveren van de hack (lees: Ik ben gehacked) niet alles goed opgeschoond te hebben. In artikelen stonden "verborgen" links, op mijn site stond een complete andere site verborgen in een cache folder van mijn taal modules. Kortom er was meer nodig.

Het B-Plan werd dan ook eigenlijk een groot masterplan met daarin de volgende stappen:

  1. Optuigen nieuwe server (want ik had geen webserver thuis meer)
  2. Export alle artikelen
  3. Dump van alle multimedia bestanden en mijn downloads
  4. Maken nieuwe Joomla installate
  5. Opnieuw opzetten categoriën en menu's
  6. Nieuwe plugins en modules
  7. Tunen van de site
  8. Exporteren
  9. Importern op mijn VPS bij mijn provider.

Webserver bouwen

Als eerste moest er een webserver komen. Ik had verschillende mogelijkheden. Een Windows 2012R2 server met IIS, Suse Linux, Debian Linux, Open BSD, Free BSD. Het was allemaal mogelijk.

CentOS Rekenen hoe lang het zou duren en hoe veel werk het zou zijn werd mijn keuze Linux. Dit omdat ik de footprint klein wilde hebben zodat het op mijn game-pc kon draaien onder Hyper-V. Zelf heb ik veel ervaring met Suse, Debian en met BSD. Maar dit keer dacht ik, laat ik eens naar CentOS kijken omdat ik daar ook bij mijn klant mee werk.

Nadat de keuze voor CentOS gemaakt was ging ik aan de gang. Ik begon met sshd, MariaDB, Apache, FTP, PHP en MyPHPAdmin.

CentOS

De grootste tegenvaller was de tijd welke ik nodig had om alles lekker aan de praat te krijgen. Het laatste jaar werkte ik regelmatig met CentOS 6 in een omgeving waar ik de systemen niet zelf heb geïnstalleerd. Ergo, zelf had ik nog nooit een CentOS systeem gebouwd en begon ik technieken toe te passen welke ik bij de klant zag en ken uit Suse, Debian en Free BSD. Helemaal niet te beseffen dat CentOS 7 nogal wat verschillen had welke niet overeen kwamen met mijn parate kennis. Ik kreeg te maken met de volgende discrepanties:

  • firewalld in plaats van iptables
  • SELinux
  • vsFTP in plaats van proFTP

Kortom, alles ging niet zo smooth als ik dacht. Met name vsFTP gaf mij hoofdpijn en het gebruik van .htaccess in Apache en het gebruik van accounts en groepen in combinatie met vsftp en apache. Kortom wat twee uurtjes werk leek werd een project van 2 dagen of langer en hier had ik geen zin in.

Sentora

Bij mijn provider maak ik gebruik van CPanel wat gewoonweg fijn werkt. Je stelt alles in, je configureerd alles af en het heeft een eenvoudige interface. Ik vroeg mij af, bestaat dit ook voor CentOS dus ging ik op zoek. CPanel blijkt dus niet gratis dus ging ik verder op zoek en kwam ik uit bij ZPanel, een CPanel kloon.

Het nadeel van ZPanel was. Het project is dood als een pier. Niet meer ondersteund. Bummer, wat nu? 

Na enige tijd zoeken kwam ik bij Sentora. Sentora is een doorontwikkelde fork van ZPanel alleen moeilijk te vinden. Hierdoor krijg ik ook meestal de kriebels van Open Source software, soms is het spontaan niet meer ondersteund of zijn alternatieven niet traceerbaar.

  Joomla

Installatie

Installatie van CentOS 7 en Sentora zijn recht toe recht aan en zoals de meeste open source producten, totaal niet goed gedocumenteerd. Ja er documentatie maar deze is:

  • Achterhaald, gekopieerd van een vorige versie waarbij commando's net niet kloppen (CentOS 7)
  • Verkeerde beschrijving bij OS, bijvoorbeeld CentOS installatie stappen staan elders benoemd maar werken niet (Sentora)
  • Inconsistent met andere documentatie (VsFTP)
  • Uitermate complex beschreven door een techneut zonder enige inzicht in taal (zo een beetje alles van CentOS)
  • Verkeerde commando's bij voorbeelden (CentOS, VsFTP)
  • We doen maar wat naam als parameter in config file (CentOS)

en zo kan ik doorgaan. Ik vraag me af, hoe kan open source ooit serieus worden genomen door niet techneuten........

Uiteindelijk ging alles voorspoedig en had ik snel mij eigen VPS draaien met 3 "klanten" er op. De klant "oude site", de klant "test site" en de klant "bouw site".

Problemen

Natuurlijk ging niet alles goed. Met name updaten en modules van Sentora konden niet worden geïnstalleerd. Dit omdat de meeste repositories plat lagen of niet meer functioneerden. Heel erg jammer dat je hiervoor diep de fora in moet duiken om het op te lossen. Zeker omdat het een fantastisch product is.

Site herbouwen

Na het bouwen van mijn CentOS gebaseerde web server was het tijd om een nieuwe site te bouwen. Dit heb ik in een aantal stappen uitgevoerd.

Joomla installatie

Als eerste ben ik begonnen om Joomla te installeren. Helemaal kaal vanaf scratch waarbij ik begonnen ben met een kale basis installatie en het uit zetten van alle modules en plugins welke ik niet gebruik. Tevens de gehele security aangepast en bepaald welke plugin's en modules ik nodig had. Op de kale Joomla installatie kwamen als eerste de nl-NL en be-NL taal pakketten.

Theme eXpert

Na installatie van de taal pakketten heb ik mijn template opnieuw ingelezen en op de site geplaatst waarna ik alle niet benodigde Joomla standaard templates verwijderd heb. Na controle op  restanten op filesyseem was dit voltooid. De installatie was maagdelijk klein en schoon.

Zelf ben ik nogal gecharmeerd van Zenith van Theme eXpert omdat deze lichtgewicht en clean is zoals te zien is op deze site.

Plugins en modules

In het verleden experimenteerde ik veel met Moduls en Plugins in mijn productie site. Dit wordt nu niet meer gedaan. Dit is 1 van de voordelen van een test machine met CentOS in combinatie met Sentora. Even wat proberen, werkt het en is het goed dan kan het ook naar productie en anders gewoon een backup terug zetten. Er is niks beters voor Joomla dan Akeeba backup hiervoor, zeker in combinatie mer Akeeba Solo en Akeeba kickstart. Site kopieeren, backuppen, restoren met een paar simpele handelingen. Akeeba Backup

 

Herstructureren

Dit was het meeste werk. In de oude situatie had ik het menu nogal onlogisch ingedeeld en veels te complex gemaakt. Ik was de kracht van Joomla helemaal vergeten. Meder hierdoor heb ik het menu aangepast zoals het zou moeten zijn. Dit had wel consequenties voor:

  • Categorien
  • Menu opbouw
  • Tags

Maar uiteindelijk was het veel eenvoudiger geworden. Mede doordat ik data toch niet rechtstreeks kon importeren in de database zat er niets anders op dan het op deze wijze uit te voeren. Handig was wel om alles eerst even op papier te zetten zodat ik geen overbodug werk zou moeten verrichten.

Artikelen, downloads en weblinks

Het migreren van deze onderdelen was minder complex dan gedacht. Het bleek een kwestie van knippen en plakken te zijn, mede doordat er geen artikel migratietool bestaat. Het is een avondje klikken, maar uiteindelijk is alles weer netjes schoon gemaakt.

Beveiliging

Ook is de beveiliging aangepast. Zo is JHackGuard weg gehaald, die deed toch niet wat ik verwachtte en zijn er een aantal andere maatregelen getroffen. Zoals op firewall niveau reeds blokkeren van alle Tor Exitnodes op IP. Iedere IP-reeks waar een hack poging vandaan komt buiten Nederland, dan wordt gelijk alle IP-reeksen geblokeerd welke bij de provider horen en wat andere zaken zoals gebruik van checksums op de site.

Tot slot

Kortom, het was weer een leuk traject waarbij ik weer veel geleerd heb. Met name over CentOS 7 en diverse onderdelen hiervan.