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!
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.
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
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.
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>
Gehen Sie in Ihren Xampp-Ordner xampp/Apache/conf/extra/httpd-xampp.conf
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 .
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 .
Für mich wurde es sofort durch Folgendes gelöst
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
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.
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:
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:
Möglicherweise müssen Sie es nach dem Transport zurück zum Server ändern.
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>
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 **