-
پشتبانی ثبت تیکت و سوالات پیش از خرید
-
پشتیبانی تلفنی 021-91300210
-
پشتیبانی فوری 0313740
فایل های CGI ، در سرور داخلی خطا ایجاد کرده اند
cgi files generate Internal Server Error
این بدان معنی است که اسکریپت فایل های CGI به درستی اجرا نشده است .
دلایل متعددی وجود دارد که ممکن است موجب بوجود آمدن این ارور شود . پس باید چند چیز کوچک را بررسی کنیم .
the /var/log/httpd/suexec_log را بررسی کنید . این شامل هر گونه خطایی می شود که نتیجه آن عدم دسترسی صحیح به پرونده است . فایل باید در یک cgi-bin باشد وباید owner/group ی داشته باشد ، به عنوان نام کاربری ای که مالک سایت است . اگر این فایل متعلق به هر کس دیگری باشد، اجرا نخواهد شد.
همچنین، اسکریپت باید اجازه اجرا داشته باشد . معمول ترین سطح دسترسی 755 است .
به تمام دایرکتوری ها بروید و مطمئن شوید که سطح دسترسی یا پرمیژن 755 است (اگر public_html یک گروه از آپاچی داشته باشد ، می تواند سطح دسترسی 750 داشته باشد ).
اگر suexec_log فقط اسکریپتی که اجرا شده است را نشان می دهد ، پس ممکن است مشکل در کد اسکریپت باشد .
ساده ترین راه برای فهمیدن مشکلات اسکریپت کدگذاری این است که ابتدا اسکریپت را از طریق ssh به صورت دستی اجرا کنید.
cd /home/username/domains/domain.com/public_html/cgi-bin ./script.cgi
یکی از خطاهای معمول استفاده از یک مترجم نادرست است. 2 تا از شایع ترین مترجمین عبارتند از :
#!/usr/bin/perl
و
#!/usr/local/bin/php
این کد باید در خط اول اسکریپت نمایش داده شود. گاهی اوقات فایل در فرمت ویندوز آپلود می شود ، بنابراین trailing newline character(بازگشت) اشتباه شکل گرفته می شود و فایل باید در قالب دیگری آپلود شود.
خطاهای دیگر که هنگام اجرای دستی اسکریپت در ssh تولید می شود، موچب می شود ماژول های perl از دست بروند ، در این صورت شما باید خودتان آن را نصب کنید.
Cpan ساده ترین روش برای نصب ماژول های پرل جدید است :
perl -e shell -MCPAN install Bundle::DBD::mysql
و یا
perl -MCPAN -e 'install Bundle::DBD::mysql'