web-dev-qa-db-fra.com

Je reçois un accès interdit (erreur 403) lors de la création d'un nouvel alias

Je suis sous Windows 7 et j'ai récemment installé XAMPP pour créer un environnement de développement. Je ne suis pas très bon avec le côté serveur, alors j'ai quelques problèmes pour configurer un alias pour un projet.

Jusqu'ici, XAMPP est en cours d'exécution et si je vais sur localhost, la page d'accueil XAMPP s'affiche. J'ai créé un dossier "alias" dans mon dossier "conf" de mon installation Apache. Là j'ai ajouté dev.conf avec le contenu suivant:

<Directory "C:\Users\my_user\My%20Documents\Aptana%20Studio%203%20Workspace\project">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from 127.0.0.1
</Directory>

Alias /dev "C:\Users\my_user\My%20Documents\Aptana%20Studio%203%20Workspace\project"

Mais alors quand je vais à "localhost/dev" je reçois:

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

J'ai essayé de googler et j'ai trouvé d'autres questions similaires sur SO mais je n'arrive pas à le comprendre. Certains disent qu'il faut lui dire d'avoir des autorisations mais dans mon fichier de configuration que j'ai spécifié autorisez-le à partir de 127.0.0.1 C'est peut-être parce que mon chemin contient des espaces (bien que certaines recherches sur Google me disent que% 20 fonctionnent). et ça a cassé donc ça me dit que ça a probablement quelque chose à voir avec ça.

J'ai regardé dans mon dossier de journal et trouvé la ligne suivante:

[Mar 13 déc. 14:59:20 2011] [erreur] [client :: 1] client refusé par la configuration du serveur: C:/Utilisateurs/mon_utilisateur/Mes% 20Documents

Je ne sais pas si cela coupe, car les messages d'erreur ne peuvent être que d'une certaine longueur, mais ce n'est certainement pas le chemin que j'ai ajouté dans le fichier dev.conf, j'espère que cela pourra éclaircir un peu la situation car certains assez frustré et je ne sais plus quoi essayer.

40
Gazillion

J'ai finalement réussi à le faire fonctionner.

Je ne sais pas si les espaces dans le chemin d'accès cassaient des objets, mais j'ai modifié l'espace de travail de mon installation Aptana en un espace sans espaces.

Ensuite, j'ai désinstallé XAMPP et l'ai réinstallé, car je pensais que je pouvais peut-être faire une faute de frappe quelque part sans m'en rendre compte et me suis dit que je devrais travailler à partir de zéro.

Il s'avère que Windows 7 propose un service quelque part qui utilise le port 80, ce qui empêche Apache de démarrer (en lui donnant l'erreur -1). J'ai donc changé le port qu'il écoute sur le port 8080, plus de conflit.

Enfin, j'ai redémarré mon ordinateur, pour une raison quelconque, XAMPP n'aime pas que je me mêle de fichiers ini et le simple redémarrage d'Apache ne suffisait pas.

Quoi qu'il en soit, cette journée a été la plus frustrante de ma vie et j'espère vraiment que ma réponse finira par aider quelqu'un!

6
Gazillion

Je viens de trouver le même problème avec les alias sur une installation Windows de Xampp.

Pour résoudre l'erreur 403:

<Directory "C:/Your/Directory/With/No/Trailing/Slash">
   Require all granted
</Directory>

Alias /dev "C:/Your/Directory/With/No/Trailing/Slash"

La configuration par défaut de Xampp devrait convenir à cela. Certaines personnes ont eu des problèmes avec un refus placé sur le répertoire racine. Pour ce faire, balayez la balise directory dans:

<Directory "C:/Your/Directory/With/No/Trailing/Slash">
   Allow from all
   Require all granted
</Directory>

