On Sun, 2013-01-27 at 21:40 +1100, jupiter wrote:

> On 1/27/13, Ashley Sheridan <a...@ashleysheridan.co.uk> wrote:
> > On Sun, 2013-01-27 at 03:45 -0600, tamouse mailing lists wrote:
> >
> >> On Sun, Jan 27, 2013 at 3:10 AM, jupiter <jupiter....@gmail.com> wrote:
> >> > Hi,
> >> >
> >> > I  have a client.php which calls an external python socket client
> >> > program exec("Client.py"), the Client.py calls
> >> > sockobj.connect(("localhost", 60000)) to connect socket.
> >> >
> >> > If I run the client.php from Linux command line $ ./client.php, it
> >> > works find, no problem at all.
> >> >
> >> > But when I run it from web page http://localhost/client.php, it could
> >> > not connect to socket at following exception in python
> >> > sockobj.connect(("localhost", 60000)):
> >> >
> >> > "sockobj.connect Errno 13 Permission denied"
> >> >
> >> > Why it can run from command line, but cannot make socket connection
> >> > from web? Does it need some kind of configuration in php or apache?
> >> > Appreciate any tips and clues.
> >> >
> >> > Thank you.
> >> >
> >> > Kind regards.
> >> > I am puzzled by
> >>
> >> First question: why use a separate program and language to call a
> >> socket? PHP has two ways of doing it, using the Socket extension and
> >> using the Stream extension. The Stream extension is a little nicer as
> >> you just use standard PHP file functions on it.
> >>
> >> To look here, though, you might want to look at the permissions on
> >> client.py to make sure it as well as the requisite paths to get to the
> >> script are readable and executable by the user running your webserver,
> >> or alternatively, your php scripts if running something like fcgi.
> >>
> >
> >
> > I'll take a bet that the Apache server is running as a different user
> > from your login, and doesn't have permissions to open sockets. You could
> > either give the Apache user permissions, or put the exec call as part of
> > an argument of sudo.
> 
> Well, it is apache for both user id and group id if you are running
> from web server. The problem is not which user account, I can run it
> without any problems from command line in any user accounts, the
> problem is it got permission denied when you run from web server.
> 
> > Thanks,
> > Ash
> > http://www.ashleysheridan.co.uk
> >
> >
> >


So you've logged on/sudo'd as the Apache user and the command runs?

Thanks,
Ash
http://www.ashleysheridan.co.uk


Reply via email to