OpenCart problemen oplossen

Elke website eigenaar kent het wel, er is een update gedaan, of een nieuwe extensie geïnstalleerd, en poef... je website werkt ineens niet meer. Je krijgt niet je website te zien maar een wit scherm met een regel tekst waar je geen chocolade van kunt maken. Of een melding zoals Forbidden, Error 500, of helemaal geen tekst. Wat nu?
Je website is nu offline, en wilt dit uiteraard zo snel mogelijk oplossen. In dat geval kunnen we altijd even kijken of we snel kunnen zien wat er aan de hand is.
Snel een oplossing voor je probleem? Neem Contact op.
Veel voorkomende problemen
Wit scherm zonder tekst
Een wit of ook wel blank scherm betekend meestal een PHP Error / Warning of Notice. Echter wordt deze niet weergegeven, waarbij de meest voorkomende reden is dat het weergeven hiervan uitstaat. In PHP kun je aangeven van welk niveau je wel / geen meldingen wilt weergegeven op het scherm. Op een productie omgeving wordt dit nog wel eens volledig uitgezet om een eventuele notice / warning die verder geen effect op de werking heeft niet te tonen.
Deze instelling kan op meerdere plekken worden gedaan, voor OpenCart is de eerste plek waar je dit zou moeten zoeken in het admin gedeelte. Kun je ook niet in de "admin", dan is er iets anders aan de hand. Kom je er wel in controleer dan de volgende setting: Configuratie -> Instellingen -> Wijzigen (winkel waar het probleem zich voordoet) -> Tabblad Server en dan onder het kopje Error Handling "Display Errors" actief maken.
Probeer nu nogmaals of er een probleem wordt weergegeven als je de website bezoekt. Zie je een error, warning of notice? Ga dan het volgende probleem punt hieronder. Is dat niet het geval dan zit het probleem al voordat er iets naar het scherm gaat. Dan wordt het een lastiger probleem en is de volgende stap eigenlijk om de logfiles te bekijken. De logfile van OpenCart kun je ook vinden in het "admin" gedeelte, en staat onder Tools-> Foutenlogboek. Staat daar niks in, of denk je dat de reden van het probleem daar niet bij staat, dan kun je nog in de webserver logfiles zelf kijken. En hier wordt het wat ingewikkelder, als je toegang hebt tot de server met SSH dan kun je de log bestanden meestal vinden in /var/log/httpd/domains/[website url]/ en dan het logbestand [website_url].error.log. Heb je geen SSH rechten of heb je daar geen ervaring mee, kijk dan of je beheeromgeving, zoals DirectAdmin dit ondersteunt. Je kunt dit in DirectAdmin (als gebruiker) vinden onder System Info & Files -> Site Summary / Statistics / Logs. En dan de error.log.
PHP warning of error
PHP Notice, warning en errors komen regelmatig voor bij de ontwikkeling, maar zouden op een productieomgeving mogen voorkomen. Er zijn veel redenen waarom dit kan gebeuren, en we kunnen dan ook niet echt al die mogelijkheden hier opsommen. Bij een PHP melding zal altijd de naam van de melding staan, de bestandsnaam en regelnummer. Hiermee kan gericht gezocht worden naar het probleem. Dit zal in 99% van de gevallen om een extensie gaan.
Forbidden
Deze melding krijg je al er geen rechten zijn om een bepaalde map of bestand te bekijken. Bekijk in een filemanager, of een command sessie de rechten van de map / bestand. Zijn deze leesbaar voor de webserver user. Dit kan per server verschillen, je kunt er wel vanuit gaan dat de rechten van alle andere bestanden / mappen de juiste zijn. Mocht dan degene die niet werkt afwijken, dan weet je wat het probleem is. Dit probleem wil zich wel eens voordoen bij het kopiëren van bestanden.
Ga niet blind alle bestanden en mappen alle rechten geven (bijvoorbeeld chmod 777), hiermee introduceer je uiteraard veiligheidsrisico's.
Het is echter niet alleen de rechten van het filesysteem, je kunt ook een forbidden krijgen door een Application Firewall. Als daar door een regel een aanvraag wordt tegengehouden dan krijg je ook een forbidden te zien. Dit vraagt wel meer kennis van het systeem,
headers already sent by...
Deze melding betekend technisch gezien dat er al gegevens naar het scherm geschreven zijn voordat de sessie wordt gestart. De melding zal iets als onderstaande zijn
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/XXXXX/public_html/index.php:100) in /home/XXXXX/public_html/system/library/session.php on line 11
De reden is meestal dat er een PHP melding is voordat de sessie gestart wordt, en vooral in oudere versies van OpenCart werd dit veroorzaakt door spaties in een php bestand. Let vooral op het gebruik van editors die als plain text opslaan ipv ANSI.
500 Internal Server Error
Een 500 Internal Server Error is een error van de webserver zelf en wordt in veel gevallen veroorzaakt door een incorrect .htaccess bestand. Er zijn echter ook andere redenen dat dit kan gebeuren, maar dat heeft meestal met een incorrecte server configuratie te maken. Eventueel kun je je .htaccess controleren bij een online tester zoals htaccesscheck.com
404 Page not found
Pagina kan niet worden gevonden, dat kan verschillende oorzaken hebben. Kan een typefout zijn, of een pagina is verwijderd. Misschien is een SEO keyword veranderd maar de link niet.
No space left on device
Ondanks dat dit eigenlijk wel duidelijk is zijn er toch veel mensen die hier overheen lezen. Het probleem is dat er geen vrije schijfruimte meer beschikbaar is. Er zal dus wat opgeruimd moeten worden. Als eerste zou je kunnen kijken of logfiles wel roteren, of niet veel te groot zijn geworden. De snelste klap is vaak deze te verwijderen. Een andere mogelijkheid is dat er backup bestanden staan, en soms komt het voor dat een backup een backup bevat. En als je dat blijft doen dan gaat het heel snel met de schijfruimte. Bij het opruimen is wel van groot belang dat je weet wat je doet.
Alle URL's zien eruit als /index.php?route=product/product&product_id=
Als je website geen "mooie" URLS gebruikt dan kan dat in principe 3 oorzaken hebben. Als eerste kijk je of je de settings goed hebt gezet in de "admin". Configuratie -> Instellingen -> Wijzigen (winkel waar het probleem zich voordoet) -> Tabblad Server
Daar zal ook staan dat je de apache mod-rewrite module geladen moet hebben, normaal zal dat bij elke hosting partij zou zijn. Daarnaast moet je dan ook de .htaccess.txt hernoemd hebben naar .htaccess (deze vind je in de root van de OpenCart installatie).
Heb je dit allemaal goed staan, kijk dan of de pagina wel een SEO keyword heeft staan. Bij OpenCart v3 en v4 vind je die bij het product, categorie, merk en informatiepagina in het tabblad "SEO". Bij OpenCart v1.5 en v2 staat het onder het tabblad "Gegevens". Bij OpenCart v3 en v4 kun je ook kijken in de "admin" onder Design -> SEO URL. Keyword is dan de "mooie" URL. Kijk ook of er geen dubbelen in staan, dat is helaas namelijk mogelijk en niet correct. Voor versie v1 en v2 is het lastiger om dubbelen te vinden, dan moet je in de database gaan kijken met een tool (bv phpMyAdmin).
Klanten zien een maintenance page, maar zelf kan ik gewoon op mijn website
Dit kan voorkomen als de website op maintenance is gezet. Als ingelogde administrator kun je dan nog steeds de website bekijken, maar normale gebruikers en gasten niet. Omdat je zelf wel de website kunt zien kan dit verwarrend overkomen. De instelling vind je in de "admin" onder Configuratie -> Instellingen -> Wijzigen (winkel waar het probleem zich voordoet) -> Tabblad Server
Voor meer vragen en antwoorden kun je ook in een van onze forums over OpenCart terecht.
Kunnen jullie helpen?
Zeker, wij kunnen altijd even meekijken of we het probleem kunnen verhelpen.
Hoe kan ik het snelst in contact komen om mijn probleem op te lossen?
Stuur een email naar help-oc@octolabs.nl, Omschrijf duidelijk wat het probleem is, indien mogelijk met screenshot(s), en/of een link naar het probleem.
Wat kost het oplossen van mijn probleem?
Wat de uiteindelijk kosten zullen zijn hangt af van wat het probleem precies is. Het kan een kleinigheid zijn dat met 5minuten is opgelost, maar het kan natuurlijk ook een heel complex probleem zijn. Als voorbeeld kan het probleem een typefout ergens zijn wat snel in een logfile te vinden is. Maar het kan ook zijn dat er een update is geprobeerd die het hele systeem om zeep heeft geholpen, en dat er geen backups zijn.
Als we het probleem binnen een paar minuten via de mail kunnen verhelpen dan sturen we daar geen factuur voor, al stellen we een kop koffie zeker op prijs. In andere gevallen bespreken we uiteraard eerst of er kosten aan verbonden zijn en hoeveel.