it-swarm.dev

Xampp وصول ممنوع فب

أنا مستخدم ويندوز. لقد تم استخدام xampp لفترة طويلة ولكن فجأة لا يعمل أي من ملفاتي .php الآن! أحصل على رسالة الخطأ هذه:


الوصول ممنوع!

ليس لديك إذن بالوصول إلى الكائن المطلوب. إنه إما محمي للقراءة أو غير قابل للقراءة من قبل الخادم.

إذا كنت تعتقد أن هذا خطأ في الخادم ، فيرجى الاتصال بمشرف الموقع.

خطأ 403

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


أستطيع أن أرى قائمة ملفاتي. ولكن عندما أقوم بالنقر فوق أي زر "إرسال" داخل أي من ملفاتي ، فإنه يعطي هذا الخطأ. الرجاء المساعدة! لقد قمت بتحديث xampp من 1.8.1 إلى 1.8.2 ولكن لا تزال نفس المشكلة قائمة!

47
NirAv JaIn

جرب باستخدام هذا الكود أدناه ، أضفه في تهيئة المضيف الافتراضية. أضف هذه السطور إلى httpd-vhosts.conf الملف:

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

لقد أصلحت نفس المشكلة بهذه الطريقة. آمل أن يساعد.

104
Tho Vo

إذا تم استخدام نظام التشغيل ubuntu ، فتحقق من تغيير مجلد chmod of/Practice

فتح مفتاح اختصار الصحافة الطرفية Ctrl+Alt+T اذهب إلى

$ cd/opt/lampp/htdocs/

وتغيير مجلد قراءة الكتابة وتنفيذ إذن باستخدام chmod الأمر

على سبيل المثال ، اسم المجلد هو التدريب ومسار المجلد/opt/lampp/htdocs/practice

اكتب الأمر

$ Sudo chmod 777 -R Practice

ما هو chmod و 777؟ تفضل بزيارة هذا الرابط http://linuxcommand.org/lts0070.php

11
rahuldm

الطريقة التي حللت بها كانت سجلات خطأ الإعداد بشكل صحيح ، أولاً

<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:/sites/test/logs /" تأكد من إنشاء مجلد سجلات بنفسك . الخطأ الدقيق الذي تم تسجيله في سجل الأخطاء كان

AH01630: تم رفض العميل من خلال تكوين الخادم:

الذي أشار لي لتصحيح الحل باستخدام هذا الرابط الذي قال عن الخطأ أعلاه

Require all granted 

مطلوب. نموذج التعليمات البرمجية عينة أعلاه بإصلاح المشكلة بالمناسبة.

5
Hammad Khan

أنا أستخدم xampp باستخدام أوبونتو 16.04 - ويعمل بشكل جيد بالنسبة لي

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

انتقل إلى مجلد Xampp xampp/Apache/conf/extra/httpd-xampp.c­onf

تحرير الفقرة الأخيرة:

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

إلى

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

أو مجرد مشاهدة هذا الفيديو: http://www.youtube.com/watch؟v=ZUAKLUZa-A .

3
Florian Braun

واجهت هذه المشكلة بعد نقل مجلد htdocs إلى خارج مجلد xampp. إذا قمت بذلك ، فأنت بحاجة إلى تغيير جذر المستند في httpd.conf. راجع https://stackoverflow.com/a/1414/3543329 .

1
MrMadsen

بالنسبة لي تم حلها على الفور من خلال ما يلي

  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>

بعد هذا ، سيتوقف المضيف المحلي عن إظهار الخطأ وسيظهر لوحة الإدارة. لقد وجدت هذا الحل في مقطع فيديو هنا: https://www.youtube.com/watch؟v=MvYyEPaNNhE

1
miberg81

كان لي نفس المشكلة. لذلك حصلت على تذكر. بالأمس كنت قد علقت هذا الرمز في htttp-xampp.conf

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

لذلك يمكنني الوصول إلى مضيف محلي باستخدام نظام آخر على نفس الشبكة (LAN/WIFI) لأنه يجعل مضيف محلي يتطلب محليًا.

لذلك أنا فقط جعله مثل

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

والآن تعمل على الجهاز المحلي الخاص بي وكذلك المضيف المحلي يمكن الوصول إليها باستخدام أنظمة أخرى على نفس LAN/WIFI.

0
Seetpal singh

في حالتي ، قمت بتصدير Drupal مثيل من الخادم إلى مضيف محلي على XAMPP. من الواضح أنه لم ينصف ملكية الملف والدليل وكان أباتشي يرمي الخطأ أعلاه.

هذه هي ملكية الملفات والدلائل في البداية:

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 هو "daemon". يمكنك تحديد المستخدم من خلال تشغيل برنامج php النصي هذا فقط في ملف php من خلال المضيف المحلي:

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

أدناه هو المستخدم المناسب مع أذونات الملف الصحيح لدروبال:

enter image description here

قد تضطر إلى تغييره مرة أخرى بمجرد نقله مرة أخرى إلى الخادم!

0
Raj Pawan Gumdal

هل قمت بتغيير أي شيء على المضيف الظاهري قبل أن يتوقف عن العمل؟

أضف هذا السطر إلى 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>
0
Chinedu
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 **

0
user1476842