J'ai le problème suivant
Mon fichier hosts se présente comme suit:
127.0.0.1 localhost
127.0.1.1 barbala4o-HP-ProBook-4530s
127.0.1.1 mysite.localhost
Mon dossier dans le /etc/Apache2/sites-available/mysite.localhost.conf
est comme suit :
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mysite.localhost
DocumentRoot /var/www/mysite
<Directory /var/www/mysite/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/Apache2/mysite-error.log
CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>
Après faire Sudo a2ensite mysite.localhost.conf
et redémarrez Apache sur mysite.localhost/et uniquement sur localhost, je reçois les informations suivantes (comme la création d’un répertoire sans fichier d’index):
Index of /
[ICO] Name Last modified Size Description
[DIR] Apache_logs/ 2013-09-24 10:15 -
[DIR] mysql/ 2013-10-22 10:05 -
[DIR] tools/ 2013-10-22 10:05
Et sur tout autre dossier du /var/www/
répertoire comme test quand j'entre localhost/test
au lieu de charger le index.php
fichier qu'il montre:
Not Found
The requested URL /adlantic was not found on this server.
Apache/2.4.6 (Ubuntu) Server at localhost Port 80
Si je fais Sudo a2dissite mysite.conf
et redémarrez Apache, tout se charge correctement. Je suppose que le problème se situe quelque part dans le mysite.localhost.conf
mais je ne trouve pas où. Des idées? 10x
Ubuntu 13.10 et ses variantes sont passés à Apache 2.4. Apache 2.4 veut que les fichiers de configuration d'hôte virtuel activés se terminent par .conf par défaut.
Solution
Maintenant, pour corriger ce problème, vous pouvez utiliser deux méthodes pour obtenir le même résultat.
La première solution, simple, consiste à ajouter une extension .conf à tous vos hôtes virtuels. La nouvelle Apache 2.4 lit chaque hôte virtuel dans le répertoire sites-available avec l'extension .conf décrite dans le nouveau fichier de configuration d'Apache 2.4.
La deuxième solution consiste à supprimer l'extension .conf du fichier de configuration d'Apache 2.4 situé dans /etc/Apache2/Apache2.conf.
Dans l’ancien fichier Apache 2.2, le fichier .conf contenait une option Inclure sites activés/alors que le nouveau fichier .conf
# Include the virtual Host configurations:
IncludeOptional sites-enabled/*.conf
Changez cette ligne pour lire:
# Include the virtual Host configurations:
IncludeOptional sites-enabled/
Les résultats: la commande a2ensite yourdomain s'exécute maintenant comme prévu. Si vous utilisez la 2ème méthode; vos fichiers d'hôte virtuel n'ont pas besoin de porter l'extension .conf.
Note: Configuration file is "/etc/Apache2/Apache2.conf" in new Apache, so please copy document root path and other configurations from "/etc/Apache2/sites-available/000-default.conf" to "/etc/Apache2/Apache2.conf"
J'ai trouvé le problème après 3h d'expérimentation. Apparemment, dans le nouvel Ubuntu 13.10, pour une raison stupide, le fichier de configuration de l'hôte virtuel doit ressembler à ceci:
<VirtualHost mysite.localhost>
ServerAdmin [email protected]
ServerName mysite.localhost
ServerAlias mysite.localhost
# Indexes + Directory Root.
DocumentRoot /var/www/mysite/public_html
<Directory /var/www/mysite/public_html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Logfiles
ErrorLog /var/log/Apache2/mysite-error.log
CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>
Apparemment, les gars qui ont développé Ubuntu 13.10 ont décidé qu’il n’était plus utile d’utiliser
<VirtualHost *:80>
lors de la création d'un hôte virtuel et à la place, il doit être
<VirtualHost mysite.localhost>
mélangé avec spécifiant spécifiquement DirectoryIndex. Cela corrigeait le problème que je rencontrais et que tout fonctionne maintenant (si tout va bien, quelque chose peut éventuellement arriver). Le fichier de configuration d'Apache est apparemment différent.
J'ai eu le même problème, mais aucun de ces messages ci-dessus n'a fonctionné pour moi. Plus tard, j'ai lu et passé en revue chacun des fichiers de configuration d'Apache et PHP.
Je pourrais comprendre que dans Apache2.conf (dans Ubuntu 13.10) il y a un drapeau appelé
HostnameLookups off
Par défaut, cette option est désactivée, j'ai changé cela pour
HostnameLookups on
Ce faisant, Apache a bien commencé à récupérer les entrées de mon hôte et de vhost config.
Vous trouverez également ci-dessous mon fichier Vhost actuel. que j'avais l'habitude de faire fonctionner
Bien sûr, je recommande aussi d'ajouter Require all granted
avec dans la directive Vhost.
<VirtualHost *:80>
ServerName test.yoursite.domain.in
DocumentRoot path_to_code_base/public
<Directory path_to_code_base/public>
Options -Indexes
Require all granted
DirectoryIndex index.php
AllowOverride All
</Directory>
ErrorLog /path_to_code_base/logs/error.log
LogLevel warn
CustomLog /path_to_code_base/logs/access.log combined
</VirtualHost>
Je poste ceci pour aider les autres qui ne veulent pas perdre leur temps à déclasser Ubuntu à 13.04 au lieu de 13.10.
Je ne vois pas cela dans les blogs, je ne pouvais pas non plus comprendre ce que signifie réellement hostnameLookups.
J'espère que cela t'aides .
Pour Apache 2.4.6
dans Ubuntu 13.10
,
Tu vas avoir
/etc/Apache2/Apache2.conf
/etc/Apache2/sites-available/000-default.conf
Et
/etc/Apache2/sites-enabled/000-default.conf
pointe vers/etc/Apache2/sites-available/000-default.conf
Maintenant, éditez Apache2.conf
et ajouter
<Directory /home/my_site/public_html/>
#YOUR SETTINGS
</Directory>
et éditez sites-available/000-default.conf
et changer <VirtualHost *:80>
à <VirtualHost localhost:80>
pour que Apache écoute localhost (sur le port 80) pour vos paramètres par défaut.
Maintenant, pour faire mysite.localhost
travail, ajoutez ceci à sites-available/000-default.conf
<VirtualHost mysite.localhost:80>
ServerName mysite.localhost
ServerAdmin [email protected]
DocumentRoot /home/my_new_site_public_html
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
Maintenant, éditez votre /etc/hosts/
fichier et changer le IP
de mysite.localhost
de 127.0.1.1
à 127.0.0.1
Maintenant, visitez http://mysite.localhost
& http://localhost
:)
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mysite.localhost
DocumentRoot /var/www/mysite
<Directory /var/www/mysite/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/Apache2/mysite-error.log
CustomLog /var/log/Apache2/mysite-access.log common
</VirtualHost>
Dans mon cas, je viens de remplacer <VirtualHost *:80>
à <VirtualHost mysite.localhost:80>
après de nombreux essais et erreurs
J'espère que ça aide.
Cordialement,
Juste une note à l'attention des personnes qui discutent de ce sujet, vous devrez utiliser Sudo pour que tous ces paramètres soient définis si vous utilisez une instance AWS.
Sudo a2ensite example.com
N'oubliez pas que vous devez le faire même pour redémarrer Apache. Si vous ne voyez pas vos changements s'opérer, c'est probablement le coupable.
Sudo service Apache2 restart
Exécuter:
vim peut être changé avec votre éditeur de texte préféré comme nano, pico, etc.
vim /etc/Apache2/Apache2.conf
Fichier original:
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual Host.
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share/>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Changer Aucun en Tous
Editer le fichier:
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual Host.
<Directory />
Options FollowSymLinks
AllowOverride All
Require all denied
</Directory>
<Directory /usr/share/>
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Pour Kubuntu 14.04 & Apache 2.4.7
Après avoir essayé les suggestions ci-dessus et malgré les problèmes d'autorisations, un "chmod 755 $ HOME" a fonctionné pour moi. Ne pas utiliser sur un système multi-utilisateur.