[PHP] What needs to configure to run php exec for socket connection?
Hi, I have a client.php which calls an external python socket client program exec(Client.py), the Client.py calls sockobj.connect((localhost, 6)) 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, 6)): 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 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] What needs to configure to run php exec for socket connection?
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, 6)) 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, 6)): 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. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] What needs to configure to run php exec for socket connection?
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, 6)) 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, 6)): 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. Thanks, Ash http://www.ashleysheridan.co.uk
Re: [PHP] What needs to configure to run php exec for socket connection?
On 1/27/13, tamouse mailing lists tamouse.li...@gmail.com 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, 6)) 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, 6)): 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. I knew it was a bad example to run external python, so I tried to run socket connection directly from the php file client.php, it got the same error socket_connect() failed. Reason: () Permission denied at $result = socket_connect($socket, localhost, 6). Once again, it was fine to run the client.php from the command line. I can feel something was missing either in php or apache 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. Forget about client.py, and all files are with 755 access permission. It is not my first time to program and run php, but it is my first time to run php file calling socket connection. Something was not quite right here. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] What needs to configure to run php exec for socket connection?
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, 6)) 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, 6)): 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 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] What needs to configure to run php exec for socket connection?
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, 6)) 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, 6)): 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