2 votes

localhost charge la page apache par défaut

Je suis en train de mettre en place un localhost et tout semble devoir fonctionner mais à chaque fois que je vais sur site.local, il charge la page par défaut d'Apache localhost (ça marche !).

Voici une copie de mon fichier hosts :

##
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1    localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%1o0 localhost

#####
 DEV
#####
# SITE
127.0.0.1    site.local
::1          www.site.local

et mon serveur virtuel :

<VirtualHost *:8080>
    ServerAdmin test@test.com
    ServerName site.local
    DocumentRoot "/Users/me/site"
    ErrorLog "/Applications/MAMP/logs/site.local-error_log"
    CustomLog "/Applications/MAMP/logs/site.local-access_log" common
    <Directory "/Users/me/site">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

Ce que j'ai fait pour m'assurer que ce n'est pas une erreur de l'utilisateur :

  • j'ai décomplémenté la ligne dans le fichier httpd.conf pour inclure mon fichier vhost
  • utilisé apachectl configtest pour tester mon fichier (il est revenu en disant que la syntaxe était OK).

Des choses à noter :

  • J'utilise les ports 8080 et 3307 pour Apache et MYSQL.
  • Si je vais sur site.local:8080, il se charge mais ne rend pas les éléments comme il le devrait (au lieu de cela, il charge les éléments du html dans un format de liste).
  • Ceci est une installation FRAÎCHE de MAMP.
  • OS : OS X Yosemite version 10.10.5
  • MAMP Version : 3.5

Je ne vois pas ce qui ne va pas... Des idées ?

UPDATE

localhost fonctionne comme il se doit avec le port 80. 8080 = la page apache par défaut, mais 80 charge les pages du site...

4voto

Douglas Points 10417

D'après votre commentaire, lorsque vous vous rendez sur site.local:8080, vous obtenez une page blanche avec les mots "It Works !" semblable à la capture d'écran ci-dessous

It Works!

Ce que vous voyez, c'est la page web basée sur l'option Configuration du serveur mondial où le DocumentRoot est la valeur par défaut définie par MAMP.

Vous mentionnez dans votre OP que

Si je vais sur site.local:8080, il se charge mais ne rend pas les éléments comme il le devrait (au lieu de cela, il charge les éléments du html dans un format de liste).

Apache ne va pas rendre votre page web sous forme de liste HTML (à moins que vous ne le lui demandiez). Il est plus que probable que ce que vous voyez est une liste de répertoire similaire à celle-ci :

Index Listing

Vous obtenez cette liste grâce à la ligne Options Indexes FollowSymLinks dans votre httpd.conf fichier. Si vous souhaitez désactiver cette fonction, supprimez le mot Indices de cette ligne et la liste n'apparaîtra plus.

Votre configuration d'hôte virtuel

Tout d'abord, nous devons comprendre comment Apache traite les demandes d'hôtes virtuels. Depuis le Documentation Apache :

Lorsqu'une requête arrive, le serveur trouvera le meilleur argument (le plus spécifique) le meilleur argument (le plus spécifique) en fonction de l'adresse IP et du port utilisés par la demande. S'il existe plus d'un hôte virtuel contenant cette combinaison d'adresse et de port combinaison d'adresse et de port la mieux adaptée, Apache compare ensuite les directives ServerName et ServerAlias au nom de serveur présent dans la demande dans la requête.

Si vous omettez la directive ServerName pour tout hôte virtuel basé sur le nom, le serveur utilisera par défaut un nom de domaine pleinement qualifié (FQDN) dérivé du nom d'hôte du système. Ce nom de serveur implicitement défini peut peut conduire à une correspondance contre-intuitive des hôtes virtuels et est déconseillé.

Si vous remarquez, votre hôte qui est défini la configuration globale du serveur est le même que celui de l'hôte virtuel.

C'est probablement là que vous obtenez votre erreur.

