Jump to content

tekaweni

New Members
  • Posts

    4
  • Joined

  • Last visited

    Never

Profile Information

  • Gender
    Not Telling

tekaweni's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. Report back: Ok I have php working as cgi from my server (written in c). I could find so little documentation on this that my solution is inevitably a hack. Here's how my server handles php requests, using test.php?argone=11111&argtwo=22222 as an example - Set an environment variable "phpvars" with the name of the script you want to call, plus the arguments passed from the browser. For example the example string would create phpvars="php=test.php&argone=11111&argtwo=22222" Create two pipes, hooking your server's stdout to the stdin end of the php binary you're going to spawn and your stdin to the stdout of the other's stdin. (see http://msdn2.microsoft.com/en-us/library/ms682499(VS.85).aspx for a surprisingly decent howto) Call the php binary (CreateProcess) giving it the name of a preprocessor script (see below). This script creates superglobals from "phpvars" and then runs the script (test.php) you ultimately wanted to run. All echos are fed back to the server's stdin, etc etc. Like I said, a hack. I haven't bothered to set $_GET's from the environment var and I dont pass any $_POST's through stdin because right now I dont need em, but that would be trivial to add. Here's a basic preprocessor script with no error checking.... <?php // Set up the superglobals $fileToLoad = ''; $envs = getenv('phpvars'); $env = explode("&", $envs); for ($c = 0; $c < sizeof($env); $c++) { $envVar = explode("=", $env[$c]); $_REQUEST[$envVar[0]] = $envVar[1]; if ($envVar[0] == 'php') $fileToLoad = $envVar[1]; } if ($fileToLoad != '') include($fileToLoad); ?>
  2. Thanks Thorpe and Laffin, thats a big help. So PHP source is publicly available - and Apache too I see, for calling semantics - I hadn't realised that either would be. Ultimately I'll be writing to load php as a module (dll) rather than cgi as its quicker and cleaner. I'll be happy to share my experiences (and code) with anyone who may be interested. Cheers Kim
  3. Sorry, badly phrased.... I meant I need to actually code the hooks (c/c++) into the web server, and need to know how variables like superglobals are passed to php in both cgi and module modes. Stdin/stdout? Environment variables? Has any of you done similar?
  4. Hi all, theres a lot of info about how to configure php as a module, but my scenario is one where I have to implement php from scratch into a web server. Can anyone point me in the right direction? Thanks for all input!
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.