خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

حل شد: 403 ممنوع “شما اجازه دسترسی به این سرور را ندارید”

آیا در آپاچی یا NGINX با خطای «شما اجازه دسترسی به این سرور را ندارید» مواجه هستید؟ در اینجا سه ​​راه برای حل آن در یک لحظه وجود دارد.

بسیاری از تنظیمات وب سرور با مشکلات مربوط به مجوزهای فایل مواجه هستند. اغلب سرور را برای بازدیدکنندگان غیر قابل دسترس می کند و به شکل خطای “403 Forbidden” ظاهر می شود. معمولاً پیام خطا چیزی شبیه به “403 Forbidden: you don’t have don’t have permission to access / on this server” است. این می تواند هر چیزی به شکل “ممنوع است: شما اجازه دسترسی به این منبع را ندارید.”

مشکلات مشابه نیز می تواند به دلیل مشکلات موجود در فایل های پیکربندی Apache و NGINX یا حتی به دلیل یک فایل htaccess. خراب رخ دهد. در اینجا سه ​​راه حل گام به گام برای همه این مشکلات وجود دارد.

چه چیزی باعث خطای ممنوعه Apache و NGINX 403 می شود؟

این یک خطای نسبتاً رایج 403 در انتهای Apache و NGINX است که به دلیل مشکلات بی‌شماری ایجاد می‌شود. با این حال، در بیشتر موارد، خطا به دلیل عدم وجود مجوزهای مناسب مورد نیاز برای دسترسی عمومی به یک سایت رخ می دهد. جدای از این، سایت های وردپرسی اغلب به دلیل فایل htaccess بد با این مشکل مواجه می شوند.

علاوه بر این، از نسخه 2.4 آپاچی، تغییراتی در نحوه عملکرد دستورالعمل ها ایجاد شده است. این همچنین می تواند دسترسی عمومی به وب سایت شما را محدود کند و منجر به خطای “403 Forbidden” شود.

نحوه رفع خطای «403 ممنوعه» به عنوان کاربر

اگر از وب‌سایتی استفاده می‌کنید و با خطای NGINX یا Apache «403 Forbidden» مواجه شدید، ابتدا سعی کنید داده‌های کش مرورگر و کوکی‌های خود را پاک کنید. اگر از VPN استفاده می کنید، مطمئن شوید که آن را غیرفعال کنید فقط در صورتی که پیکربندی نادرست VPN باعث خطای 403 شود.

از طرف دیگر، اگر شما مدیر وب سایت هستید، بهتر است بدانید که بیشتر خطاهای Apache و NGINX 403 Forbidden به دلیل تنظیم نامناسب مجوزهای فایل و فایل های پیکربندی بد ایجاد می شوند.

راه حل های ارائه شده در زیر را یکی یکی دنبال کنید تا وب سایت خود دوباره کار کند:

1. برای جلوگیری از خطای 403، مجوزهای فایل را رفع کنید

اکثر مردم به دلیل نداشتن مجوزهای مناسب با این خطای رایج 403 مواجه می شوند. اگر مدیر سایت فراموش کند که دسترسی خواندن به دنیای خارج را فعال کند، کاربران نهایی نمی توانند به منبع درخواستی دسترسی پیدا کنند. این اغلب علت اصلی این خطا است.

مطلب مرتبط:   چگونه خطای «Word Found Unreadable Content» را برطرف کنیم

به عنوان مثال، فرض کنید که در حال تلاش برای دسترسی به فایلی به نام textbook.php در یک سایت وردپرس هستید و با خطایی مواجه می شوید که می گوید اجازه دسترسی به /textbook.php را در این سرور ندارید. به این معنی است که فایل وجود دارد، اما مالک سایت دسترسی به کاربران عمومی را غیرفعال کرده است.

ممنوع است شما نمی توانید به php کتاب درسی در این سرور دسترسی پیدا کنید

اگر در عوض مدیر سایت هستید، باید مطمئن شوید که فایل‌هایی که برای دسترسی عمومی در نظر گرفته شده‌اند، مجوز خواندن مناسب دارند. در غیر این صورت، اگر در یک سایت عمومی با این خطا مواجه شدید، برای حل این مشکل به مدیر سایت اطلاع دهید.

تنظیم مجوزهای صحیح برای فایل های در دسترس عموم می تواند کمی مشکل باشد. به همین دلیل است که ادمین ها باید با مجوزهای کاملاً صفر شروع کنند و در صورت نیاز آنها را اضافه کنند. ایده خوبی است که پوشه هایی با حالت مجوز 755 و فایل هایی با 644 داشته باشید.

برای یک وب سایت ساده، دایرکتوری ها باید مجوز اجرا داشته باشند و فایل ها باید مجوز خواندن داشته باشند. مطمئن شوید که به فایل‌ها اجازه اجرا نمی‌دهید. کاربران مخرب می توانند از طریق چنین فایل هایی به سرورهای عمومی دسترسی ناخواسته داشته باشند.

مجوزهای فایل برای حل شما خطای دسترسی ندارید

حالت مجوز برای دسترسی Read، Write و Execute به ترتیب 4، 2 و 1 است. بنابراین یک حالت مجوز 755 در دایرکتوری ها به این معنی است که فقط مالک به محتویات دایرکتوری دسترسی کامل دارد. کاربران گروه و دیگران فقط می توانند بخوانند و اجرا کنند. به طور مشابه، حالت مجوز 644 برای فایل‌ها، دسترسی خواندن و نوشتن را برای مالک و فقط دسترسی خواندن را برای بقیه فراهم می‌کند.

برای حل خطاهایی مانند “ممنوع: شما اجازه دسترسی به این منبع را در هیچ سروری ندارید”، مجوزهای دایرکتوری webroot خود را اصلاح کنید. دستور زیر از ابزار chmod برای تنظیم مجوزهای دایرکتوری روی 755 استفاده می کند:

sudo find /var/www/html -type d -exec chmod 755 {} \;

این دستور فرض می کند که از ریشه سند پیش فرض آپاچی برای نگهداری وب سایت خود استفاده می کنید. اگر از دایرکتوری دیگری استفاده می کنید، نام دایرکتوری را متناسب با آن جایگزین کنید. از دستور زیر برای تغییر تمام مجوزهای فایل به 644 استفاده کنید:

sudo find /var/www/html -type f -exec chmod 644 {} \;

دستور بالا از ابزار find برای مکان یابی فایل های جداگانه استفاده می کند و مجوز صحیح را از طریق chmod تنظیم می کند. انتهای {} \ مسیرهای فایلی را که با دستور find برگردانده شده اند نگه می دارد و نقطه ویرگول (;) پایان تکرار را نشان می دهد.

مطلب مرتبط:   چگونه خطای "RPC Server is Unavailable" را در ویندوز 10 حل کنیم

به علاوه، شما همچنین می توانید مجوزهای فایل را به صورت جداگانه تغییر دهید. به عنوان مثال، دستور زیر مجوز textbook.php را در ریشه وب تغییر می دهد و آن را برای عموم در دسترس قرار می دهد. بنابراین دفعه بعد که شخصی سعی می کند به این فایل دسترسی پیدا کند، خطای ترسناک “شما مجوز دسترسی به این منبع را ندارید” را نمی بیند.

sudo chmod 644 /var/www/html/textbook.php

هنگامی که تمام مجوزهای فایل را در صورت نیاز تغییر دادید، سرور Apache یا NGINX را مجددا راه اندازی کنید تا تغییرات شما اعمال شود.

sudo systemctl restart apache2.service
sudo systemctl restart nginx

این دستورات به ترتیب سرور آپاچی و NGINX را در اوبونتو راه اندازی مجدد می کنند. با این حال، بسیاری از توزیع‌های مبتنی بر RPM مانند RHEL یا CentOS Apache را به‌عنوان httpd نصب می‌کنند. برای چنین سیستم هایی به جای آن از دستور زیر استفاده کنید:

sudo systemctl restart httpd

2. فایل htaccess. را برای وب سایت وردپرس خود رفع کنید

فایل htaccess. به عنوان یک فایل پیکربندی توزیع شده عمل می کند و به سرور وب می گوید که چگونه مواردی مانند تغییرات پیکربندی در هر دایرکتوری را مدیریت کند. گاهی اوقات این فایل ممکن است خراب شود و ممکن است منجر به خطای “شما مجوز دسترسی به / در این سرور را ندارید” شود.

