web-dev-qa-db-fra.com

Xampp Access Forbidden php

Je suis un utilisateur Windows. J'utilise xampp depuis un certain temps, mais soudain, aucun de mes fichiers .php ne fonctionne maintenant!…. Je reçois ce message d'erreur:


Accès interdit!

Vous n'êtes pas autorisé à accéder à l'objet demandé. Il est protégé en lecture ou illisible par le serveur.

Si vous pensez que ceci est une erreur de serveur, veuillez contacter le webmaster.

Erreur 403

localhost Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.16


Je peux voir la liste de mes fichiers .php dans localhost/Practice (Practice est le dossier dans lequel j'ai enregistré mes fichiers) Le fichier s'ouvre même lorsque je clique dessus . Mais lorsque je clique sur l'un des fichiers ' Le bouton submit 'à l'intérieur de l'un de mes fichiers, il donne cette erreur . S'il vous plaît, aidez-moi! J'ai mis à jour xampp de 1.8.1 à 1.8.2 mais le même problème persiste!

37
NirAv JaIn

Essayez avec le code ci-dessous, ajoutez-le à votre configuration d’hôte virtuel. Ajoutez ces lignes au fichier httpd-vhosts.conf:

<Directory "c:/<path-to-projects>/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order Deny,Allow
        Allow from all
        Require all granted
</Directory>

J'ai résolu le même problème de cette façon. J'espère que ça aide.

96
Tho Vo

si vous utilisez le système d’exploitation Ubuntu, vérifiez dans le dossier chmod/Practice. 

Ouvrir le terminal en appuyant sur la touche de raccourci Ctrl+Alt+T Aller à 

$ cd/opt/lampp/htdocs/

et modifier le dossier en lecture, en écriture et en exécuter à l'aide de la commande chmod 

par exemple, le nom du dossier est la pratique et le chemin du dossier./opt/lampp/htdocs/practice

Commande de type 

$ Sudo chmod 777 -R Practice

qu'est-ce que chmod et 777? visitez ce lien http://linuxcommand.org/lts0070.php

11
rahuldm

La façon dont j'ai résolu ceci était les journaux d'erreur d'installation correctement, d'abord

<VirtualHost *:80>
    DocumentRoot "D:/websites/test/"
    ServerName test.dev
    ErrorLog "D:/websites/test/logs/error.log"
    CustomLog "D:/websites/test/logs/access.log" common
    <Directory D:/websites/test/>  
        AllowOverride none
        Require all granted  
    </Directory>
</VirtualHost>

Après avoir enregistré cette erreur dans "D:/websites/test/logs /" , veillez à créer vous-même le dossier des journaux. L’erreur exacte enregistrée dans le journal des erreurs était

AH01630: client refusé par la configuration du serveur:

Ce qui m'a amené à corriger la solution en utilisant ce lien qui disait pour l'erreur ci-dessus 

Require all granted 

est requis. Mon exemple de code ci-dessus résout le problème en passant.

4
Hammad Khan

J'utilise xampp avec Ubuntu 16.04 - et ça fonctionne très bien pour moi

<VirtualHost *:80>
    DocumentRoot "/opt/lampp/htdocs/"
    ServerAdmin localhost
    <Directory "/opt/lampp/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
2
Raj Kumar

Allez dans votre dossier Xampp xampp/Apache/conf/extra/httpd-xampp.c­onf

Editez le dernier paragraphe:

#close XAMPP sites here 
.
.
.
Deny from all
.
.

à

#close XAMPP sites here 
.
.
.
Allow from all
.
.

ou regardez simplement cette vidéo: http://www.youtube.com/watch?v=ZUAKLUZa-AU .

2
Florian Braun

J'ai eu ce problème après avoir déplacé le dossier htdocs en dehors du dossier xampp. Si vous faites cela, alors vous devez changer la racine du document dans httpd.conf. Voir https://stackoverflow.com/a/1414/3543329 .

1
MrMadsen

Pour moi, cela a été résolu instantanément par ce qui suit

  1. Aller à C:\xampp\Apache\conf\extra
  2. Edition à l'intérieur du fichier httpd-xampp.conf
  3. Editez le fichier comme suit:

recherchez les lignes suivantes par cont + f:

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>

seulement changer local ----> tout est accordé, donc ça devient comme ça

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>

Après cela, l'hôte local cessera d'afficher l'erreur et affichera le panneau d'administration. J'ai trouvé cette solution dans une vidéo ici: https://www.youtube.com/watch?v=MvYyEPaNNhE

1
miberg81

J'ai eu le même problème. Donc je me suis souvenu. Hier, j'avais commenté ce code dans htttp-xampp.conf

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
    <Directory "C:/xampp/phpMyAdmin">
#        AllowOverride AuthConfig
#        Require local
#        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>

Donc, je peux accéder à mon hôte local en utilisant un autre système sur le même réseau (LAN/WIFI), car localhost nécessite local.

Alors je le fais juste comme 

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
    <Directory "C:/xampp/phpMyAdmin">
        AllowOverride AuthConfig
#        Require local
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </Directory>

et maintenant son travail sur ma machine locale et localhost est accessible en utilisant d'autres systèmes sur le même LAN/WIFI.

0
Seetpal singh

Dans mon cas, j'ai exporté l'instance Drupal du serveur vers l'hôte local sur XAMPP. De toute évidence, cela ne rendait pas justice à la propriété des fichiers et des répertoires et Apache renvoyait l'erreur ci-dessus.

C'est la propriété des fichiers et des répertoires initialement:

 enter image description here

Pour accorder des autorisations de lecture sur mes fichiers et exécuter des autorisations sur mes répertoires, je peux le faire pour que tous les utilisateurs puissent lire, écrire et exécuter:

Sudo chmod 777 -R

mais ce ne serait pas la solution idéale, car cela serait ramené sur le serveur et risquerait de créer une faille de sécurité.

Un script est donné dans ce blog: https://www.drupal.org/node/244924

#!/bin/bash

# Help menu
print_help() {
cat <<-HELP
This script is used to fix permissions of a Drupal installation
you need to provide the following arguments:

  1) Path to your Drupal installation.
  2) Username of the user that you want to give files/directories ownership.
  3) HTTPD group name (defaults to www-data for Apache).