Cela aiderait avec ceci mais la version actuelle de Xampp (v1.8.1 au moment de l'écriture) n'en a pas besoin.

En ce qui concerne le problème rencontré par le port 80, Xampp inclut un bouton Netstat très pratique pour savoir ce qui utilise vos ports. Déclenchez et résolvez le conflit, j'imagine que cela aurait pu être IIS mais je ne peux pas en être sûr.

78
GuyC

J'utilise XAMPP avec Apache2.4, j'ai eu le même problème. Je voulais laisser le dossier par défaut xampp/htdocs en place, pouvoir y accéder depuis locahost et disposer d'un hôte virtuel pour pointer vers ma zone de développement ...

Le contenu complet de mon fichier C:\xampp\Apache\conf\extra\http-vhosts.conf Se trouve ci-dessous ...

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.Apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual Host
# configuration.

#
# Use name-based virtual hosting.
#

##NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#
##<VirtualHost *:80>
    ##ServerAdmin [email protected]
    ##DocumentRoot "C:/xampp/htdocs/dummy-Host.example.com"
    ##ServerName dummy-Host.example.com
    ##ServerAlias www.dummy-Host.example.com
    ##ErrorLog "logs/dummy-Host.example.com-error.log"
    ##CustomLog "logs/dummy-Host.example.com-access.log" common
##</VirtualHost>

##<VirtualHost *:80>
    ##ServerAdmin [email protected]
    ##DocumentRoot "C:/xampp/htdocs/dummy-Host2.example.com"
    ##ServerName dummy-Host2.example.com
    ##ErrorLog "logs/dummy-Host2.example.com-error.log"
    ##CustomLog "logs/dummy-Host2.example.com-access.log" common
##</VirtualHost>


<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs"
    ServerName localhost
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot "C:\nick\static"
    ServerName dev.middleweek.co.uk
    <Directory "C:\nick\static">
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

J'ai ensuite mis à jour mon fichier C:\windows\System32\drivers\etc\hosts Comme ceci ...

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to Host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding Host name.
# The IP address and the Host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client Host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1   dev.middleweek.co.uk
127.0.0.1       localhost

Redémarrez votre ordinateur, ouvrez le panneau de configuration XAMPP et démarrez Apache.

Maintenant, ouvrez votre domaine personnalisé dans votre navigateur. Dans l'exemple ci-dessus, ce sera http://dev.middleweek.co.uk

J'espère que ça aide quelqu'un!

Et si vous voulez pouvoir afficher les listes de répertoires sous votre nouvel hôte virtuel, éditez votre bloc VirtualHost dans C:\xampp\Apache\conf\extra\http-vhosts.conf Pour inclure "Index d'index" comme celui-ci ...

<VirtualHost *:80>
    DocumentRoot "C:\nick\static"
    ServerName dev.middleweek.co.uk
    <Directory "C:\nick\static">
        Allow from all
        Require all granted
        Options Indexes
    </Directory>
</VirtualHost>

A bientôt, Nick

28
Nick Middleweek

Cette question est ancienne et bien que vous ayez réussi à la faire fonctionner, mais j'estime qu'il serait utile de préciser certains des points que vous avez soulevés ici.

Tout d'abord sur le nom du répertoire ayant des espaces. J'ai joué avec les fichiers de configuration Apache2 et j'ai découvert que, si le nom du répertoire contient de l'espace, mettez-le entre guillemets et tous les problèmes disparaissent. Par exemple...

    NameVirtualHost     local.webapp.org
    <VirtualHost local.webapp.org:80>
        ServerAdmin [email protected]
        DocumentRoot "E:/Project/my php webapp"
        ServerName local.webapp.org
    </VirtualHost>

Notez la façon dont la ligne DocumentRoot est écrite.

Deuxièmement, l'accès est interdit à xampp. J'ai trouvé que la configuration par défaut de xampp (..path vers xampp/Apache/httpd.conf) comporte une section ressemblant à ce qui suit.

    <Directory>
        AllowOverride none
        Require all denied
    </Directory>

Changez-le et faites-le ressembler à celui ci-dessous. Enregistrez le fichier, redémarrez Apache à partir de xampp et cela résout le problème.

    <Directory>
       Options Indexes FollowSymLinks Includes ExecCGI
       AllowOverride none
       Require all granted
    </Directory>
20
Willa

essaye ça

Sudo chmod -R 0777/opt/lampp/htdocs/testproject

13
Miftahulfauzan

Les hôtes virtuels Apache 2.4 piratent

1. Dans http.conf, spécifiez les ports, sous "Listen"

Listen 80
Listen 4000
Listen 7000
Listen 9000
  1. Dans httpd-vhosts.conf

    <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html"  
    ServerName hitesh_web.dev
    ErrorLog "logs/dummy-Host2.example.com-error.log"
    CustomLog "logs/dummy-Host2.example.com-access.log" common
    
    <Directory "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html">
    Allow from all
    Require all granted
    </Directory>
    
    </VirtualHost>
    

    c'est le 2ème hôte virtuel

    <VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "E:/dabkick_git/DabKickWebsite"
    ServerName  www.my_mobile.dev
    ErrorLog "logs/dummy-Host2.example.com-error.log"
    CustomLog "logs/dummy-Host2.example.com-access.log" common
    
    <Directory "E:/dabkick_git/DabKickWebsite">
     Allow from all
     Require all granted
     </Directory>
    </VirtualHost>
    
  2. Dans le fichier hosts.ics de Windows “C:\Windows\System32\drivers\etc\Host.ics”

    127.0.0.1             localhost
    127.0.0.1             hitesh_web.dev
    127.0.0.1             www.my_mobile.dev
    127.0.0.1             demo.multisite.dev
    

4.Maintenant, tapez vos "noms de domaine" dans le navigateur, il enverra une requête ping au dossier spécifié dans le chemin documentRoot.

5.si vous souhaitez accéder à ces fichiers sur un port particulier, remplacez 80 dans httpd-vhosts.conf par les numéros de port comme ci-dessous et redémarrez Apache.

   <VirtualHost *:4000>
ServerAdmin [email protected]
DocumentRoot "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html"
ServerName hitesh_web.dev
ErrorLog "logs/dummy-Host2.example.com-error.log"
CustomLog "logs/dummy-Host2.example.com-access.log" common

<Directory "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html">
Allow from all
Require all granted
</Directory>

</VirtualHost>

c'est le 2e vhost

<VirtualHost *:7000>
ServerAdmin [email protected]
DocumentRoot "E:/dabkick_git/DabKickWebsite"
ServerName  www.dabkick_mobile.dev
ErrorLog "logs/dummy-Host2.example.com-error.log"
CustomLog "logs/dummy-Host2.example.com-access.log" common

<Directory "E:/dabkick_git/DabKickWebsite">
Allow from all
Require all granted
</Directory>
</VirtualHost>

Remarque: pour le numéro de port donné aux hôtes virtuels, vous devez effectuer une commande ping dans le navigateur, à l’aide de " http://hitesh_web.dev:4000/ " ou " http://www.dabkick_mobile.dev: 7000 /

6.Après toutes ces modifications, vous devez enregistrer les fichiers et redémarrer Apache.

3
vikas etagi

Si vous avez installé un module sur Xampp (sous Linux) via Bitnami et modifié les paramètres chown, assurez-vous que le paramètre /opt/lampp/apps/<app>/htdocs and tmp usergroup est daemon avec tous les autres fichiers et dossiers frères chowned à l'utilisateur que vous avez installé, par exemple. cd /opt/lampp/apps/<app>, Sudo chown -R root:root ., suivi par Sudo chown -R root:daemon htdocs tmp.

1
Jonathan