خطای 500 internal server error چاپ

  • 7


بر روی سرور لینوکس خود جهت امنیت بیشتر ، ماژول PHPSUEXEC نصب شده است . و سوالات و اشکالاتی که اکثرا در مورد این پیکربندی بوجود می آید را برایتان ذکر می کنم :

با نصب این ماژول چه تفاوتی ایجاد شده است ؟

در اکثر سایتها هیچ تفاوتی ایجاد نمی شود . Phpsuecex برای هر CGI ( نظیر اسکریپت های perl ) که همانند سرورهایی که آنرا نصب نکردند کار خواهد کرد و و درواقع هیچ تغییری در کدنویسی برنامه برای شما لازم نیست بوجود بیاد .suEXEC ، امکان اجرای اسکریپت ها تحت آپاچی بهمراه یک User Id در مقابل یک Apache User Id را فراهم می نماید در حقیقت suEXEC این امکان را برای کاربران آپاچی فراهم می نماید که قادر به اجرای برنامه های SSI و CGI تحت یک User Id متفاوت نسبت به User Id مربوط به فراخوانی سرویس دهنده وب باشند.بدین ترتیب تهدیدات امنیـتی کاهش و امکان نوشتن و اجرای برنامه های SSI و CGI اختصاصی نوشته شده توسط مهاجمان ، حذف خواهد شد . حداکثر دسترسی که شما می توانید به شاخه ها و فایلهای خود بدهید 755 می باشد که و دسترسی بیشتر موجب خطای شماره 500 ( خطای اینترتال سرور ) درهنگام اجرا خواهد شد .

اما من برای برنامه ای که استفاده می کنم ، شاخه ها باید دسترسی 777 داشته باشند !!!

در این سرور با نصب این ماژول دیگر نیازی ندارید !!! برنامه ها با پرمیشن 755 بازهم بدرستی کار خواهند کرد . فقط مالکیت فایلها باید از حالت Nobody به نام کاربری خود در سرور تغییر کند که چنانچه در این مورد مشکل داشتید ، با پشتیبانی تماس بگیرید .

باقی تنظیمات را می توانید در صفحه phpinfo ببینید .

.htaccess
چنانچه شما با htaccess مقادیر php_value را تغییر داده اید ، روی این سرور با نصب این ماژول به خطای 500 ( اینترنال سرور ) برمی خورید . کلیه خط های مربوط به تغییرات php_value را در فایل htaccess باید پاک کنید و فایلی بنام php.ini ایجاد کرده و مقادیر را به شکلی که می خواهید در آن تغییر دهید .

من می خواهم PHP را بر روی سرور با تنظیمات دلخواه خود اجرا کنم

شاید شما نیاز داشته باشید که تنظیمات php را بر روی هاست خود با توجه به نیاز برنامه تغییر دهید . این تنظیمات بر روی هر شاخه از هاستتان قابل تغییر است .

مثلا می خواهید register_globals را در هاستتان فعال کنید . کافیست فایلی بنام php.ini در شاخه که برنامه اجرا می شود ، ایجاد کرده و این متن را بنویسید :

کد:

register_globals = On 

مقادیر مهمی که در php معمولا برنامه نویسان تغییر می دهند بشرح زیر است که شما می توانید در یک فایل php.ini قرار دهید :

کد:

register_globals = Off
register_argc_argv = Off
safe_mode = On
magic_quotes_gpc = Off

رفع اشکال در صورت بروز اشکال روی هاستتان :

اسکریپت PHP در هاستتان اجرا نمی شود . مراحل زیر را دنبال کنید :
1- بررسی کنید که برنامه شما با دسترسی حداکثر 755 درحال اجرا باشد . چنانچه از دسترسی 777 استفاده می کند ، موجب بروز خطای 500 ( خطای اینترنال سرور ) را می دهد . معمولا فایلهای اسکریپت را با دسترسی 644 استفاده می کنند .

2- بررسی کنید که شاخه ای برنامه در آن اجرا می شود و همچنین کلیه شاخه هایی که به ایناسکریپت مربوط می شود ، دسترسی 755 داشته باشد .

3- بررسی کنید که مالکیت فایل با خودتان باشد ! احتمال دارد مالیک فایلهای شما بشکل nobody باشد که در این صورت با ارسال مسیر اسکرپیت به پشتبانی ، مالکیت فایلها به کاربری شما تغییر خواهد کرد .

4- htaccess خود را چک کنید . چنانچه در آن تغییراتی برای php_value صورت گرفته باید از این فایل حذف گردد که همانطور پیش ار این گفته شد ، با اعمال تغییرات php_value در فایل htaccess موجب خطای 500 خواهید شد . این تغییرات باید در فایل php.ini اعمال گردد .( می توانید htaccess را حذف نمایید)

آیا این پاسخ مفید بود؟

« بازگشت