1 votes

403 Erreur lors de l'accès à l'application locale

Je suis un garçon IIS qui essaie de se plonger dans le développement linux pour la première fois, alors s'il vous plaît, soyez gentil.

Ok, donc... J'essaie de configurer mon poste de travail pour développer sur laravel.

Je suis sur Ubuntu 18.04, et j'ai installé Apache. J'ai installé laravel à partir de composer, et j'ai créé un premier projet avec : composer create-project --prefer-dist laravel/laravel mySite "5.8.*"

Ceci a créé un dossier de projet laravel nommé mySite sur /etc/apache2/sites-enabled

J'ai ajouté un nouveau fichier /etc/apache2/sites-available/mySite.conf qui ressemble à ceci :

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mySite
ServerAlias www.mySite
DocumentRoot /etc/apache2/sites-enabled/mySite/public/index.php
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>

Après cela, j'ai ajouté une ligne à /etc/apache2/apache2.conf avec :

Include /etc/apache2/sites-available/mySite.conf

Et, bien sûr, j'ai placé mon site virtuel sur la liste blanche du même fichier :

<Directory /etc/apache2/sites-available/mySite>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

J'ai lancé a2ensite et redémarré apache.

Cependant, je reçois régulièrement des erreurs 403 (Interdit. Vous n'avez pas la permission d'accéder à cette ressource.) lorsque j'essaie d'accéder à http://localhost/mySite o http://localhost/mySite/public/index.php De même, l'utilisation de 127.0.0.1 au lieu de localhost provoque la même erreur.

Tout éclairage sur cette question serait le bienvenu.

1voto

Mauricio Gtz Points 100

Bonjour J'ai de l'expérience dans la mise en place d'hôtes virtuels pour le développement local, j'espère que cela vous aidera.

Supprimez la ligne dans apache.conf : Include /etc/apache2/sites-available/mySite.conf

Et courir sudo a2ensite mySite.conf pour activer le serveur virtuel. (Le fichier mySite.conf doit être le même dans ...apache/sites-available/)

Dans votre fichier de configuration VHost, modifiez votre DocumentRoot comme suit

<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 ServerName mySite.loc
 ServerAlias www.mySite.loc
 DocumentRoot /your/project/path
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ServerName sera le domaine localhost de votre projet et le domaine DocumentRoot /your/project/path le dossier racine dans lequel votre projet est hébergé (il doit y avoir un index.html ou un index.php). Vous ne devez indiquer que le chemin d'accès au dossier, et non au fichier index.php, comme ceci : /home/yourusername/projects/mysite/public .

Déplacez également votre projet dans votre répertoire personnel afin qu'il n'ait pas besoin des droits root pour y accéder. Vous pouvez déplacer le projet dans /home/votre nom d'utilisateur/projets/mysite/public

Maintenant, éditez avec sudo le fichier /etc/hosts avec vim (ou nano ou sublime ou tout autre éditeur de votre choix). Et ajoutez cette ligne :

127.0.0.1 mySite.loc

Et vous le verrez probablement ainsi :

127.0.0.1 localhost
127.0.0.1 mySite.loc

Exécutez maintenant les commandes pour activer le site conf (si vous ne l'avez pas encore fait). Rechargez apache avec : sudo service apache2 reload et redémarrer apache avec sudo service apache2 restart .

Ok, vous avez maintenant configuré vos Vhosts correctement, mais vous devez donner les permissions correctes à l'utilisateur et au groupe pour le dossier dans Apache :

Editez le fichier conf d'apache avec sudo, que l'on trouve généralement sur : /etc/apache2/apache2.conf .

Trouver cette ligne :

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

Commentez-les et remplacez-les par votre nom d'utilisateur et le nom du groupe dont votre projet est propriétaire. Vous pouvez le découvrir en ouvrant le terminal et en changeant de répertoire vers votre projet en utilisant cd et en utilisant la commande ls -l Vous verrez maintenant le nom d'utilisateur du dossier et du fichier ainsi que le nom du groupe à gauche de vos fichiers et dossiers :

~ 
 cd Sites/mySite/public 

Sites/mySite/public via  v7.2.24 
 ls -l
total 0
-rw-r--r-- 1 mauriciogtz mauriciogtz 0 nov  5 11:15 index.php

Le nom d'utilisateur du propriétaire de la permission de mes fichiers est mauriciogtz (à gauche) et mon groupe est mauriciogtz (à droite).

Ajoutez-les comme suit dans votre fichier conf d'apache :

#User ${APACHE_RUN_USER}
#Group ${APACHE_RUN_GROUP}
User mauriciogtz
Group mauriciogtz

Vous pouvez utiliser Group staff au lieu du nom du groupe si cela n'a pas fonctionné pour vous. Cherchez maintenant ce bloc de code :

<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>

Copiez le tout et collez-le juste en dessous et modifiez-le pour qu'il ressemble à ceci :

<Directory /home/mauriciogtz/Sites/mySite/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Lorsque le chemin du répertoire doit être le chemin de votre projet, vous pouvez utiliser pwd dans le dossier de votre projet pour obtenir le chemin d'accès.

Redémarrer apache une nouvelle fois sudo service apache2 restart et ce devrait être tout. J'espère que cela vous conviendra.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X