web-dev-qa-db-fra.com

Accès interdit erreur 403 dans xampp

Je suis très nouveau à xampp. J'ai fait une nouvelle installation de xampp avec les commandes suivantes.

Sudo su
cd /tmp
wget bit.ly/1cmyrUo -O xampp-32bit.run
chmod 777 ./xampp-32bit.run
Sudo ./xampp-32bit.run

Ensuite, j'ai créé un fichier Perl pour vérifier si mon xampp fonctionne. Voici le contenu de mon fichier sample.pl.

#!usr/bin/Perl
print "content-type:text/html\n";
print(header());
use CGI qw(:standard);
print(start_html());
print "Hello. I am ram";
print(end_html());

Après avoir copié mon fichier Perl de /home/vicky/desktop à /opt/lampp/cgi-bin.

J'ai commencé mon xampp avec la commande suivante.

/opt/lampp/lampp start

Ensuite, j'ai exécuté mon sample.pl dans l'hôte local à l'aide du http://localhost/cgi-bin/sample.pl de mon navigateur mozilla. Je viens de recevoir la fenêtre suivante. Error 403 window

J'ai trouvé uniquement des réponses relatives à la "nouvelle erreur de concept de sécurité" et à "l'accès au problème de l'hôte virtuel".

Je suis tombé sur un requête askubunt , une offre similaire à la mienne. Il n'y avait pas de réponses mais quelques commentaires. Un commentaire a suggéré de changer les permissions du fichier. Il a ordonné d'obtenir de l'aide de ici .

Il a dit de changer les permissions du répertoire en tant que 755 et les permissions du fichier en tant que 644 pour résoudre ce genre de problème. Lorsque j'ai essayé de le faire, j'ai appris que mon répertoire cgi-bin avait déjà une autorisation 755 et que mon sample.pl en avait une de 644. Je n'ai aucune solution maintenant.


PostScript: J'ai joint le contenu de mon fichier /opt/lampp/Apache2/conf/httpd.conf . J'espère que cela aidera les répondeurs à comprendre mon problème complètement.

Alias /bitnami/ "/opt/lampp/Apache2/htdocs/"
Alias /bitnami "/opt/lampp/Apache2/htdocs"

<Directory "/opt/lampp/Apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory> 
2
Ramvignesh

Comme je peux le voir dans votre question, vous utilisez Apache 2.4.7 , mais votre httpd.conf utilise Apache 2.2 directive.

Selon Apache 2.4 manuel:

Contrôle d'accès

En 2.2, le contrôle d'accès basé sur le nom d'hôte du client, l'adresse IP et d'autres caractéristiques des demandes du client a été effectué à l'aide des directives Order, Allow, Deny et Satisfy.

En 2.4, ce contrôle d'accès est effectué de la même manière que les autres contrôles d'autorisation, à l'aide du nouveau module mod_authz_Host. Les anciens idiomes de contrôle d'accès doivent être remplacés par les nouveaux mécanismes d'authentification, bien que le nouveau module mod_access_compat soit fourni pour la compatibilité avec les anciennes configurations.

Essayez ces changements:

<Directory "/opt/lampp/Apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory> 

Permettre et refuser la directive contrôle les hôtes qui peuvent ou non accéder à une Require vérifie si un utilisateur authentifié est autorisé en fonction d'un fournisseur d'autorisation donné et des restrictions spécifiées. Exiger que tous les droits soient accordés signifie que l'accès est autorisé sans condition, laissez voir Au-delà de l'autorisation juste

Mise à jour après lecture du fichier de configuration:

Votre fichier de configuration par défaut est correct. Le problème est faux Shebang dans le script Perl.

Essaye ça:

  #!/usr/bin/Perl

Aussi:

  chmod +x /opt/lampp/cgi-bin/yourScript.pl

Here est un lien utile concernant le problème d’autorisation de fichier

Deuxième mise à jour

Changer l'en-tête du contenu http:

  print "Content-type:text/html\n";

Cet en-tête est lu par Apache.

Si vous utilisez Apache en tant qu'utilisateur daemon, vérifiez si chaque répertoire du chemin du script est lisible.

2
Lety

Essayez de changer le propriétaire et le groupe des fichiers en Apache,

Dans Ubuntu, l'utilisateur Apache est www-data, dans terminal:

$ Sudo chown -R www-data:www-data PUBLICFOLDER

Et actualisez le navigateur.

0
elgastelum