Доступ 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
Для меня это было решено мгновенно следующим
- Переход к C:\xampp\apache\conf\extra
- Редактирование внутри файла httpd-xampp.conf
- Отредактируйте файл следующим образом:
найдите следующие строки по 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