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)
Same error in the error_log too? That's pretty weird.
Wakaba doesn't work with mod_perl, but maybe if you installed it and didn't actually use it, just so that it could find that damn file... Hell, I dunno, that's all mighty strange.
Ok, I slightly lied. Log file after that change shows...
[Wed Aug 23 21:15:48 2006] [error] [client 71.206.116.70] Premature end of script headers: wakaba.pl
[Wed Aug 23 21:15:48 2006] [error] [client 71.206.116.70] Can't locate object method "require_version" via package "DBI" at D:/Perl/lib/DBI.pm line 22.
[Wed Aug 23 21:15:48 2006] [error] [client 71.206.116.70] Compilation failed in require at C:/Web Root/HTTP Root/wakaba/wakaba.pl line 7.
[Wed Aug 23 21:15:48 2006] [error] [client 71.206.116.70] BEGIN failed--compilation aborted at C:/Web Root/HTTP Root/wakaba/wakaba.pl line 7.
Ok, that's something I can work with: It seems you haven't installed DBI. Use ppm to install DBI and the mysql driver for it.
Ok, thanks very mucho for your support so far. On that note...
I'm a bit of a newb to all this. I know my way around, but perl confuzzles me. I searched for a program called ppm on my computer, found it, and ran it. Tried typing 'install dbi' as that seemed to be what google instructed me to do. Got the following message:
ppm> install dbi
Error: No valid repositories: Error: 500 Can't connect to
ppm.ActiveState.com:80 (connect: Unknown error)
Perhaps I'm typing in something wrong or there is an easier way?
And as for mysql drivers I again must claim ignorance. I'll google it when I wake up, but if it's easy to explain, it'd be a tremendous help.
Sounds like you've firewalled off the machine or something. Try to get ppm to work, and then you should be able to just do install DBI
and install DBD::mysql
or something like that.
Ok, turned of firewall in windows and on my router. Everything I expect to work works fine.
PPM started working. "Successfully installed DBD-mysql version 3.0002 in ActivePerl 5.8.8.817.". Same message for DBI. An attemt to install again shows that they are indeed both installed.
Error message remains the same as in >>59
Wow: update as I type this. I deleted the DBI.pm in my D:/perl/lib. Seems when it couldn't find it (long ago) I tried to manually copy it there. After I deleted it, and reinstalled DBI, it works fine. You my friend, are my hero.
That's not a 500 Internal Server Error.
Also, that references mod_perl, which Wakaba does not support, and also sounds sort of like all files are not in place.
I have several imagebaords set up on my server, but recently i attempted to set up a japanese imageboard using strings_jp and rules_jp, i have everything set up perfectly the same as my other boards but i still get an internal server error.
Hi, i recently installed a board with the purpose of making a oekaki board for my web. i installed all and set 755 the .pl files but i got the 500 internal error, i tried seting the ./wakaba/ directory to 755 as well and the script works but the oekaki script cannot write the images to directories (i get a error in getpic.pl in line 20). Any clue what can i do?
Thanks