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.
The directories should likely be 777, not 755. Or you forgot to set the permissions on the tmp/
directory.
All directories under /wakaba/ are 777 and all .pl files under /wakaba/ are 755
But, if i set the /wakaba/ directory to 777, the script don't work (error 500). I if set the /wakaba/ directory to 755, the script works but then can't create the html pages and get a "Error: Could not write to directory." when i try to submit the drawing.
Sounds like an over-paranoid Apache install. Check error_log for messages.
[2006-09-22 11:03:26]: error: directory is writable by others: (/home/heavenof/public_html/wakaba)
That's with /wakaba/ in 777
Yes, that's an over-paranoid Apache all right. Your best bet is to convince it to not be so goddamn paranoid, or to get suexec working.
Argh, I've read through the previous help and it seems that everything is working (IE: No permissions/etc errors), but the server won't run perl scripts outside of the CGI-BIN and won't run HTML files inside of it.. Suggestions, please?
For me, it involved modifying Apache's httpd.conf file.
First, I added +ExecCGI to every 'Options' line.
Then, I modified the 'AddHandler' line, to this:
AddHandler cgi-script .cgi .pl
I also had better luck installing Kareha to a normal folder, instead of the cgi-bin folder.
Actually, I was about to post asking that same question, but some-how figured it out.
I do agree with Alexander Nilsson.
The 'filecutter-extract-to-interface' would really make this application as easy yet powerful as I and a lot of others, and hopefully yourself would like it to be, have you looked into this option or maybe even started on it?
Wrong thread.
I've been working on other things lately so I haven't looked into anything, but I probably will at some point.
Has anybody had any luck getting wakaba to work on dreamhost?
I'm sitting here with 500 error, and all my settings are correct (chmod, #!), and I tried it with FastCGI on and off but it didn't change anything. I'm wondering if DH has +ExecCGI running.
.htaccess:
Options +ExecCGI
AddHandler cgi-script .cgi .pl
<Files ~ "\.pl$">
Options +ExecCGI
</Files>
Still does nothing, just wanted to add that.
Lots of people use Wakaba on Dreamhost. Try looking at your error_log to get more information.
>>81, 82, 84 was me
I figured it out, I had the /wakaba/ directory chmodded to 777 and it was suexec being a giant bitch about it.
Got everything working, thanks though.
Everything worked until the end.
This is the first time I've even tampered with perl, but, I believe I'm doing everything right?
I'm wondering if I can't run html from my cgi-bin like the other guy in here.
[2006-10-11 00:09:07]: error: directory is writable by others: (/home/thieves/public_html/dorkcity/cgi-bin/board)
>>86
try changing the permissions on the directory to 775?
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
Bareword found where operator expected at (eval 56) line 3, near "/usr/bin" syntax error at (eval 56) line 3, near "/usr/bin" "use" not allowed in expression at (eval 56) line 5, at end of line BEGIN not safe after errors--compilation aborted at (eval 56) line 7. ,
This is probly some stupid error of my fault, but im a noob :|
Did you edit any of the files?
So... assuming your host doesn't allow non-perl files to be accessed from within the CGI-Bin, how would you go about running Kareha?
Preferrably by getting a sane host. Otherwise, by editing the script to make it keep files elsewhere. Look at earlier posts for hints, but I don't think anyone's actually tried.
>>95
you could try putting this in your config.pl:
use constant BOARD_DIR => '../imgboard/'; # set this to whatever directory you want to have the board in (relative to the directory where kareha.pl is).
use constant RES_DIR => BOARD_DIR.'res/';
use constant CSS_DIR => BOARD_DIR.'css/';
use constant IMG_DIR => BOARD_DIR.'src/';
use constant THUMB_DIR => BOARD_DIR.'thumb/';
use constant HTML_SELF => BOARD_DIR.'index.html';
use constant HTML_BACKLOG => BOARD_DIR.'subback.html';
use constant RSS_FILE => BOARD_DIR.'index.rss';
use constant JS_FILE => BOARD_DIR.'kareha.js';
use constant SPAM_FILES => (BOARD_DIR.'spam.txt');
and then putting include/, spam.txt, and all the .pl files in your cgi-bin directory.
note that the directory you put kareha.pl in needs to be writable for it to be able to write the log file.
i haven't tried this, but i'm pretty sure it should work...
>>96
I'm getting this:
Software error:
Couldn't write to file "rabi.memebot.com/a/index.html" at wakautils.pl line 1009.
>>97
try changing the permissions on that directory to 775?
Sounds like you're not doing what >>96 said. He suggested using a relative path. Not sure if that will really work, but you seem to be putting the hostname in there, which will obviously not work at all.
[Wed Apr 18 19:41:48 2007] [error] [client 127.0.0.1] Can't locate CGI/Carp.pm in @INC (@INC contains: .) at C:/Program Files/xampp/htdocs/wakaba/wakaba.pl line 3.\r, referer: http://localhost/wakaba/
[Wed Apr 18 19:41:48 2007] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at C:/Program Files/xampp/htdocs/wakaba/wakaba.pl line 3.\r, referer: http://localhost/wakaba/
^ I'm on windows using xampp and I get 500 internal server error with that in the error.log when I run wakaba.pl.
I set the hashbang to #!C:/Program Files/xampp/perl/bin/perl.exe
Any idea what's wrong?
>>105
it looks like your perl installation is broken.
Yes. You'll probably be better off grabbing ActivePerl and installing that directly.
Errr, I'm having some trouble with getting this to work.
When I run wakaba.pl, I get a 500 error and this in the error log:
[Sat May 12 23:38:16 2007] [error] [client 192.168.0.139] Can't locate CGI/Carp.pm in @INC (@INC contains: .) at C:/Program Files/xampp/htdocs/wakaba/wakaba.pl line 3.\r, referer: http://192.168.0.139/wakaba/
[Sat May 12 23:38:16 2007] [error] [client 192.168.0.139] BEGIN failed--compilation aborted at C:/Program Files/xampp/htdocs/wakaba/wakaba.pl line 3.\r, referer: http://192.168.0.139/wakaba/
I tried all the other cgi tests and they work too except for a .pl one it seems, though I did have .pl next to the addhandler for cgi. Any idea what's wrong?
I am using xampp btw.
Ok, so I set everything up so far and
When I try to go to wakaba.pl or even the test.pl (even in /cgi-bin/)
If my .htaccess has "AddHandler cgi-handler pl cgi"
it will display the .pl file as text in the browser
If I change it to "AddHandler cgi-script pl cgi"
it gives me a 500 Int server error with the logs showing "Premature end of script headers" and nothing else
I've spent hours and I dont know what the hell the problem is. Server is running Perl 5.8.7 and had the Image Magik module natively installed. I'm going crazy here...
Is this "cgi-handler" a module that I don't have???
Do you also have Options +ExecCGI
on?
Yes My .htaccess looks like this:
"# -FrontPage-
IndexIgnore .htaccess /.?? ~ *# */HEADER /README /_vti
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
AuthName www.wtfsauce.net
AuthUserFile /home/wtfsauce/public_html/_vti_pvt/service.pwd
AuthGroupFile /home/wtfsauce/public_html/_vti_pvt/service.grp
AddHandler cgi-script pl cgi
Options +ExecCGI
"
That last bit? Yeah, I've tried every combination of cgi-script, cgi-handler, .pl .cgi, pl cgi, pl, .pl, cgi, .cgi, and also having the "Options +ExecCGI" immedietly after the last extension instead of on the next line.
Oh yes, the permissions are 777(Tried 775 too) on the test file. I asked my host? They told me to use /cgi-bin/ which I am and to set the permissions to be able to execute it which I did. Otherwise they just told me to "read the instructions for the script you're trying to run"
if you can please contact me on AIM @ shaneisscum
> <Limit GET POST>
> order deny,allow
> deny from all
> allow from all
> </Limit>
what.
That limit stuff? That was already in my .htaccess.
Is there a .htaccess for individual folders?
Your host is probably preventing you from overriding the options you need. The real solution is to get proper hosting.
`Software error:
syntax error at config.pl line 2, near ")
SECRET "
Compilation failed in require at kareha.pl line 12.
BEGIN failed--compilation aborted at kareha.pl line 12.`
i've edited my config.pl
my line 2 is SECRET (' my secret is more than 10 characters, digits + letters')
line 12 is
DISPLAY_ID ('2')
>>116
the lines in config.pl should look like
use constant NAME => VALUE;
config_defaults.pl did not return a true value at /var/www/kareha2/kareha.pl line 13.
BEGIN failed--compilation aborted at /var/www/kareha2/kareha.pl line 13.
wtf? i see many similiar errors but no solved errors.
help me i'm drunk russian and my english is sooo bad.
Don't remove the 1;
at the end of config_defaults.pl
. Actually, don't touch config_defaults.pl
at all.
>>119 Well?now he cant write to wakautils index.html
I try to run wakaba script on a Debian Sarge vServer with root access. Apache/2.2.3 (Debian) PHP/4.4.4-8+etch4 mod_perl/2.0.2 Perl/v5.8.8 Server
I keep on getting Internal Server Errors but i am able to run your and other perl test-scripts.
The apache error.log says this:
-------------------------------
[Mon Sep 10 17:51:59 2007] [error] Can't locate config.pl in @INC
(@INC contains: . /etc/perl
/usr/local/lib/perl/5.8.8
/usr/local/share/perl/5.8.8
/usr/lib/perl5 /usr/share/perl5
/usr/lib/perl/5.8
/usr/share/perl/5.8
/usr/local/lib/site_perl
/etc/apache2)
at
/var/www/web1/imgboard/wakaba.pl line 16.\nBEGIN failed--compilation aborted at /var/www/web1/imgboard/wakaba.pl line 16.\n
-------------------------------
Any Ideas? Is it possible that this error accurs because im using mod_perl? And if, what schould i use instead of mod_perl?
You should definitely not use mod_perl, just plain CGI.
Well i have absolutely no fucking clue which packages I have to install since I always used mod_perl with apache.
I have Perl/v5.8.8 installed and i think nearly every fuxing module for it:
libwww-perl libsoap-lite-perl libimage-size-perl libdbd-mysql-perl libdbi-perl libdigest-md5-perl libapache-mod-perl libimage-info-perl erlmagick libstring-crc32-perl libapache-request-perl ibstorable-perl libcompress-zlib-perl libtime-hires-perl ibtie-cache-perl
There are like 1 billion sites for installing mod_perl but i cant find any good explanation how to configure perl & apache without using mod_perl
OH MY GOD I FUCKING GOT IT!!!
AND IT WAS THAT HELL OF EASY THAT I FORGOT TO THOUGHT ABOUT THAT!! :)
Forbidden
You don't have permission to access xxx/wakaba.pl on this server.
i get a 403. wth?
if you rum on a linux server you can just install the midnight commander ("apt-get mc" on debian)
you can easily set your wakaba.pl and captcha.pl files to chmod 655, the "res" "thumb" and "src" dir to 777 and of course the entire foƶder to 777 if its needet.
have a look on the picture
>>133
that's like telling someone to install firefox to read local plain text files.
I seem to be having some trouble, but I have no idea what's causing it. Perl seems to be working.
http://echelongc.com/cgi-bin/test.pl
However.. wakaba is not.
http://echelongc.com/cgi-bin/wakaba/wakaba.pl
It manages to redirect to wakaba.html.. I thought once It got that far there'd be little to go wrong. Does anyeone have any clues what could be wrong?
>>135
Hey This is 135. I've moved all of the /wakaba/ folder to my root cgi-bin..
so now the wakaba url is
Your server uses an antiquated broken setup, probably. Enable running Perl scripts anywhere and get rid of cgi-bin.
hey im currently tring to setup at fro.papaiti.com
the directory permissions is 775 and the pl files have correct permissions. when i point my browser to wakaba.pl i get:
Software error:
No ADMIN_PASS or NUKE_PASS defined in the configuration at /usr/share/perl/5.8/CGI/Carp.pm line 314.
BEGIN failed--compilation aborted at config_defaults.pl line 126.
Compilation failed in require at wakaba.pl line 17.
BEGIN failed--compilation aborted at wakaba.pl line 17.
if i remove .htaccess it changes to a 500 internal server error. i'm hosted at dreamhost. any ideas?
>>138 did you edit the config.pl
file (and remove the # from in front of the lines you changed)?
Error message:
Can't locate config.pl in @INC (@INC contains: . C:/xampp/perl/site/lib/ C:/xampp/perl/site/lib C:/xampp/perl/lib C:/xampp/apache) at C:/xampp/htdocs/****/kareha/kareha.pl line 12. BEGIN failed--compilation aborted at C:/xampp/htdocs/****/kareha/kareha.pl line 12.
Entire thread -> CTRL-F -> "Can't locate config.pl"
>>141
I have a new question now.
How do I disable mod_perl and use just CGI.
I'm using xampp with a perl add-on that gives me 5.2.3 mod_perl/2.0.3 Perl.
This is my first time using perl and shit is confusing me.
Ask the xampp people. I have no idea.
500 internal server errors whenever I try to acess config.pl in my cgi-bin directory, shows as plain text whenever
I try to run config.pl. Other .pl's dont seem to be working either. I dont have a .htaccess file, do I need one? Aslo, ive looked through httpd.conf and added the exec thing to evert directory. Hosting the server myself so I can do pretty much anything I need to do. CentOS 4.5 if it helps.
500 internal server errors whenever I try to acess config.pl in my cgi-bin directory, shows as plain text whenever
I try to run config.pl. Other .pl's dont seem to be working either. I dont have a .htaccess file, do I need one? Aslo, ive looked through httpd.conf and added the exec thing to evert directory. Hosting the server myself so I can do pretty much anything I need to do. CentOS 4.5 if it helps.
You are not supposed to be running config.pl or any other .pl file but wakaba.pl. Also, read the beginning of this thread for more hints.
I got this kind of error:
Can't locate object method "Archive" via package "files" (perhaps you forgot to load "files"?) at config.pl line 11.
Compilation failed in require at wakaba.pl line 16.
BEGIN failed--compilation aborted at wakaba.pl line 16.
Even getting this far took lot of effort, because i haven't found any documentation or instructions, does anybody know where i can get those?
http://wakaba.c3.cx/docs/docs.html
Also, that error likely means you messed up the syntax in your config. Start over and look more carefully at the examples.
Now it works, thanks!
I have both wakaba and kareha installed and running under suexec installed with next to zero problems. The one thing I can't workout is this.
==> /var/log/apache2/error_log <==
suexec failure: could not open log file
fopen: Permission denied
[Wed Jan 09 15:24:42 2008] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: paint.pl, referer: http://xxx.xxx.xxx.xxx/o/wakaba.html
==> /var/log/apache2/suexec_log <==
[2008-01-09 15:24:42]: uid: (1001/dood) gid: (100/100) cmd: paint.pl
Well, I don't know too much about suexec other than that it's a world of pain.
I guess you'll have to figure out what's different with paint.pl from the other script files. Permissions? Hashbang? Something else?
trying to get wakaba running effectively.
the imageboard runs just fine, but when trying
to access wakautils.pl i get the same
Error 500 Internal Server Error "Premature
end of script headers". what exactly is
wakautils.pl?
also, i'm on a shared host [nearlyfreespeech],
can't change apache or install stuff, and i can't
find and error_log to check either. (i've been
scouraging the threads for hours to learn more
about wakaba, please help.)
You're not supposed to access it, everything is working as it should.
ok, sweet. i was making a problem out of
nothing.
gotta learn me some perl.
the more i learn, the less i seem to know. [=
It's been over ten years, and I am still learning Perl.
Please someone help me. The test script works anywhere in my site just fine, including cgi-bin. I did try permissions (755 for wakaba.pl and captcha.pl as well as all folders - even tried setting 755 for all files). My hash-bin is right. I'm pretty sure I did the config file properly (I did it the same way for wordpress and it works fine with my database so I'm sure that's not a problem). I do have thumbnailers installed. But I still get the 500 Internal Server error.
HOWEVER, the error message/style is different from normal. Before it would be black and white text (given by the server itself) whereas now it's an error given by IE (its graphical) saying "website cannot display the page." My server does not record an error in the error log either this time around. I know these are clues, but I don't understand it.
Can anyone please help?
(Some details about my server: PERL version 5.8.8,
Path to PERL /usr/bin/perl, MySQL version 4.1.22-standard-log, Apache version 1.3.37 (Unix))
First off, use some other browser than IE and see what it says.
I am 156, neevermind guys. I got it working. Thanks anyway :)
I think it might be common sense for a lot of you but for non-programmers, I think this should be stressed: REMOVE THE '#' SYMBOL FROM IN FRONT OF THE LINES YOU CHANGED IN THE CONFIG FILE
Grr.
So here I am on lighty 1.4.13, Debian.
Perl is functional, directory permissions are correct.
Wakaba can't write to directory(ies?)
On a wild guess, i'm flailing at my inane vhost setup, which is as follows.
$HTTP["host"] =~ "(^|\.)steamchan\.net$" {
server.document-root = "/var/www/steamchan"
$HTTP["url"] == "/c" {
cgi.assign = ( ".pl" => "/usr/bin/perl" )
}
$HTTP["url"] =~ "/w" {
cgi.assign = ( ".pl" => "/usr/bin/perl" )
}
$HTTP["url"] =~ "/s" {
cgi.assign = ( ".pl" => "/usr/bin/perl" )
}
}
Is there something I'm missing?
(a shot in the dark I know, everybody and their mother's dog is on apache.. but.)
Just put the cgi.assign in the host pattern, unless you really really need to have .pl files not be executable outside the boards. Less redundant, and less chance of stuff randomly not working because of a silly typo.
If you map a script to "", it'll execute the script directly with the hashbang line. This is the way I do it because it's more like other servers and (IMO) less prone to odd problems.
So your vhost would look like:
$HTTP["host"] =~ "steamchan\.net$" {
server.document-root = "/var/www/steamchan"
cgi.assign = (".pl" => "")
}
Then just chmod +x wakaba.pl and make double sure the cgi scripts have write access to the directories. It "should" work, for varying values of should.
Is it setting the current directory to the board directory before executing the script, or not? Try adding a die
pwd
;
somewhere at the top of the script.
I managed to figure several things about. For whatever reason, my install of lighty hates serving things from the /var/www/ directory. This is rectified by re-writing everything something like /home/whatever directory.
Secondly, if the permissions are set to anything other than 777 for the board root directory the script will refuse to write them. 775 755 etc do not work. I'll dig around more and see if I can find anything as to why this is the case.
Thanks for your help guys.
That's likely because the web server runs under its own account, and you need to give others write access. It's more secure to setup Apache to change user to your user before running the scripts, but I don't know if lighty lets you do that, so you may be stuck with 777 (or 757, but that's silly) permissions.
>>165
It sure does, with execwrap or Apache's suexec. I've actually found lighty to be easier to configure than Apache for multi-user CGI scripting.