This is a port of PHP V5.3.28 for VMS and the files herein are intended as a replacement for the files installed by the HP CSWS_PHP V2.x kit. Note that you should probably delete all of the PHP_*.EXE files from PHP_ROOT:[EXTENSIONS] before copying the files from this kit in order to prevent trying to use any of them with this kit. They are php 5.2, not 5.3, and will not work with this kit. The following VMS-specific changes have been made compared to previous kits: This kit follows the default Unix model of building everything into a single image. There are no longer any dynamically loaded modules, everything is built into PHPSHR. Make certain that your PHP.INI file contains no extension= statements when using this kit. The OpenVMS extension now uses DECC$TRANSLATE_VMS when translating VMS names to Unix. Among other things, this means the filename being translated does not need to exist. Note that translations in the opposite direction still require the filename to exist. The mcrypt_create_iv function now recognizes MCRYPT_DEV_RANDOM and MCRYPT_DEV_URANDOM as valid sources. An updated PHP_OPENVMS.PHP file is included which provides examples of all the interfaces to VMS that have been implemented so far. PHP.EXE and PHP_CGI.EXE are command line interfaces to PHP. PHP.EXE implements the CLI interface and makes use of Readline if invoked with the -a switch. PHP_CGI.EXE implements the CGI interface. The PHP.EXE, PHP_CGI.EXE, and PHPWASD.EXE executables define the following DECC feature logicals in order to make the C environment reflect what PHP expects: DECC$ARGV_PARSE_STYLE DECC$EFS_CHARSET DECC$EFS_CASE_SPECIAL DECC$ENABLE_GETENV_CACHE DECC$POSIX_SEEK_STREAM_FILE DECC$FILE_SHARING DECC$STDIO_CTX_EOL DECC$ACL_ACCESS_CHECK DECC$ALLOW_REMOVE_OPEN_FILES DECC$READDIR_DROPDOTNOTYPE The same feature logicals should be set in the appropriate command file for Apache as well. Other feature logicals, e.g. DECC$GLOB_UNIX_STYLE, might need to be set depending on local requirements. Remember, most PHP packages expects just about everything to use UNIX syntax, not VMS, for file specifications. If you make use of the $_ENV variable (not common) it will now contain a copy of your entire environment, i.e. DECC environment variables, DCL symbols, and the equivalent of the output of the SHOW LOGICAL command. $_ENV is populated only if the INI variable "variables_order" contains an E. Try the following for fun: $ php -d variables_order=E -r "print_r($_ENV);" For mysql users, note that PHP 5.3 uses the mysqlnd library and no longer depends on any mysql client libraries. This makes the PHP interface to MySQL more stable than any previous port. For example, phpmyadmin is now rock solid whether it is managing a MySQL database on the local host or on another host. If you use Multinet and a MySQL server on the local host, setting the kernel variable LO_REDUCEBY to zero will significantly improve your MySQL performance. To use the OPENSSL extension (or anything that calls it, such as FTP) you must define the logical name OPENSSL_CONF to point to your OpenSSL configuration file. A typical value to use on VMS systems would be to assign it to SSL$ROOT:[000000]OPENSSL.CNF (assuming you have the HP SSL kit installed, which is true for all recent versions of VMS). -------- For WASD: !use HT_ROOT instead of WASD_ROOT if you have an older version of WASD $ COPY PHP.EXE,PHP_CGI.EXE,PHPSHR.EXE WASD_ROOT:[PHP.IA64.BIN]*.*; $ DELETE WASD_ROOT:[PHP.IA64.EXTENSIONS]PHP_*.EXE;* $ COPY PHPWASD.EXE CGI_EXE:*.*; ! or wherever your map file references it Note: because the interface structure used by PHPWASD to talk to PHP changed between PHP 5.2 and 5.3, you must use this copy of PHPWASD.EXE. The one distributed in the PHPWASD kit will not work. -------- For APACHE: $ COPY PHP.EXE,PHP_CGI.EXE,PHPSHR.EXE APACHE$COMMON:[PHP.BIN]*.*; $ DELETE APACHE$COMMON:[PHP.EXTENSIONS]PHP_*.EXE;* $ COPY MOD_PHP_APACHE*.EXE APACHE$COMMON:[MODULES]*.*; -------- Final notes: Make sure the copied files end up with the same file protections as the files that were originally there. If your web server was running at the time you copied the files, you will likely need to issue the appropriate restart command to the web server to eliminate any cached PHP engines already running. I have included a copy of the PHP.INI files from the PHP sources in case you need a more up-to-date copy of this file.