web-dev-qa-db-fra.com

Serveur incapable de lire le fichier htaccess, refusant l'accès en toute sécurité

J'ai créé une application simple en utilisant AngularJS. Lorsque j'ai essayé d'héberger ce projet sur mon site Web http://demo.gaurabdahal.com/recipefinder il affiche l'erreur suivante:

Interdit

Vous n'avez pas la permission d'accéder/recipefinder sur ce serveur . Serveur incapable de lire le fichier htaccess, refusant l'accès en toute sécurité

Mais si je vais à http://demo.gaurabdahal.com/ il affiche le message "accès refusé" comme prévu, que j'ai imprimé. Mais pourquoi ne peut-il pas ouvrir ce projet "recipefinder" d’AngularJS? Si j'essayais d'y installer une application HTML simple, elle s'ouvre parfaitement.

Le même projet AngularJS fonctionne bien lorsque j'héberge que dans github ( http://gaurabdahal.github.io/recipefinder )

Je ne peux pas comprendre ce qui ne va pas.

31
Saurab

J'ai eu ce problème également. Mon conseil est de regarder dans votre fichier journal des erreurs du serveur. Pour moi, c’est que le répertoire principal du projet n’était pas lisible. Le journal des erreurs l'a clairement indiqué. Un simple 

Sudo chmod -R 755 <site_top_folder>

corrigé pour moi. 

71
swedge218

Il s'agit d'un problème courant avec l'hébergement de serveur virtuel GoDaddy lorsque vous ouvrez un nouveau site Web.

En supposant que vous ayez un accès SSH au serveur (vous devez l’activer sur cPanel), connectez-vous à votre compte. Une fois la connexion établie, vous serez placé dans le répertoire de base de votre compte. Le répertoire DocumentRoot de votre site Web se trouve dans un sous-répertoire nommé public_html. GoDaddy attribue par défaut les autorisations pour ce répertoire à 750, mais ces autorisations sont insuffisantes pour permettre à Apache de lire les fichiers du site Web. Vous devez modifier les autorisations pour ce répertoire en 755 (chmod 755 public_html).

Copiez les fichiers de votre site Web dans le répertoire public_html (scp et rsync fonctionnent pour la copie de fichiers sur un serveur Linux GoDaddy).

Ensuite, assurez-vous que tous les fichiers sous public_html sont lisibles par tout le monde. Pour ce faire, utilisez cette commande:

cd public_html
chmod -R o+r *

Si vous avez d'autres sous-répertoires (tels que css, js et img), assurez-vous qu'ils sont accessibles au monde entier en activant la lecture et l'exécution pour l'accès mondial:

chmod o+rx css
chmod o+rx img
chmod o+rx js

Enfin, vous aurez besoin d'un fichier .htaccess dans le fichier public_html. GoDaddy applique une règle qui interdit le chargement du site si vous n'avez pas de fichier .htaccess dans votre répertoire public_html. Vous pouvez utiliser vi pour créer ce fichier ("vi .htaccess"). Entrez les lignes suivantes dans le fichier:

Order allow,deny
Allow from all
Require all granted

Cette configuration fonctionnera à la fois pour Apache 2.2 et Apache 2.4. Enregistrez le fichier (ZZ), puis assurez-vous que le fichier dispose des autorisations de 644:

chmod 644 .htaccess

Fonctionne comme un charme.

16
David Stoddard

Définissez le groupe de votre répertoire public sur personne.

15
Mycelin

Vous devez exécuter ces commandes dans /var/www/html/ ou tout autre répertoire dans lequel se trouve votre projet:

Sudo chgrp -R group ./
Sudo chown -R user:group ./
find ./ -type d -exec chmod 755 -R {} \;
find ./ -type f -exec chmod 644 {} \;

Dans mon cas (serveur Web Apache), j'utilise www-data pour user et group

12
Vahid

Dans mon cas, Apache était mal configuré, donc je devais également définir des autorisations pour tous les répertoires parents. Le simple fait de définir l’autorisation sur .htaccess (et son répertoire parent) ne fonctionne pas.

2
MilanG

Solution de serveur partagé GoDaddy

En gros, le même problème se posait lorsque j'essayais de déployer un projet Laravel distinct au niveau des sous-domaines. 

Structure de fichier

- public_html (where the main web app resides)
    [works fine]

    - booking.mydomain.com (folder for separate Laravel project)
        [showing error 403 forbidden]

Solution

  1. aller à cPanel de votre compte GoDaddy
  2. ouvrir le gestionnaire de fichiers
  3. accédez au dossier qui affiche une erreur 403 interdite
  4. dans le gestionnaire de fichiers, cliquez avec le bouton droit sur le dossier (dans mon cas, booking.mydomain.com)
  5. sélectionnez Modifier les autorisations
  6. sélectionner les cases à cocher suivantes

    a) user - read, write, execute
    b) group - read, execute
    c) world - read, execute
    
    Permission code must display as 755
    
  7. Cliquez sur modifier les autorisations 

Travail accompli!

0
Armand

Juste ma solution. J'avais extrait un fichier, apporté quelques modifications mineures et obtenu l'erreur ci-dessus. Tout supprimé, téléchargé et extrait à nouveau, et les affaires normales. 

0
user2060451