Où placer mon site Web local à partir de la version 2.4.7 d’apache2?

50

J'ai récemment installé Ubuntu 14.04, puis j'ai installé lamp-serveret placé mes pages Web dans un /var/wwwrépertoire, mais lorsque j'ai ouvert localhost dans le navigateur, il n'y avait rien. Je pense que cela est dû au fait que Zend a mis à jour Apache.

Quelle que soit la raison, je veux savoir où conserver mes fichiers php pour pouvoir y accéder depuis mon navigateur.

Akabhirav
la source
Bien que ce ne soit pas une réponse à la question du PO, la réponse suivante peut aider certains visiteurs qui tombent sur cette question tout en essayant de résoudre un problème connexe: askubuntu.com/a/525120/1183
augustin

Réponses:

76

La version apache2 publiée lors de la publication de la version Ubuntu 14.04 est 2.4.7 et, à partir de cette version, il semble que, pour des raisons de sécurité, le nouveau répertoire racine du serveur est le suivant:

/var/www/html

Donc, à partir de maintenant, c'est ici que vous devez placer les fichiers pour votre site Web (local). Vous ne devriez plus avoir ce problème avec les futures mises à jour.


Quoi qu'il en soit, si vous voulez changer ce répertoire avec un autre, vous devez modifier (en tant que root) la ligne suivante à partir de /etc/apache2/sites-available/000-default.conffile ( sudo nano /etc/apache2/sites-available/000-default.conf):

DocumentRoot /var/www/html

à

DocumentRoot /path/to/another/directory

Après cela, pour que les nouvelles modifications prennent effet, vous devez redémarrer le serveur Apache à l'aide de la commande suivante:

sudo service apache2 restart
Radu Rădeanu
la source
10
Intéressant, j'ai essayé de chercher le raisonnement derrière ce déménagement. Si quelqu'un est intéressé, j'ai trouvé ce rapport de bogue dans Debian qui l'explique.
Dan
4
Je reçois une erreur interdite après ce changement.
Darshana
1
@Darshana La configuration par défaut d'Apache2.4 ne permet pas à Apache d'accéder à l'extérieur /var/www/html. En plaçant votre site ailleurs que dans ce répertoire (ou dans ses sous-répertoires), vous obtiendrez une erreur 403. Vous devez ajouter une <Directory /path/to/your/site>directive à vos configurations VHost avec une requiredirective .
Dan
Cela n'a pas fonctionné pour moi.
user124384
Idem ici .. Sa me donne maintenant l'erreur 403 interdite! Comment dois-je le résoudre (De manière plus simple et plus simple, S'IL VOUS PLAÎT)
abhishah901
27

Au lieu de /etc/apache2/sites-available/000-default.confrevenir à l'ancienne version, je préfère garder les fichiers de paquet par défaut non modifiés.

Une raison à cela est que cela ne casserait pas lors de la prochaine mise à jour, ce qui pourrait réinitialiser le 000-default.conffichier.
De plus, de telles modifications ne sont pas faites pour nous gêner, elles ont été faites pour une bonne raison, comme l' explique ce rapport de bogue dans Debian .

Nos serveurs Web [sic] ont défini la racine du document par défaut sur / var / www, alors que les administrateurs de site locaux ont tendance à utiliser /var/www/example.com. Cela a des conséquences sur la sécurité si les visiteurs accèdent à la racine du document par défaut, en contournant la racine / supposée / du document de example.com. Cela pose problème si des données sensibles sont placées en dehors de la racine supposée du document (par exemple, considérons un fichier de configuration hypothétique /var/www/example-com-db.conf).

Une meilleure solution serait de déplacer les fichiers sites de /var/wwwà /var/www/html/.

# 1. move all files excluding the `html` directory
sudo mv /var/www/[!html]* /var/www/html
# 2. Move the hidden files as well which are skipped in previous command
sudo mv /var/www/.[!.]?* /var/www/html/

En outre, une autre solution possible consiste à créer un autre hôte virtuel et à désactiver celui par défaut à l'aide de la commande sudo a2dissite 000-default

Dan
la source