Доступ Xampp Запрещенный php

Я пользователь Windows. Я довольно давно использую xampp, но ни один из моих.php файлов не работает сейчас! Я получаю это сообщение об ошибке:


Доступ запрещен!

У вас нет разрешения на доступ к запрашиваемому объекту. Он либо защищен от чтения, либо не читается сервером.

Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.

Ошибка 403

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


Я могу увидеть список моих.php файлов в localhost/Practice (Практика - это папка, в которой я сохранил мои файлы). Файл даже открывается, когда я нажимаю на него. Но когда я нажимаю любую кнопку "отправить" внутри любого из моих файлов, она дает эту ошибку. Пожалуйста помоги! Я обновил xampp с 1.8.1 до 1.8.2, но по-прежнему сохраняется та же проблема!

Ответ 1

Попробуйте этот код ниже, добавьте его в конфигурацию вашего виртуального хоста. Добавьте эти строки в файл httpd-vhosts.conf:

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

Я исправил эту проблему таким образом. Надеюсь, поможет.

Ответ 2

если используется операционная система ubuntu, тогда проверьте chmod of/Practice folder change read write permission

Открытая клавиша быстрого доступа к нажатию клавиши Ctrl+Alt+T Goto

$ cd/opt/lampp/htdocs/

и изменить права на запись и запись в папку с помощью команды chmod

например, имя папки - практика и путь к папке /opt/lampp/htdocs/practice

Команда типа

$ sudo chmod 777 -R Practice

что такое chmod и 777? перейдите по этой ссылке http://linuxcommand.org/lts0070.php

Ответ 3

Я решил, что это правильно настроить журналы ошибок, сначала

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

После того, как эта ошибка записывается в "D: /websites/test/logs/", обязательно создайте папку журналов. Точная ошибка, которая была записана в журнале ошибок, была

AH01630: клиент отказался от конфигурации сервера:

Который указал мне на правильное решение, используя эту ссылку, которая указала на приведенную выше ошибку

Require all granted 

необходимо. Например, мой примерный пример кода исправляет проблему.

Ответ 4

Войдите в свою папку xampp/apache/conf/extra/httpd-xampp.conf

Отредактируйте последний абзац:

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

в

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

или просто посмотреть это видео: http://www.youtube.com/watch?v=ZUAKLUZAA.

Ответ 5

Я использую xxamp с помощью ubuntu 16.04 - и он отлично работает для меня

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

Ответ 6

У меня возникла эта проблема после перемещения папки htdocs вне папки xampp. Если вы это сделаете, вам нужно изменить корень документа в httpd.conf. См. fooobar.com/questions/27011/....

Ответ 7

У меня такая же проблема. Поэтому я вспомнил. Вчера я прокомментировал этот код в htttp-xampp.conf

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

SO Я могу получить доступ к моему локальному хосту, используя другую систему в той же сети (LAN/WIFI), поскольку локальный хост требует локального использования.

Поэтому я просто делаю это как

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

и теперь его работа на моем локальном компьютере, а также localhost доступна с использованием других систем в одном и том же LAN/WIFI.

Ответ 8

Вы что-то изменили на виртуальном хосте до того, как перестали работать?

Добавьте эту строку в 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>

Ответ 9

В моем случае я экспортировал экземпляр Drupal с сервера на localhost на XAMPP. Очевидно, он не отдавал должное владению файлами и каталогами, и Apache выбрасывал вышеуказанную ошибку.

Это собственность файлов и каталогов изначально:

enter image description here

Чтобы предоставить разрешения на чтение для моих файлов и выполнить разрешение на мои каталоги, я могу сделать так, чтобы все пользователи могли читать, писать и выполнять:

sudo chmod 777 -R

но это не было бы идеальным решением, потому что это было бы перенесено обратно на сервер и может закончиться защитой лазейки.

Сценарий приведен в этом блоге: 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"

И нужно вызвать команду:

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

В моем случае пользователь, на котором работает Apache, является "демоном". Вы можете идентифицировать пользователя, просто запустив этот php-скрипт в php файле через localhost:

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

Ниже приведен правильный пользователь с правом доступа к файлам для Drupal:

enter image description here

Возможно, вам придется изменить его, как только он будет отправлен обратно на сервер!

Ответ 10

A. #LoadModule vhost_alias_module modules/mod_vhost_alias.so
B. <Directory />
    AllowOverride none
    Require all denied
</Directory>

Заменить:

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

От E:\xamp ** apache\conf/httpd.conf **

Ответ 11

Для меня это было решено мгновенно следующим

  1. Переход к C:\xampp\apache\conf\extra
  2. Редактирование внутри файла httpd-xampp.conf
  3. Отредактируйте файл следующим образом:

найдите следующие строки по cont + f:

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

только поменять местное → все предоставлено, поэтому становится так

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

После этого localhost перестанет показывать ошибку и покажет админ-панель. Я нашел это решение здесь https://www.youtube.com/watch?v=MvYyEPaNNhE