I’m not familiar with the script in question, but I’m guess that the error lies with the directory path you provided.
I think that you’re saying that you have set up a a CGI bin in your home directory - so that the files are not publicly accessable, yes? If that’s the case, your script will probably be looking for a server path for "/cgi-bin/cgi/admin/setup.cgi"
If this is all true, your path should look something like /home/username/cgi-bin/cgi/admin/setup.cgi
On a side note, you’re right - there’s no cgi bin required. The webserver (apache) has the job of deciding what files are html, cgi, php, etc. Basically, it looks at the extension of the file, “sees” whatever.cgi and says, “ok - I need to parse this CGI file”. This accomplishes the exact same thing as a cgi bin, without requiring your to put all of your cgi scripts into one folder.
As to the question of needing to have your cgi-bin not public accessable, that’s a decision you need to make based on the script and the kind of security you need. For many scripts, it just fine to have your cgi files be in the public accessable area, and my guess is that the same goes for you.