خوشبختانه، اگر این همان چیزی است که باعث خطای 403 در سرور شما می شود، می توانید به راحتی با ایجاد یک فایل htaccess. برای ایجاد یک فایل htaccess جدید برای وب سایت خود، ابتدا وارد داشبورد وردپرس خود شوید. سپس روی Settings > Permalinks کلیک کنید.

آپدیت لینک ثابت در سایت وردپرس

در اینجا نیازی به ایجاد تغییرات اضافی ندارید. فقط روی دکمه ذخیره تغییرات کلیک کنید و وردپرس یک فایل htaccess جدید برای شما ایجاد می کند.

تغییر pemalink در سایت وردپرس

بنابراین هر زمان که در سرورهای Apache مشاهده کردید “شما مجوز دسترسی به این منبع را ندارید” یا “نمی‌توانید فایل htaccess را بخوانید، دسترسی امن را رد می‌کنید”، سعی کنید یک فایل .htaccess جدید ایجاد کنید. این روش معمولا برای وب سایت های وردپرسی خوب جواب می دهد.

مطلب مرتبط:   10 کاری که می توانید در لینوکس انجام دهید اما در ویندوز نه

3. دستورات را در فایل پیکربندی آپاچی پیکربندی کنید

آپاچی 2.4 از یک ماژول پیکربندی جدید به نام mod_authz_host استفاده می کند. این ماژول چندین دستورالعمل جدید را نشان می دهد. به طور خلاصه، این قوانین زیر را اجرا می کند:

  • Require all granted: همه درخواست‌ها را مجاز کنید
  • Require all denied: رد همه درخواست ها
  • نیاز به میزبان safe.com: فقط به درخواست های safe.com اجازه دهید

اگر از Apache 2.4 استفاده می کنید، مطمئن شوید که فایل پیکربندی اصلی شما حاوی بلوک کد زیر است. می توانید با استفاده از یک ویرایشگر متن ساده مانند Vim محتویات این فایل را بررسی کنید. اگر این بلوک وجود ندارد، آن را به فایل پیکربندی اضافه کنید. سپس، می توانید Vim را ذخیره کرده و از آن خارج شوید.

vim /etc/apache2/apache2.conf

کد:

<Directory />
   Options FollowSymLinks
   AllowOverride None
   Require all denied
</Directory>
<Directory /usr/share>
   AllowOverride None
   Require all granted
</Directory>
<Directory /var/www/>
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
</Directory>

علاوه بر این، اگر از یک وب سرور مبتنی بر RHEL استفاده می کنید، باید دسترسی به بخش /var/www را در فایل پیکربندی آپاچی خود آسان کنید. بنابراین مطمئن شوید که فایل /etc/httpd/conf/httpd.conf حاوی بلوک کد زیر است:

vim /etc/httpd/conf/httpd.conf

کد:

<Directory "/var/www">
         AllowOverride None
         Require all granted
</Directory>

در نهایت سرور آپاچی را با استفاده از یکی از دستورات زیر راه اندازی مجدد کنید:

# for Ubuntu and Debian

sudo systemctl restart apache2.service

# for RHEL and CentOS

sudo systemctl restart httpd

خطای 403 Forbidden Server Permission در لینوکس را برطرف کنید

بسیاری از مردم هنگام دسترسی به وب سایت های عمومی یا پیکربندی سایت های خود با مشکل فوق روبرو می شوند. بازنشانی مجوز سیستم فایل برای سرورهای Apache یا NGINX باید اولین راه حل باشد. اگر حتی پس از تغییر مجوزها، خطا همچنان ادامه داشت، سعی کنید یک فایل .htaccess جدید ایجاد کنید و مطمئن شوید که دستورالعمل ها به درستی در فایل پیکربندی سرور شما تنظیم شده اند.

مشکلات زیادی وجود دارد که می تواند منجر به خطای سمت سرور مشابه این خطا شود. برای راه اندازی و راه اندازی سرور در چنین شرایطی باید در عیب یابی مشکلات سرور لینوکس مهارت داشته باشید.