Site wordt niet weergegeven (Apache)

Uit De Vliegende Brigade
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Diagnose - In welke hoek moet je het zoeken?

Server not found: DNS-probleem? → Wat geeft ping? Met en zonder 'www'? Hoe zien de DNS-entries eruit? Met en zonder 'www'?
Internal Server Error (500) → Probleem ligt op de server. Dit betrof een .htpasswd/.htaccess-beveiligde installatie. Na migratie moest ik die bestanden bijwerken. Vandaar de interne fout.
Eih: De standaard-Apache-pagina wordt geservereerd, en niet het Hello World-html-bestand dat is klaargezet om te testen! Vervolgtest: apachectl -S. Wat bleek: Ik had vergeten om het conf-bestand toe te voegen aan Apache: sudo a2ensite example.com && sudo service apache2 reload

De eerste stap is, om een inschatting te maken in welke schakel van de keten het probleem schuilt. Denk aan:

De truuk is om te achterhalen waar het probleem zit. Bv.:

  • DNS
  • Webserver
  • Serveerbare content - Bv. PHP-fouten.

De foutmelding geeft vaak al heel aardig aan in welke hoek je de storing moet zoeken.

Diagnose - Losse tests

Diverse losse tests, met de nadruk op los: Als je eerst bepaalt waar in de keten de oorzaak lijkt te liggen, kun je veel doelgerichter gaan testen.

Is er serveerbare content?

  • Controleer of op de bewuste plek een index.htm-, index.html- of index.php-bestand staat
  • Voeg index.html of index.php toe aan de URL. Als het nu wel werkt → Storing Apache virtual configuration file, of storing met .htaccess-bestand
  • Probeer met en zonder 'www'. Standaard doe ik domeinnamen zonder 'www'. Let op: in /etc/hosts doe ik domeinnamen zonder 'www'.

Bekijk Apache-log

tail /var/log/apache2/error.log

Kloppen bestandsrechten?

Snelle controle:

  • Bestanden moeten leesbaar zijn voor derden
  • Mappen moeten leesbaar en executeerbaar zijn voor derden.

Apache-status virtuele hosts?

Staat de betreffende vhost in de lijst die je krijgt met apachectl -S?

Is de domeinnaam te vinden?

  • Wat geeft ping?
  • Is /etc/hosts bijgewerkt?

Verdwaald .htaccess-bestand?

  • Is bij het opzetten van het domein, misschien een .htaccess-bestand meegekomen? Er is een kans dat dat niet compatibel is
  • Hernoem dat bestand naar bv. .htaccess-bk01.

Tikfout domeinnaam apachectl?

  • Geef commando apachectl -S
  • Kopiëer de genoemde domeinnaan, en plak deze in een browser.

Inspecteer virtueel hostbestand

sudo vim /etc/apache2/sites-available/<domeinnaam>

Geen gekke dingen?

Roep site op vanaf de server

lynx <domeinnaam>

Als de site getoond wordt: → Hoog tijd om de cache van de browser te legen of te testen met een andere browser

Test met andere browser

  • Vaak sneller om (in mijn geval) te testen met Chromium, dan om de cache te legen van Firefox
  • Let op: Chromium doet gekke dingen qua cache. Ik probeer 'm zo min mogelijk te gebruiken.

Leeg browser-cache

Cache Firefox legen: Dit is meestal voldoende

Herstart Apache

sudo service apache2 restart

Casussen

Deze casussen houd ik bij om de volgorde van de stappen hierboven te kunnen aanpassen.

Nov. 2015: Verdwaald .htaccess-bestand

Heel onwaarschijnlijke fout, maar toch.

Nov. 2015: /etc/hosts-bestand niet bijgewerkt op client-computer

Dit bleek na ping.

Nov. 2015: Server herstarten

Oorzaak was onduidelijk, maar de oplossing niet: Apache herstarten.

Nov. 2015: Browser-cache legen

De site werd wel goed weergegeven vanaf de server, en ook in Chrome. Ook was het opvallend dat de browser bij refresh instantaan dezelfde foutmelding gaf → Laatste uur van de cache geleegd. Probleem opgelost.

Dec. 2015: .htpasswd/.htaccess bijwerken

Na migratie van een wachtwoord-beveiligde site, moest ik de .htpasswd/.htaccess-bestanden bijwerken:

  • Het wachtwoord uit .htpasswd toevoegen aan het bestaande .htpasswd-bestand
  • Code in .htaccess-bestand bijwerken (wijst zich vanzelf).