Since 500 Internal Server Errors aren't ever really caused by Wakaba or Kareha themselves, but are still a big problem for lots of people, I'm setting up this thread to discuss various problems and solutions related to them.
Firstly, things that often cause Internal Server Errors:
#!/usr/bin/perl
is the correct one, but sometimes Perl is installed elsewhere. In that case, you will have to find out where, and change the hashbang. On Windows servers, it should often be changed to #!perl
.Options +ExecCGI
and AddHandler cgi-handler .pl
. SOMETIMES, but definitely not always, this can be put into the .htaccess
file. See the next point..htaccess
file. Spelling errors, trying to use modules that are not installed, or trying to use options that have been forbidden elsewhere will all cause Internal Server Errors.Secondly, things that DO NOT cause Internal Server Errors:
Third, what to do when you get Internal Server Errors?
error_log
. Internal Server Errors often generate two or more lines in the log file, make sure you read them all.Try the Perl test script:
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "<html><body><h1>Perl is working!</h1></body></html>";
If this doesn't run, work with the server config until it runs, and only when it does, get to work on Wakaba.
Dear >>5,
Thank you for you opinion on the matter. It is being reviewed by our trained message scripts for traces of intellegence, and will be fowarded to a human if any is found. We at iichan thank you for your understanding, and will respond at the soonest a representitive is available.
I'm getting this error when I run wakaba.pl
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers: wakaba.pl
I am not quite sure what is causing this
I read 1-4 and applied your suggested fixes under those 5 paragraphs of reasons it would have internal error. I am still encountering the same problems even though the server is configured to run CGI natively.
Yeah, I did the same thing as he did but I cant get it working.....
I just recently moved to a new webserver and perl does work... I used the test script to find that out.
And what does the error_log say?
I fixed it...
For some reason I had to replace all the wakaba files except for the config.....
I feel stupid here, but I just keep getting:
Forbidden
You don't have permission to access /kareha/kareha.pl on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Even when I set everything to 777.
Do you have permission to access /kareha/?
I do indeed.
You shouldn't set everything to 777. The scripts should be 755. Some Apache installations will flat out refuse to run scripts set to 777, because of security issues. They may even refuse to run scripts in directories set to 777.
Well, of course I tried 755 first, same error. I'll try to set them back.
And zero change.
What I mean is, do you get a 500 when accessing /kareha/? If the wrong execute bit is off in the dir permission, even though you can physically navigate in there on the filesystem, apache won't let you view it.
When I go to /kareha/ I can see everything in there, go into all the folders, view the css files, view txt files, etc, etc.
Does the test perl script in >>4 work?
IIRC, Apache takes a couple of configuration steps to run CGI, not just one.
Unrelated: what's up with the "reply" links next to the IDs in earlier posts of this thread?
Those weird >>q things, http://wakaba.c3.cx/sup/kareha.pl/1104778330/
Did that feature get removed?
Yes. It kind of sucked.
Okay, I'm having some problems. I'm testing out kareha (3.0.9) on my Linux home server with Apache 2 before actually making a proper site. I was having some permission-related 500 errors, and now all dir permissions are fixed. I can view kareha/ and its subdirectories as well as look at non-executable files in them as text, like example.htaccess and the css templates. Running kareha.pl from a broweser, however returns a 500 error still, though not because it cannot write or read a certain directory. Here's some relevant info from error_log:
[Wed Mar 01 12:27:12 2006] [error] [client 192.168.1.68] File does not exist:
/var/www/localhost/htdocs/favicon.ico, referer: http://192.168.1.68/kareha/
[Wed Mar 01 12:27:14 2006] [error] Can't locate config_defaults.pl in
@INC(@INC contains: . /home/httpd/perl /etc/perl /usr/lib/perl5/site_perl/5.8.7/
i686-linux /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/
vendor_perl/5.8.7/i686-linux /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/
vendor_perl/5.8.6/i686-linux /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/
vendor_perl /usr/lib/perl5/5.8.7/i686-linux /usr/lib/perl5/5.8.7 /usr/local/lib/
site_perl /usr/lib/apache2) at /var/www/localhost/htdocs/kareha/kareha.pl
line 13.\nBEGIN failed--compilation aborted at /var/www/localhost/htdocs/
kareha/kareha.pl line 13.\n
(Hope that formats correctly.)
This seems related to the path specified in kareha.pl: use lib '.';
. I assume it isn't expanding . to the dir in which kareha.pl is situated. If I edit kareha.pl and input the full path, it still doesn't work. I didn't really think it would. Disabling suexec does nothing as well. test.pl works in kareha/, so mod_perl seems to be fine.
I apologise if I'm missing something obvious, but I'm sort of at a dead end at the moment. Help would be appreciated :)
Your problem is most likely that you're using mod_perl, if I read that correctly. It is theoretically possible to run Kareha on mod_perl, but it requires some tweaks, and I've never gotten around to testing it properly.
>>27
Oh, okay. Thanks very much. Mod_perl was a bit of a pain, anyway. Guess it'll be easier to get kareha up than I thought.
Thanks very much for this wonderful piece of software.
I get an Internal Server error, but everything is fine. I have tried everything here and asked my host for help. I was told to put perl scripts into my cgi-bin folder. I did this but it still failed to help the situation. I think im using mod_perl, what are the "tweaks" that need to be made exactly.
Did you try the test script in >>4, outside cgi-bin and inside it?
Also, some hosts only allow you to run CGI scripts in cgi-bin, but then don't let you access normal files in there. Yet other hosts don't let you run perl scripts in directories that are writeable.
You need to gather some more information about what exactly you have and haven't done before we can really help you. Also, look at your server's error_log and see what it says (and remember that you may have several different problems).
i've been having issues with the cgi bin and .pl files too, i'm an awfull programmer so i have no clue what to do to fix this problem. I'm really only sponsoring the board that me and a few freinds are trying to make and i don't have a programmer anymore
is there anyone here who wants to come and join up as a programmer for my board?
I tried the test script both outside cgi-bin and inside and it doesnt work. I get an internal server error both times.
I have contacted my host but they say they cant help with issues like this, that I (the administrator) should locate the problem and fix it, but my knowlage of cgi is limited.
>>32 I have the same issue my hosts don't make any attempt to help
So what does error_log say?
My error log gives me:
Premature end of script headers[My domain info/kareha.pl][client info]
And what else?
Thats actually pretty much it. The entire error is:
[Mon Apr 10 17:05:34 2006] [error] [client ..***.**] Premature end of script headers: /home/************/******.dreamhosters.com/a/kareha/kareha.pl
[Mon Apr 10 17:05:34 2006]
And thats it nothing else
There are usually two errors, first the real one, and then the "Premature end of script headers" that is caused by the previous error.
Yeah thats all i get in relation to executing the kareha.pl script, the only other error is that there is no html page like internal_server_error.html to display the fact that there is an Internal Server error.
What error does the test script give?
I get the exact some error with the perl test script, Premature end of script headers. I am with Dreamhost currently.
Well, then I have no idea except that something is severely broken.
my hosting provider only allows .pl to be run from cgi-bin folder. test.pl runs well there and does not run outside.
But it does not allow html files to be read from cgi-bin. what can I do? I'm a programmer, so I'm willing to tweak kareha to write html files to another directory if that's the solution. thanks.
I still haven't tried to do this, but a first guess for a solution would be:
chdir "/path/to/html/files";
at the top, possibly in a BEGIN
statement.expand_filename()
function to add the web-side path to your HTML files instead of the path used by the script.on dreamhost change the directory of kareha to 755, otherwise it won't run.
Also try uploading your .pl files in ASCII mode. I have to, for some reason.
I just
wget http://wakaba.c3.cx/releases/kareha_3.1.0.zip
unzip kareha_3.1.0.zip
on dreamhost. Easy!
Of course then you go on about copying shit from there to there changing permissions. blah.
Your server setup is broken. I don't know how exactly, but if the test script does not work, that's pretty much the only option. Make sure that .pl files are handled by cgi-handler, and not something else.
Also, the "Abnormal Reply" is caused by an Opera bug. I'll try to get a workaround for that for the next version. Click "More options..." and select a formatting to work around it in the meantime.
I keep getting:
No ADMIN_PASS defined in the configuration at config_defaults.pl line 8.
BEGIN failed--compilation aborted at config_defaults.pl line 133.
Compilation failed in require at kareha.pl line 13.
BEGIN failed--compilation aborted at kareha.pl line 13.
After i've uploaded all the files(minus mode_image) since I'm doing the message board. I've also tried changing permissions to 755, that's what got me this far :P. I HAVE changed the admin pass and secret in the config.pl. The secret code is the result of me banging on the keyboard like a monkey.
Is somethign wrong with the config file?
That's not a 500 Internal Server Error. Also, remove the # at the start of the lines you change in config.pl.
Adding "use lib '/var/www/localhost/htdocs/wakaba';" in wakaba.pl (adjust for whatever directory wakaba is located) helped to avoid the errors with 'require'.
Ok, 500 Internal Server Error. The following is what I knows...
**Server is all local, on my box. Apache 2.0.59, ActivePerl 5.8.8, MySql 4.1, and PHP 5.1.5 are all that is installed and all functioning correctly.
**Test perl script anywhere on my domain works. I moved it to my wakaba directory just to be sure, still ok.
**Hashbang is copy/pasted from the test script which works to wakaba.pl so that should be set correctly.
**ONLY thing in my error.log (other than server boot up info) is..
[Wed Aug 23 11:49:53 2006] [error] [client 127.0.0.1] Premature end of script headers: wakaba.pl
[Wed Aug 23 11:49:53 2006] [error] [client 127.0.0.1] Can't locate object method "request" via package "Apache" at D:/Perl/lib/CGI/Carp.pm line 486.
**D:/Perl/lib/CGI/Carp.pm there is indeed a file at that location
Still get the 500 error when I try to open wakaba.pl. Any help appreciated greatly.
Sounds like a broken install. It's trying to use mod_perl files when mod_perl is not installed (I take it?). It's trying to print some other error message, and failing.
You can try removing the use CGI::Carp ...
line at the start of the script, and then look at the error_log again, maybe.
Same error with that line removed. Would installing mod_perl be a good idea at this point (no, it was not installed)