On Mon, 23 Nov 2009, Ken Irwin wrote:

Hi Joe,

That's really helpful, thanks.
Actually finding out what the error message is nice:

HTTP Error : 500 Can't connect to www.npr.org:80 (connect: Permission denied)

I've tried this with a few websites and always get the same error, which tells me that the problem is on my server side. Any idea what I can change so I don't get a permission-denied rejection? I'm not even sure what system I should be looking at.


I'm not even sure what could be causing the permission denied.
Normally, I get that response when the port's not open, or there's a firewall, and I can't think of a time when it'd work from the command line, but not from a CGI.

(well, okay, one, but it's a really odd case, that wouldn't happen for most people -- if you edit the web pages from a different machine than actually serves the pages, they might have the IP of the server blocked from being able to go outbound as a security privilege. Most security folks wouldn't even think about this, but I used to work with a former Wittenberg IT person when I worked on Fark, and Mike came up with some *very* interesting solutions to things, and one of 'em was adding special IP pools so our ISP's customers were served special messages by being routed through an invisible proxy that'd serve alternate pages, such as informing them that they were late in paying their bills)

They could also be screwing with DNS, but I can think of a reason anyone would do it, and again it'd be per-machine, not per-user.

Anyway, try running this from both command line and via a CGI, and see if their output matches:

        #!/bin/perl --
        print "Content-type: text/plain\n\n";
        print `uname -a`,"\n\n", `ifconfig -a`;
        __END__

If you have to connecct using one name to make modifications, but a different name for the webserver, that could be a sign, as well.



I tried Vishwam's suggestion of granting 777 permissions to both the file and the directory and I get the same response.

Um ... you should _never_ need 777. (occassionally 1777, but I can't think of a time when 0777 is a good idea.)

777 = executable, readable and writable by _everyone_.
755 = only writable to you.

(1777 has the 'sticky' bit set, which allows the /tmp directory to be written to, but you can't go deleting other people's files like you could if it were 0777).


Is there some Apache setting someplace that says "hey, don't you go making web calls 
while I'm in charge"?
(This is a Fedora server running Apache, btw).


It might be possible under suExec, but I'm not that familiar with it, as I used CGIwrap when I dealt with locking down multi-user systems. (and to the best of my knowledge, it's not possible with CGIwrap).


...


And if all of this fails, you might want to consider asking on either:

        http://stackoverflow.com/
        http://serverfault.com/

(just ask on one; odds are, you'll ask on one, and they'll decide that it's more appropriate on the other one.)


-Joe

Reply via email to