Usage: (Sudo) bash ${0##*/} --drupal_path=PATH --drupal_user=USER --httpd_group=GROUP
Example: (Sudo) bash ${0##*/} --drupal_path=/usr/local/Apache2/htdocs --drupal_user=john --httpd_group=www-data
HELP
exit 0
}

if [ $(id -u) != 0 ]; then
  printf "**************************************\n"
  printf "* Error: You must run this with Sudo or root*\n"
  printf "**************************************\n"
  print_help
  exit 1
fi

drupal_path=${1%/}
drupal_user=${2}
httpd_group="${3:-www-data}"

# Parse Command Line Arguments
while [ "$#" -gt 0 ]; do
  case "$1" in
    --drupal_path=*)
        drupal_path="${1#*=}"
        ;;
    --drupal_user=*)
        drupal_user="${1#*=}"
        ;;
    --httpd_group=*)
        httpd_group="${1#*=}"
        ;;
    --help) print_help;;
    *)
      printf "***********************************************************\n"
      printf "* Error: Invalid argument, run --help for valid arguments. *\n"
      printf "***********************************************************\n"
      exit 1
  esac
  shift
done

if [ -z "${drupal_path}" ] || [ ! -d "${drupal_path}/sites" ] || [ ! -f "${drupal_path}/core/modules/system/system.module" ] && [ ! -f "${drupal_path}/modules/system/system.module" ]; then
  printf "*********************************************\n"
  printf "* Error: Please provide a valid Drupal path. *\n"
  printf "*********************************************\n"
  print_help
  exit 1
fi

if [ -z "${drupal_user}" ] || [[ $(id -un "${drupal_user}" 2> /dev/null) != "${drupal_user}" ]]; then
  printf "*************************************\n"
  printf "* Error: Please provide a valid user. *\n"
  printf "*************************************\n"
  print_help
  exit 1
fi

cd $drupal_path
printf "Changing ownership of all contents of "${drupal_path}":\n user => "${drupal_user}" \t group => "${httpd_group}"\n"
chown -R ${drupal_user}:${httpd_group} .

printf "Changing permissions of all directories inside "${drupal_path}" to "rwxr-x---"...\n"
find . -type d -exec chmod u=rwx,g=rx,o= '{}' \;

printf "Changing permissions of all files inside "${drupal_path}" to "rw-r-----"...\n"
find . -type f -exec chmod u=rw,g=r,o= '{}' \;

printf "Changing permissions of "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
cd sites
find . -type d -name files -exec chmod ug=rwx,o= '{}' \;

printf "Changing permissions of all files inside all "files" directories in "${drupal_path}/sites" to "rw-rw----"...\n"
printf "Changing permissions of all directories inside all "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
for x in ./*/files; do
  find ${x} -type d -exec chmod ug=rwx,o= '{}' \;
  find ${x} -type f -exec chmod ug=rw,o= '{}' \;
done
echo "Done setting proper permissions on files and directories"

Et besoin d'invoquer la commande:

Sudo bash /Applications/XAMPP/xamppfiles/htdocs/fix-permissions.sh --drupal_path=/Applications/XAMPP/xamppfiles/htdocs/rkmission --drupal_user=daemon --httpd_group=admin

Dans mon cas, l'utilisateur sur lequel Apache s'exécute est "daemon". Vous pouvez identifier l'utilisateur en exécutant simplement ce script php dans un fichier php via localhost:

<?php echo exec('whoami');?>

Vous trouverez ci-dessous le bon utilisateur avec les autorisations de fichiers appropriées pour Drupal:

 enter image description here

Vous devrez peut-être le changer une fois qu'il est renvoyé sur le serveur!

0
Raj Pawan Gumdal

Avez-vous changé quelque chose sur l'hôte virtuel avant qu'il ne cesse de fonctionner?

Ajoutez cette ligne à xampp/Apache/conf/extra/httpd-vhosts.conf

<VirtualHost localhost:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerAdmin localhost
    <Directory "C:/xampp/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
0
Chinedu
A. #LoadModule vhost_alias_module modules/mod_vhost_alias.so
B. <Directory />
    AllowOverride none
    Require all denied
</Directory>

Remplacer par:

A. LoadModule vhost_alias_module modules/mod_vhost_alias.so
B:
<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

De E:\xamp ** Apache\conf/httpd.conf **

0
user1476842