FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Do I still CLI version of PHP
Show: Today's Messages :: Polls :: Message Navigator
Switch to threaded view of this topic Create a new topic Submit Reply
Do I still CLI version of PHP [message #177081] Sun, 19 February 2012 07:13 Go to next message
sl@exabyte is currently offline  sl@exabyte
Messages: 16
Registered: March 2011
Karma: 0
Junior Member
On my webserver:
*PHP version is 5.3.6
*server API: CGI/FastCGI

I need to run a socket server. A sample snippet is below:

#!/usr/local/bin/php -q

<?php

//file name: server_socket.php

......

while (true) { // Loop continuously

// Setup clients listen socket for reading

$read[0] = $sock;

$ready = socket_select($read,null,null,null);

// If a client is trying to write - handle it now

for ($i = 0; $i < $max_clients; $i++) // for each client

{

if (in_array($client[$i]['sock'] , $read))

{

$input = socket_read($client[$i]['sock'] , 1024);

if ($input == null)

unset($client[$i]); // Zero length string meaning disconnected

$n = trim($input);

if ($input == 'exit') {

socket_close($client[$i]['sock']); // requested disconnect

} elseif ($input) {

// strip white spaces and write back to user

$output = ereg_replace("[ \t\n\r]","",$input).chr(0);

socket_write($client[$i]['sock'],$output);

}

} else {

socket_close($client[$i]['sock']);

unset($client[$i]);

}

}

} // end while

socket_close($sock);

?>



Questions:

1. Do still need the line '#!/usr/local/bin/php -q' is I call the file via
http, eg http://domain/server_socket.php, because the program is looping ?

2. If the answer to Q1is yes, how do I run my server program (I think the
version on my server is CGI) ?

Thanks
Re: Do I still CLI version of PHP [message #177082 is a reply to message #177081] Sun, 19 February 2012 09:05 Go to previous messageGo to next message
J.O. Aho is currently offline  J.O. Aho
Messages: 194
Registered: September 2010
Karma: 0
Senior Member
sl@exabyte wrote:

> 1. Do still need the line '#!/usr/local/bin/php -q' is I call the file via
> http, eg http://domain/server_socket.php, because the program is looping ?

No, as the web service will be calling the php interpreter, but as soon as
you leave the "page" with your browser the script will die.

> 2. If the answer to Q1is yes, how do I run my server program (I think the
> version on my server is CGI) ?

You need to have shell access and run the script in background or in a screen
(or rewrite it so it can be run as a daemon).


--

//Aho
Re: Do I still CLI version of PHP [message #177083 is a reply to message #177081] Sun, 19 February 2012 12:26 Go to previous message
M. Strobel is currently offline  M. Strobel
Messages: 386
Registered: December 2011
Karma: 0
Senior Member
Am 19.02.2012 08:13, schrieb sl@exabyte:
> On my webserver:
> *PHP version is 5.3.6
> *server API: CGI/FastCGI
>
> I need to run a socket server. A sample snippet is below:
>
> #!/usr/local/bin/php -q
>
> <?php
>
> //file name: server_socket.php
>
> .....
>
> while (true) { // Loop continuously
>
> // Setup clients listen socket for reading
>
> $read[0] = $sock;
>
---cut

>
>
> Questions:
>
> 1. Do still need the line '#!/usr/local/bin/php -q' is I call the file via
> http, eg http://domain/server_socket.php, because the program is looping ?
>
> 2. If the answer to Q1is yes, how do I run my server program (I think the
> version on my server is CGI) ?
>
> Thanks

AFAIK you would never run a service, especially not a PHP service, in the web server.

In the web server normal operation is Request -> Script start -> script output ->
script end ->end of request. Long running scripts are abuse.

Either run your script as true daemon, or use a "ad hoc daemon" solution like running
your script in "screen", or starting it with "nohup".

/Str.
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Mail() function not working in PHP5
Next Topic: photo gallery
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Mon Nov 25 20:47:14 GMT 2024

Total time taken to generate the page: 0.05226 seconds