PHP socket error Permission denied on Linux
Check your php.ini settings for the parameter "safe_mode". It should be "Off".
Another problem could be caused by "selinux" that is blocking your mod_php (apache process) from connecting via socket. In this case:
# check if it's enabled:
/usr/sbin/sestatus -v
to add the connecting rule:
setsebool httpd_can_network_connect=1
If you want to disable it completely:
setenforce 0
Also, for debug reasons, disable any security module on apache/PHP. For example try to disable Suhosin if it's running.
Hkachhia
PHP Web Devloper Also known Jquery,Jquery mobile,Joomla,.net,C# CSS,JavaSCript #SOreadytohelp
Updated on June 26, 2022Comments
-
Hkachhia almost 2 years
I have installed php 5.4.13 on Linux 2.6.34.
I have make simple client/server page using socket but it did not work on it.
It give permission denied error
Below is my php code
if (false == ($socket = socket_create(AF_INET, SOCK_STREAM, 0))) // create socket { $stringData= date("D M d, Y g:i A"). " socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "<br>"; echo $stringData; } else { $timeout = array('sec'=>5,'usec'=>500000); socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,$timeout); if(false==($result = socket_connect($socket, $host, $port))) { $stringData= date("D M d, Y g:i A"). " socket_connect() failed: reason: " . socket_strerror(socket_last_error()) . "<br>"; echo $stringData; socket_close($socket); } else { $stringData= date("D M d, Y g:i A"). " Socket connected succefully <br>"; echo $stringData; if(false==(socket_write($socket, $command, strlen($command)))) { $stringData= date("D M d, Y g:i A"). " socket_write() failed: reason: " . socket_strerror(socket_last_error()) . "<br>"; echo $stringData; socket_close($socket); } else { if(false===($cmd = socket_read ($socket, 65536))) { //10060 for windows and 11 for linux if(10060!=socket_last_error() && 11!=socket_last_error()) { $stringData= date("D M d, Y g:i A"). " socket_read() failed: reason: " . socket_strerror(socket_last_error()) . "<br>"; echo $stringData; socket_close($socket); } switch(socket_select($r = array($socket), $w = array($socket), $f = array($socket), 5)) { case 2: $refused=1; break; } if($refused==1) { $stringData= date("D M d, Y g:i A"). " socket_read() failed: reason: Connection Refused <br>"; $ourFileHandle = fopen(SOCKET_LOG, 'a'); echo $stringData; socket_close($socket); } } else { echo "<pre>".html_entity_decode(print_r($cmd,true))."</pre>"; } } } }
Above code work fine on command prompt but it gives error Permission denied when page open from any browser.
Command of run php from terminal :
/usr/local/rootfs/php5/bin/php /www/socket_client.php