پیام Internal Server Error فایل CGI

اگر خطای Internal Server Error را زمان اجرا شدن اسکریپت های CGI بوسیله آپاچی و در کنترل پنل هاست دایرکت ادمین مشاهده کردید میبایست برای پیام Internal Server Error فایل CGI در هاست دایرکت ادمین موارد زیر را چک کنید. پیش از انجام هر چیزی میبایست لاگین suexec را در مسیر زیر بررسی کنید :

vi  /var/log/httpd/suexec_log

تمامی خطاهای مرتبط به مجوزها و یا همان سطوح دسترسی در این فایل ذخیره و Log میشوند. فایل میبایست در پوشه cgi-bin و تحت مالکیت همان User و Group یعنی owner/group مادر باشد و در صورتی که به این شکل نبود به طور صحیح اجرا نمیشود. سطح دسترسی و CHMOD مرتبط به پوشه ها باید روی 755 باشد و اگر به این صورت نیود اسکریپت CGI برای اجرا شدن به مشکل برخورد میکند. تنها پوشه public_html میباشد که قادر است با سطح دسترسی 750 هم بدون برخورد با مشکلی کار را انجام دهد. البته اگر که زیر مجموعه group یوزر apache باشد. راحت ترین روش برای دیدن خطاهای اسکریپت CGI اجرا شدن آن با استفاده از محیط SSH سرور مجازی به صورت زیر میباشد :

cd /home/username/domains/domain.com/public_html/cgi-bin

./script.cgi

برای برطرف کردن مشکل دسترسی ها و مجوزها در هاست دایرکت ادمین احتیاجی نیست کار سختی انجام دهید. تنها میبایست از اسکریپت تنظیم دوباره مالکیت ها و سطح دسترسی ها استفاده کنید. برای Set کردن دوباره سطح دسترسی ها هم به صورت زیر عمل کنید :

cd /usr/local/directadmin/scripts

./set_permissions.sh all

برای Set کردن دوباره مالکیت ها و ownership ها در هاست لینوکس های دایرکت ادمین نیز به صورت زیر عمل کنید :

 cd /home

for i in ls; do { chown -R $i:$i $i; }; done;

کم پیش میاید مالکیت ها در لینوکس دایرکت ادمین بهم ریخته شود. پس در مرحله اول سطوح دسترسی ها را دوباره مقداردهی کرده و تنها اگر احتیاج به مالکیت ها داشته آن را از اول مشخص کنید.