نهاية لأوانه من رؤوس النصوص - ماذا ، ليس لدي أي فكرة!

StackOverflow https://stackoverflow.com/questions/3710338

  •  02-10-2019
  •  | 
  •  

سؤال

أحاول تنفيذ برنامج نصي بيرل بسيط على الخادم الخاص بي وأحصل على خادم 500 داخلي وعندما أتحقق من سجلات الأخطاء التي تظهر:

Premature end of script headers: test.pl

هنا هو البرنامج النصي بيرل:

#!/usr/bin/perl -w
print "Content-type: text/plain\n\n";
print "testing...\n";

لي cgi-bin المجلد لديه أذونات 0755. البرنامج النصي نفسه هو أيضا 0755. البرنامج النصي مملوكة من قبل Apache و in the Group Apache. يعمل البرنامج النصي بشكل جيد عبر سطر الأوامر.

ما هي المشكلة وكيف يمكنني إصلاح هذا؟!

شكرا جميع على أي مساعدة!

تحديث

اكتشاف مثير للاهتمام في Suexec:

2010-09-14 17:38:28]: uid: (10001/som) gid: (2522/2522) cmd: test.pl
[2010-09-14 17:38:28]: target uid/gid (10001/2522 or 2521) mismatch with directory (48/0) or program (48/0)

لكن مجلد CGI الخاص بي هو نفس البرنامج النصي test.pl - هل يشير إلى دليل آخر؟

هل كانت مفيدة؟

المحلول

هناك الكثير من اقتراحات استكشاف الأخطاء وإصلاحها جيدة لنصوص Perl التي تعطي رسالة الخطأ هذه على PerlMonks: أبدأ هنا. لا أرى أي أخطاء محددة في البرنامج النصي الخاص بك ، ويبدو أنك قمت بتغطية أذونات الملف ، لذلك سأبدأ باقتراحات تكوين Apache.

نصائح أخرى

الكثير من النصائح الجيدة: كيف يمكنني استكشاف نصي Perl CGI الخاص بي.

بعد أن شاهد التحديث رسالة خطأ SUEXEC: يبدو أن الخادم الخاص بك يحتاج إلى أن يكون برنامج CGI مملوكًا للمستخدم نفسه مثل الدليل. حاول تغيير ملكية الملف.

استخدم وحدة CGI على سبيل المثال

use CGI qw/:standard/;
$q = CGI->new;
print $q->header('text/html');
print "testing...\n";     
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top