it-swarm.com.de

Xampp-Zugriff verboten PHP

Ich bin ein Windows-Benutzer. Ich verwende xampp schon eine ganze Weile, aber plötzlich funktioniert keine meiner .php-Dateien!!. Ich bekomme die folgende Fehlermeldung:


Zugang verboten!

Sie haben keine Berechtigung, auf das angeforderte Objekt zuzugreifen. Es ist entweder schreibgeschützt oder vom Server nicht lesbar.

Wenn Sie der Meinung sind, dass dies ein Serverfehler ist, wenden Sie sich bitte an den Webmaster.

Fehler 403

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


Ich kann die Liste meiner .php-Dateien in localhost/practice sehen (Übung ist der Ordner, in dem ich meine Dateien gespeichert habe) Die Datei wird auch dann geöffnet, wenn ich darauf klicke . Submit-Button in einer meiner Dateien, es gibt diesen Fehler. Bitte helfen! Ich habe xampp von 1.8.1 auf 1.8.2 aktualisiert, aber das gleiche Problem bleibt bestehen!

37
NirAv JaIn

Versuchen Sie es mit diesem Code, fügen Sie ihn in Ihre virtuelle Host-Konfiguration ein. Fügen Sie diese Zeilen zur httpd-vhosts.conf-Datei hinzu:

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

Ich habe das gleiche Problem auf diese Weise behoben. Ich hoffe es hilft.

96
Tho Vo

wenn das Ubuntu-Betriebssystem verwendet wird, überprüfen Sie die Option chmod im Ordner/Practice .__ 

Terminal öffnen Kurztaste drücken Ctrl+Alt+T Springen 

$ cd/opt/lampp/htdocs/

und ändern Sie die Lese-, Schreib- und Ausführungsberechtigung des Ordners mit dem Befehl chmod 

der Ordnername ist beispielsweise Übung und Pfad des Ordners /opt/lampp/htdocs/üben

Geben Sie den Befehl ein 

$ Sudo chmod 777 -R Practice

was ist chmod und 777? Besuchen Sie diesen Link http://linuxcommand.org/lts0070.php

11
rahuldm

Die Art und Weise, wie ich dieses Problem gelöst habe, war, dass Setup-Fehlerprotokolle zuerst korrekt protokolliert wurden

<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>

Nachdem dieser Fehler in "D:/websites/test/logs /" angemeldet ist, stellen Sie sicher, dass Sie den Protokollordner selbst erstellen. Der genaue Fehler, der im Fehlerprotokoll aufgezeichnet wurde, war

AH01630: Client von der Serverkonfiguration abgelehnt:

Was mich auf die richtige Lösung mit diesem Link verwies, der für den obigen Fehler aussagte 

Require all granted 

wird benötigt. Mein Beispielcode oben behebt das Problem übrigens.

4
Hammad Khan

Ich verwende xampp mit Ubuntu 16.04 - und es funktioniert gut für mich

<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

Gehen Sie in Ihren Xampp-Ordner xampp/Apache/conf/extra/httpd-xampp.c­onf

Bearbeiten Sie den letzten Absatz:

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

zu

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

oder schau dir einfach dieses Video an: http://www.youtube.com/watch?v=ZUAKLUZa-AU .

2
Florian Braun

Ich hatte dieses Problem, nachdem ich den Ordner htdocs außerhalb des Ordners xampp verschoben hatte. Wenn Sie dies tun, müssen Sie den Dokumentstamm in httpd.conf ändern. Siehe https://stackoverflow.com/a/1414/3543329 .

1
MrMadsen

Für mich wurde es sofort durch Folgendes gelöst

  1. Gehen Sie zu C:\xampp\Apache\conf\extra
  2. Bearbeitung in der Datei httpd-xampp.conf
  3. Bearbeiten Sie die Datei wie folgt:

finde die folgenden Zeilen mit cont + f:

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

ändere nur local ----> alle gewährt, also wird es so

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

Danach hört der localhost auf, den Fehler anzuzeigen und zeigt das Admin-Panel an. Ich habe diese Lösung in einem Video hier gefunden: https://www.youtube.com/watch?v=MvYyEPaNNhE

1
miberg81

Ich hatte das gleiche Problem. Also habe ich mich erinnern lassen. Gestern hatte ich diesen Code in htttp-xampp.conf kommentiert

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

Ich kann auf meinen localhost über ein anderes System in demselben Netzwerk (LAN/WIFI) zugreifen, da localhost local erfordert.

Also mache ich es einfach so 

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

und jetzt funktioniert es auf meinem lokalen Rechner und auch mit localhost ist über andere Systeme auf demselben LAN/WIFI erreichbar.

0
Seetpal singh

In meinem Fall habe ich die Drupal-Instanz auf XAMPP vom Server nach localhost exportiert. Offensichtlich wurde der Besitz der Datei und des Verzeichnisses nicht gerecht, und Apache warf den obigen Fehler.

Dies ist der Besitz von Dateien und Verzeichnissen anfangs:

 enter image description here

Um meinen Dateien Leseberechtigungen zu erteilen und meine Verzeichnisse auszuführen, kann ich alle Benutzer lesen, schreiben und ausführen:

Sudo chmod 777 -R

dies wäre jedoch nicht die ideale Lösung, da dies zum Server zurück migriert würde und zu einer Sicherheitslücke führen könnte.

In diesem Blog finden Sie ein Skript: 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"

Und müssen den Befehl aufrufen:

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

In meinem Fall ist der Benutzer, auf dem Apache ausgeführt wird, 'Daemon'. Sie können den Benutzer identifizieren, indem Sie einfach dieses PHP-Skript in einer PHP-Datei über localhost ausführen:

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

Unten ist der richtige Benutzer mit den richtigen Dateiberechtigungen für Drupal:

 enter image description here

Möglicherweise müssen Sie es nach dem Transport zurück zum Server ändern.

0

Haben Sie am virtuellen Host etwas geändert, bevor es nicht mehr funktioniert?

Fügen Sie diese Zeile zu xampp/Apache/conf/extra/httpd-vhosts.conf hinzu

<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>

Ersetzen mit:

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

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

0
user1476842