گزارش ها را بررسی کنید تا متوجه شوید که چرا خطای 500 رخ می دهد. ممکن است یک ورودی در فایل error.log وجود داشته باشد که دلیل مشکل را نشان می دهد. رایج ترین گزینه ها را در نظر بگیرید.
کمبود منابع
اگر دلیل این است، مشکل خیلی ساده حل می شود - با درخواست افزایش منابع با ارائه دهنده میزبانیتماس بگیرید.
وجود اسکریپت های غیرقابل اجرا یا زمان محدود برای اجرای آنها
اگر سرور برای مدت معینی، اغلب یک دقیقه، اسکریپت ها را پردازش نکند، یک خطای سرور داخلی 500 رخ می دهد.
همچنین، مدیران وبسایتها اگر یک اسکریپت CGI را از زیر آپاچی اجرا کنند، ممکن است با خطای مشابهی مواجه شوند، اگر زمان مشخصشده در تنظیمات سرور برای اجرای اسکریپت کافی نباشد.
اگر اسکریپتها قبلاً کار میکردند، و برای مثال، هنگام انتقال به میزبانی دیگر، مشکلاتی ظاهر میشدند، ممکن است دلایل دیگری به وجود آمده باشد. به عنوان مثال، این واقعیت که سرور درخواست ها را مسدود می کند.
خطا در تنظیم حقوق دسترسی
مجوزهای فایل باید 444 یا 644 باشد. CHMOD برای پوشه ها نبایدمتفاوت از 755، یعنی فقط صاحب منبع می تواند آنها را مشاهده کند. مجوزهای اسکریپت باید روی 600 تنظیم شود. در غیر این صورت، به دلایل امنیتی، سرور دسترسی به اسکریپت را مسدود میکند، حتی اگر این اسکریپت کاربردی باشد.
اگر این دلیل خطای 500 است، از مدیر FTP برای تغییر مجوزها استفاده کنید. Filezilla با این توابع کار بسیار خوبی انجام می دهد.
فایل.htaccess حاوی دستورالعمل های پشتیبانی نشده است
بررسی کنید که آیا فایل.htaccess در ریشه سایت یا جای دیگری وجود دارد. اگر یکی وجود دارد، آن را با هر ویرایشگر متنی باز کنید. می توانید از Notepad استفاده کنید.
اگر از سروری استفاده می کنید که روی suPHP کار می کند، ممکن استخطای 500 ظاهر شود. پشتیبانی از php.ini اگر دستوراتی در فایل htaccess وجود داشته باشد که تنظیمات محیط PHP را تغییر دهد، ممکن است مشکلاتی ایجاد شود. رایج ترین دستورات عبارتند از php_admin_flag، php_flag و php_value.
متغیرهای جهانی اغلب به عنوان دستورالعمل گنجانده می شوند - ثبت جهانی ها.
این مشکل بسیار ساده حل می شود - پارامترهای ناخواسته را می توان به سادگی حذف کرد. گزینه دیگر این است که با اضافه کردن علامتبه ابتدای خط، آنها را نظر دهید. باید بین علامت پوند و نام دستورالعمل فاصله وجود داشته باشد.
اگر کاملاً نیاز به اجرای پارامترهای نظر داده شده دارید، می توان آنها را در فایل php.ini مشخص کرد. در این مورد، شما نیازی به استفاده از php_admin_flag، php_flag و php_value ندارید - فقط آنها را مطابق این اصل تعیین کنید: "Required Parameter name=On".
خطای مرگبار PHP
اگر PHP مانند CGI کار کند این مشکل ممکن است رخ دهد. در این مورد، باید کد برنامه را به دقت بررسی کنید، خطاها را تشخیص داده و رفع کنید. توجه داشته باشید که انتهای خطوط اسکریپت CGI نباید با فرمت ویندوز (r\n) باشد، بلکه باید در قالب یونیکس (n) باشد.
اگر هیچ یک از راه حل های پیشنهادی خطا را برطرف نکرد، با میزبان خود تماس بگیرید. با جزئیات برای او توضیح دهید که چه زمانی و پس از چه اقداماتی خطای 500 ظاهر شد. از او بخواهید دلایل مشکل را مشخص کند و در رفع آن کمک کند. در صورتی که میزبان قادر به تشخیص علت بروز خطای سرور داخلی http 500 نباشد، لطفاً با پشتیبانی CMS مورد استفاده خود تماس بگیرید. حتماً تمام جزئیات را در نامه ذکر کنید. - نظرات ارائه دهنده میزبانی در مورد وضعیت شما.