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.