اگر یک سایت وردپرسی دارید، احتمالاً شما هم عدم نمایش پیوندها با نام نوشته روبرو شده باشید. در این صفحه روش رفع این مشکل در سیستم های وردپرس که با apache2 اجرا می شوند را آموزش می دهیم.
مدت زمان تخمینی مطالعه: 3 دقیقه
فهرست مطالب
دلایل بوجود آمدن مشکل
دو دلیل عمده عدم نمایش پیوندها در وردپرس به شرح
- غیرفعال بودن دستورالعمل AllowOverride در سرور apache2
- عدم دسترسی وردپرس به پرونده ها
در ادامه روش رفع مشکل هر کدام از این دلایل را بررسی می کنیم.
رفع مشکل با فعال کردن دستورالعمل AllowOverride در apache2
وردپرس از دستورالعمل AllowOverride سرور apache2 برای اصلاح پیوندها مطابق با تنظیمات انتخابی ادمین در مسیر تنظیمات => پیوندهای یکتا استفاده می نماید. در صورتی که این دستورالعمل در آپاچی غیرفعال باشد، فایل .htaccess
ایجاد شده توسط وردپرس توسط سرور apache2 خوانده نمی شود و بنابراین خطای 404 پیدا نشد ایجاد خواهد شد.
برای حل این مشکل کافیست که در فایل تنظیمات apache2 با استفاده از دستورالعمل <Directory>، دستورالعمل AllowOverride را برای مسیر نصب وردپرس فعال نمایید.
بعنوان مثال در صورتی که وردپرس را در مسیر /var/www/html/iranvba/
نصب کرده اید با استفاده از کد زیر می توانید دستورالعمل AllowOverride را فعال کنید تا بتوانید مشکل عدم نمایش پیوندها در وردپرس را رفع نمایید.
<Directory /var/www/html/iranvba/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
کد بالا را در فایل تنظیمات apache2 یا در فایل میزبان مجازی vhost سایت خود ذخیره نمایید. مسیر فایل تنظیمات apache2 در سیستم های لینوکسی بر پایه Debian (نظیر Ubuntu) /etc/apache2/apache2.conf
می باشد. پس از ذخیره تنظیمات سرور apache2 را با استفاده از کد زیر راه اندازی مجدد نمایید.
sudo systemctl restart apache2
رفع مشکل با استفاده از حل دسترسی وردپرس به پرونده ها
در صورتی که وردپرس دسترسی لازم برای ایجاد فایل در پوشه اصلی وردپرس را نداشته باشد، قادر به ایجاد فایل .htaccess
نخواهد بود و بنابراین مشکل عدم نمایش پیوندها در وردپرس ایجاد خواهد شد.
اگر در پیشخوان وردپرس به مسیر ابزارها => سلامت سایت => برگه اطلاعات => دسترسیهای پروندههای سیستمی مراجعه کنید می توانید وضعیت دسترسی ها را مشاهده نمایید.
برای حل مشکل دسترسی به پرونده ها در سیستم های لینوکسی بر پایه Debian (نظیر Ubuntu) بایستی دسترسی های PHP به فایل ها و پرونده های در مسیر نصب وردپرس را اصلاح نمایید. برای اینکار ترمینال لینوکس را باز کنید و دستور زیر را اجرا نمایید. فرض بر این است که وردپرس شما در مسیر /var/www/html/iranvba/
نصب شده است.
sudo chown -R www-data:www-data /var/www/html/iranvba
دستور بالا کاربر www-data
که کاربر وب سرور در سیستم های لینوکسی بر پایه Debian می باشد را بعنوان مالک تمام پرونده ها و فایل های زیرمجموعه مسیر /var/www/html/iranvba/
معرفی می نماید. این کد مشکل دسترسی را رفع می نماید، اما دسترسی کاربری خودتان به این مسیر را از بین می برد.
راه حل دقیقتر استفاده از کد زیر می باشد. فرض براین است که نام کاربری شما در لینوکس yourUser می باشد.
sudo chown -R yourUser:www-data /var/www/html/iranvba
sudo chmod g+s /var/www/html/iranvba/
sudo chmod o-rwx /var/www/html/iranvba/
کد بالا ضمن حفظ دسترسی کاربری خودتان، دسترسی های وب سرور را نیز اصلاح می کند.