On Nov 2, 2010, at 2:50 PM, Suyash R wrote: > My admin disagrees and I have questions too. > > The phpinfo() fuction displays that sockets have been enabled. If > extension=sockets.so is an alternate way to enable sockets, then why should > this be done twice? > > Suyash Ramineni > On Mon, Nov 1, 2010 at 2:35 PM, Nicholas Kell <nick@xxxxxxxxxxxxxxxx> wrote: > >> >> On Nov 1, 2010, at 1:12 PM, Suyash R wrote: >> >>> No, sockets.so in not included in any of the machines php.ini file. >> However, I found that Linux machine's php.ini doesn't include sockets.so and >> sockets work fine on it but don't work on the Solaris machine. >>> >>> Is it required to be included only in Solaris? >>> >>> On Mon, Nov 1, 2010 at 1:41 PM, Nicholas Kell <nick@xxxxxxxxxxxxxxxx> >> wrote: >>> >>> On Nov 1, 2010, at 12:08 PM, crrrrrrr errrrrrr wrote: >>> >>>> Yes, the http ( Apache user) has rl ( read permission) on the php file >> with >>>> sockets code in it. I think write access is unnecessary for Apache >> user. >>>> >>>> On Mon, Nov 1, 2010 at 12:50 PM, Nicholas Kell <nick@xxxxxxxxxxxxxxxx >>> wrote: >>>> >>>>> >>>>> On Nov 1, 2010, at 11:44 AM, crrrrrrr errrrrrr wrote: >>>>> >>>>>> Yes, the phpinfo() shows that sockets are enabled in both machines. >>>>>> On Mon, Nov 1, 2010 at 12:43 PM, Bastien Koert <phpster@xxxxxxxxx> >>>>> wrote: >>>>>> >>>>>>> On Mon, Nov 1, 2010 at 12:40 PM, crrrrrrr errrrrrr < >> r.suyash@xxxxxxxxx> >>>>>>> wrote: >>>>>>>> Hello, >>>>>>>> >>>>>>>> I was trying to create a socket connection from a Solaris machine >> to a >>>>>>> Red >>>>>>>> Hat machine to get the PATH in Red Hat machine remotely on Solaris >>>>>>> machine >>>>>>>> and display it to the user. >>>>>>>> >>>>>>>> We have a PHP 5.1.6 installation on a Linux server (Apache) and PHP >>>>>>> 5.2.6. >>>>>>>> on a Unix(Solaris) server(Apache) . The PHP version on Solaris is >>>>>>> compiled >>>>>>>> with --enable sockets and phpinfo() displays that the sockets are >>>>>>> enabled. >>>>>>>> In spite of this we get the following error when using this piece >> of >>>>> code >>>>>>>> from the Solaris machine. >>>>>>>> >>>>>>>> >>>>>>>> The error: >>>>>>>> >>>>>>>> PHP Fatal error: Call to undefined function socket_create() in >> /XXX/ >>>>>>>> 5server.php< >>>>>>> http://cad.njit.edu/u/d/x/dx8/public_html/clunk/swsearch5server.php >>> >>>>>>>> on >>>>>>>> line 21 >>>>>>>> >>>>>>>> The code; >>>>>>>> >>>>>>>> <?php >>>>>>>> >>>>>>>> set_time_limit(0); >>>>>>>> >>>>>>>> //ip of the server >>>>>>>> $addr = 'xxx.xxx.xxx.xxx'; >>>>>>>> >>>>>>>> //port of the server >>>>>>>> $port = 2xxx; >>>>>>>> >>>>>>>> //create a socket >>>>>>>> $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); /* This is >> line >>>>> no >>>>>>> 21 >>>>>>>> in the code. i have ommitted a few header comments */ >>>>>>>> >>>>>>>> //bind this socket with the above ip and port >>>>>>>> $ret = socket_bind($sock, $addr, $port); >>>>>>>> >>>>>>>> do { >>>>>>>> $ret = socket_listen($sock, 10); >>>>>>>> $msgSock = socket_accept($sock); >>>>>>>> $buf = socket_read($msgSock, 1024); >>>>>>>> >>>>>>>> >>>>>>>> Please let me know if you need any further details I might have >> missed. >>>>>>>> >>>>>>>> Thank you. >>>>>>>> >>>>>>>> Suyash Ramineni >>>>>>>> >>>>>>> >>>>>>> >>>>>>> check phpinfo() to see if the sockets have been activated in the ini >>>>> file. >>>>>>> -- >>>>>>> >>>>>>> Bastien >>>>>>> >>>>>>> Cat, the other other white meat >>>>>>> >>>>> >>>>> >>>>> I think that I messed up sending my last email, I apologize. >>>>> >>>>> Is the user that Apache is running under configured for the proper >> read >>>>> write access to the socket file? >>>>> >>>>> >>>>> -- >>>>> PHP General Mailing List (http://www.php.net/) >>>>> To unsubscribe, visit: http://www.php.net/unsub.php >>>>> >>>>> >>> >>> Oops, included in php.ini, not the Apache config. >>> >>> >>> -- >>> PHP General Mailing List (http://www.php.net/) >>> To unsubscribe, visit: http://www.php.net/unsub.php >>> >>> >> >> >> Since you complied with --enable-sockets, you shouldn't even need >> sockets.so to be dynamically loaded. But at this point, it is something that >> I would try anyway. >> >> Add: >> >> extension=sockets.so >> >> in your php.ini file just to see if it brings the function to light. >> >> Your Linux installs I am sure were compiled with it in it. Especially if it >> is a dist package. >> >> The absence of the function is telling me that PHP is not compiled with >> --enable-sockets. If it was compiled in properly, you would be getting >> different errors. I am not saying that you didn't do it. Something may have >> happened in the process. >> >> By adding the sockets.so, you are adding the extension dynamically, incase >> you were mistaken by the compile or incase there was some sort of anomaly >> that the rest of PHP compiled but the sockets section was botched. Solaris >> is (I guess) known to be lacking when it comes to C compilers (at least >> according to the Unix geeks that I sit next to at work). But it seems to me >> that it would all have failed or it would have all worked. So did you try it? http://bytes.com/topic/php/answers/483538-php-undefined-functon-socket_create