Pourquoi est-ce que j'obtiens la page par défaut Apache2 Ubuntu au lieu de ma propre page index.html?


8

J'ai un ordinateur Ubuntu 14.10 utilisé pour les tests de sites Web locaux , il ne sert pas à Internet. À ce sujet, j'ai mis en place sept sites Web. Cependant, lorsque j'accède à deux des sept, j'obtiens la Apache2 Ubuntu Default Pageplace de ma propre page d'index.

Pour autant que je sache, j'ai configuré les sept en utilisant exactement le même processus, donc je ne sais pas ce qui manque à ces deux-là. De plus, dans mon répertoire de journaux Apache, j'ai deux fichiers journaux erroret accesspour chacun des deux sites qui se comportent mal, mais tous sont vides. Lorsque je redémarre le apache2service, il n'y a aucune erreur. J'ai retracé mes pas plusieurs fois et je ne vois aucune différence entre les sites de travail et les sites de non-travail.

Quelles options ai-je pour diagnostiquer ce problème? Puis-je forcer des journaux d'erreurs plus détaillés d'une manière ou d'une autre? Y a-t-il un autre journal quelque part que je peux référencer?

Voici un exemple de .conffichier pour l'un des sites défectueux:

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin address@example.com

   DocumentRoot /var/www/Websites/example.com
   <Directory /var/www/Websites/example.com/>
       Options Indexes FollowSymLinks MultiViews
       # pcw AllowOverride None
       AllowOverride All
       Order allow,deny
       allow from all
       # This directive allows us to have apache2's default start page
       # in /apache2-default/, but still have / go to the right place
       # Commented out for Ubuntu
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

   ErrorLog /home/example/Apache_Logs/local_example.com_error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
   ServerSignature On

</VirtualHost>

2
Comment avez-vous créé les hôtes virtuels? Les avez-vous créés en ajoutant des fichiers à /etc/apache2/sites-available? Si oui, les avez-vous activés avec sudo a2ensite <your_site_name>? Le fichier journal des erreurs Apache par défaut contient-il quelque chose? Et avez-vous un ServerAlias ​​ou ServerName configuré dans vos fichiers d'hôte virtuel? Si vous désactivez le site par défaut sudo a2dissite 000-default(vous pouvez le réactiver avec sudo a2ensite 000-default), cela fonctionne-t-il? De plus, il se pourrait que vous ayez oublié de redémarrer Apache?
Dan

@Dan, merci d'avoir répondu. J'ai créé les sites en les ajoutant sites-available. Le journal des erreurs par défaut ne contient rien. J'ai défini ServerAliasdans le fichier hosts. J'ai désactivé le 000-defaultsite mais cela n'a rien changé. J'ai redémarré et rechargé Apache plusieurs fois.
Questionneur

Lorsque vous avez désactivé le site par défaut et redémarré apache, il affichait toujours la page index.html par défaut, ou en montrait-il un à partir d'un hôte virtuel différent? Pouvez-vous publier le contenu de l'un des fichiers vhost qui se comportent mal? Cela pourrait nous aider beaucoup plus facilement.
Dan

@ Dan, merci d'avoir répondu. Lorsque j'ai apporté la modification que vous avez suggérée, comme je l'ai mentionné, rien n'a changé, ce qui signifie qu'elle affiche exactement la même page d'index par défaut. J'ai ajouté un .conffichier à ma question.
Interlocuteur du

Réponses:


8

Essayez ce qui suit

Activer les journaux détaillés

sudo nano /etc/apache2/apache2.conf

Localisez la variable LogLevel et mettez-la à jour depuis l'avertissement par défaut vers info ou déboguer. le débogage produira la plus grande quantité de sortie.

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

Redémarrez Apache

sudo service apache2 restart

Apache comprend un joli petit outil de vérification de la syntaxe

apache2ctl -t

Vérification des définitions d'hôte virtuel

apache2ctl -S

Merci pour cette suggestion. J'ai défini le niveau de journal pour déboguer et je n'obtiens toujours absolument aucune entrée dans les fichiers journaux d'erreurs. Les journaux d'accès s'affichent désormais à chaque fois que j'ouvre les sites, mais rien d'autre.
Interlocuteur

6

Pour moi, l'une des suggestions de @Dan l'a résolu.

sudo a2dissite 000-default.conf
service apache2 reload

Apparemment, la configuration du site par défaut était en train de remplacer ma configuration vhost.


Dans un autre serveur, il s'est comporté différemment et index.php a été lu au lieu de index.html. Situation très sournoise
Margus Pala

2

après l'installation, index.html a une priorité plus élevée, c'est pourquoi vous voyez toujours la page Ubuntu par défaut vérifier ce dossier var / www / html / renommer ou supprimer cette page aussi simple que cela


1

Il s'avère que le problème était les autorisations.

Lorsque vous stockez le site Web dans un répertoire en dehors de /var/wwwet connecté par un lien symbolique, le répertoire source et son répertoire parent doivent avoir les autorisations de 755.

Pour une raison inconnue, les deux sites qui se comportaient mal avaient des autorisations différentes, et l'exécution chmod -R 755sur le répertoire du site Web et son répertoire parent a résolu le problème.


Vous ne devriez pas exécuter chmod -R 755sur un répertoire car tous les fichiers qu'il contient vont être marqués comme "exécutables" ...
Alexis Wilke

@AlexisWilke, quelle est une meilleure commande pour définir les bonnes autorisations?
Questionneur

Il n'est pas facile de changer les autorisations de tous les répertoires et pas le standard ... Vous pouvez findcependant l' utiliser . Quelque chose comme ceci: find top-dir-name -type d -exec chmod 755 {} \;.
Alexis Wilke
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.