Ma solution est un peu plus compliquée au départ, mais infiniment plus efficace car j'essaie d'éviter de transformer ma machine en client. et un serveur. Je fais tout mon développement sur un Mac avec une machine virtuelle qui fait tourner mon serveur AMP. De cette façon, je peux refléter mon environnement de production de beaucoup plus près et je n'ai pas de services inutiles (comme Apache et MySQL) fonctionnant sur OS X ; ils sont tous relégués dans la VM. La machine virtuelle a sa propre adresse IP, son propre nom de serveur, tout ce qu'il faut pour que lorsque je pointe mon navigateur vers elle, je sache à quels résultats m'attendre.

J'ai rédigé un article sur la façon d'installer une VM FreeBSD sur VirtualBox fonctionnant sur un Mac dont le démarrage automatique est activé. Si vous êtes intéressé, je peux le partager avec vous.

0voto

klanomath Points 63400

Préface :

  1. Exécuter apachectl configtest ne vérifie pas /Applications/MAMP/conf/apache/httpd.conf par souci de cohérence, mais le fichier de configuration par défaut d'Apache sous OS X /private/etc/apache2/httpd.conf .

Vous devez utiliser /Applications/MAMP/Library/bin/apachectl configtest pour vérifier /Applications/MAMP/conf/apache/httpd.conf .

  1. L'utilisation d'un nom de domaine entièrement qualifié sous la forme nom d'hôte.local est découragée. Ces fqdns sont réservé pour le Multicast DNS (mDNS). Vous pouvez utiliser .home, .development ou .test.

Mise en place :

Configuration de MAMP/Apache/hosts :

/etc/hosts :

...
127.0.0.1       site.development
127.0.0.1       www.site.development
::1             site.development
::1             www.site.development

Port Apache dans MAMP : 8080 (WebStart désactivé !)

Contenu du fichier httpd-vhosts.conf

NameVirtualHost *:8080
...
<VirtualHost *:8080>
    ServerAdmin test@test.com
    ServerName site.development
    ServerAlias www.site.development
    DocumentRoot "/Users/me/site"
    ErrorLog "/Applications/MAMP/logs/site.development-error_log"
    CustomLog "/Applications/MAMP/logs/site.development-access_log" common
    <Directory "/Users/me/site">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

Vous pouvez vérifier votre fichier d'hôtes virtuels avec /Applications/MAMP/Library/bin/apachectl -S .

Si vous avez configuré votre serveur MAMP correctement et copié les fichiers par défaut de MAMP index.php et MAMP-PRO-Logo.png dans le dossier /Users/me/site, vous verrez la page "par défaut" suivante :

MAMP website default start page

Entrer sur http://localhost:8080/ dans le navigateur affichera la même page.

Si vous n'exécutez aucune autre instance d'Apache (en particulier l'Apache par défaut de OS X), vous ne pourrez pas vous connecter à localhost:80 o site.développement:80 .


Si vous exécutez une autre instance d'Apache (par exemple démarrée par launchd ou invoquée par sudo apachectl start vous pouvez vous y connecter soit en entrant localhost:80 , site.développement:80 o http://site.development:80 . Vous verrez la page par défaut d'Apache :

enter image description here

Si OS X Server est installé en plus, vous arriverez à une page "Welcome to OS X Server" après avoir saisi les informations suivantes localhost:80 même si Sites web est désactivé dans Server.app :

enter image description here

0voto

James Chau Points 1

index.html , info.php , index.py etc. résident sous /var/www o /var/www/test ou ce que vous définissez dans la configuration. Regardez dans le serveur VM, qu'il s'agisse de UBUNTU ou de SUSE ou de n'importe quel autre VMWare ou VirtualBox, et vous ne trouverez pas /var/www . OS X ne joue pas avec les communautés ouvertes. Il est impossible de faire en sorte que des serveurs VM contrôlent des navigateurs fonctionnant sur une machine Apple.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X