Re: PHP sockets enabled but socket_create() gives an error call to undefined function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux