ALP Using PHP with ALP
The popular PHP WEB programming language can be used with ALP through the GateCGI ALP module. In other words you can configure it to run as a CGI processor for the .php files (or/and any other extension of your choice). A typical configuration entry will look like this:
{ php: (CG.newObjects.GateCGI)
  (string):Engine=\PHP\PHP.EXE "%s" %q
  (int)IsScriptEngine=1
  (int)Timeout=60
  (int)RequireAsynch=2
  (int)CheckThatFileExists=1
  (int)ShowErrOutputSample=0
} php;

This entry is in the ExtensionMap section of the alp.application file in your application (not the global/default alp.application located in the ALP binaries directory). The :Engine option is used in it (see the GateCGI configuration). This means that the referred PHP.EXE is in the subdirectory "PHP" of the current ALP site. In other words this configuration sample assumes the PHP processor binaries are located in the directory tree of your application's virtual site. This is very convenient if you want to be sure that your application will have its own copy of the PHP processor and will use it (no matter if other copies exist/are installed somewhere on the PC). Thus this is probably the most convenient configuration for wide redistribution. (The tests were made with PHP 4.x).

However the above is not enough! You need to configure PHP too. As a security precaution PHP 4.x included some additional requirements to the WEB servers and seems the only one that fits in the ALP environment is the configuration setting:

doc_root=<drive>:\<path to the ALP site>\

in the php.ini file.

Note that you should create this file from scratch. In fact if it contains only this setting it will be enough to start up. Better add additional settings one by one and see if everything is ok. As the default behavior of the CGI PHP for Windows includes the most of the widely needed features you will rarely need to adjust something more.

The above is a bit inconvenient if you intend autorun or something close to it as scenario. You can download a deployment sample from http://www.newobjects.com/product.asp?Category=57&Story=310 where the setup generates the php.ini file entry to point to the application install directory.

PHP documentation mentions some other opportunities to achieve the same result in more dynamic fashion. Unfortunately the tests show that they are not available or are buggy in the Windows CGI version. May be an appeal to the PHP community will have effect and they will be corrected. They are environment variable that plays the same role and PHP.EXE command line parameter. If they were functional it would be possible to run PHP without need to install it and generate php.ini file. Apparently this will allow pure autorun applications to be built.

Notes: Portability of the application depends also on the extended/external features used. Do not forget to evaluate them and see what changes/adjustments you need to do. For example a PHP application that uses MS Access database will be able to run much easily through the PHP's ODBC support (in fact this will not need any adjustments as long as no physical paths are encoded in the PHP files) than an application that uses MySQL which will need installation (thus it will require additional steps in the installation process and  is generally not suitable for autoruns).

newObjects Copyright 2001-2006 newObjects [ ]