[OpenVMS, SWS Apache, PHP5] Building PHP_RDB module for PHP5
PRODUCT: SWS Apache Version 2.1 SWS PHP Version 2.1 Oracle RDB/VMS Version 7.2
PREREQUISITE: MMS V3.8-2 or above
OP/SYS: OpenVMS IA64 Version 8.3-1H1
COMPONENT: Building PHP_RDB PHP5 loadable module
SOURCE: Philippe Vouters Fontainebleau/France
LOW-COST HIGH-TECH: http://techno-star.fr
OVERVIEW: The DCL procedure below builds and installs PHP_RDB.EXE into APACHE$COMMON:[PHP.EXTENSIONS].
*** CAUTION *** This sample procedure has been tested using HP C V7.2-022, SWS Apache V2.1, SWS PHP V2.1, Oracle RDB/VMS V7.2 on OpenVMS IA64 V8.3-1H1. However, we cannot guarantee its effectiveness because of the possibility of error in transmitting or implementing it. It is meant to be used as a template for writing your own procedure, and may require modification for use on your system.
DOWNLOADS: Download Wget zip file for OpenVMS from: http://antinode.info/dec/sw/wget.html Unzip it on your VMS node and define a wget symbol according to your OpenVMS processor architecture. If your Web accesses are through a Web proxy server, to use Wget, read: http://www.gnu.org/software/wget/manual/html_node/Proxies.html Alpha processors: Download SWS Apache V2.1 Source Code using the command: $ wget ftp://ftp.hp.com/pub/openvms/apache/CSWS-V21-1-ALPHA-SRC-KIT.BCK_SFX_AXPEXE Download SWS PHP V2.1 Source Code using the command: $ wget ftp://ftp.hp.com/pub/openvms/apache/PHPV21-SOURCE.BCK_SFX_AXPEXE Itanium processors: Download SWS Apache V2.1 Source Code using the command: $ wget ftp://ftp.hp.com/pub/openvms/apache/CSWS-V21-1-IA64-SRC-KIT.BCK_SFX_I64EXE Download SWS PHP V2.1 Source Code using the command: $ wget ftp://ftp.hp.com/pub/openvms/apache/PHPV21-SOURCE.BCK_SFX_I64EXE Alpha and Itanium processors: Download php4orardb.tar.gz from: $ wget http://vouters.dyndns.org/public/php4orardb.tar.gz Download gzip-1-2-4.zip using the command: $ wget http://vouters.dyndns.org/public/gzip-1-2-4.zip Download php_rdb_build.com using the command: $ wget http://vouters.dyndns.org/public/php_rdb_build.com Install the vmstar utility from the OpenVMS freeware CD.
PROCEDURE NOTES: This procedure assumes the disk where you perform the build has an ODS-5 file structure. Prior to everything, unzip gzip-1-2-4.zip. Then: $ set def [.gzip-1-2-4.vms] $ @makegzip.com So that the DCL procedure below completes without errors, define the following symbol prior to its execution: $ vmstar :== $disk:[path]vmstar.exe You do not need to run the downloaded .BCK_SFX_'arch'EXE. This is performed inside the downloaded DCL procedure. Instead you better ought to create a [.PHP_RDB] subdirectory and move all downloaded files but gzip-1-2-4.zip onto this new directory. Before you execute the php_rdb_build.com DCL procedure, your [.PHP_RDB] should contain on an Itanium OpenVMS server: $ dire Directory PHV:[PHV.PHP_RDB] CSWS-V21-1-I64-SRC-KIT.BCK_SFX_I64EXE;1 php4orardb^.tar.gz;1 PHPV21-SOURCE.BCK_SFX_I64EXE;1 php_rdb_build.com;1 Total of 4 files. Ensure your VMS process is granted the BYPASS privilege. This is so as some SWS PHP files protection as shipped by HP requires it. In summary, the necessary privileges to run this DCL procedure are: NETMBX, TMPMBX and BYPASS. To check the MMS version running on your system, issue the following command: $ analyze/image/inter sys$system:mms.exe Then: $ @php_rdb_build Prior to running the procedure created test_rdb.php code, ensure the following: $ tcpip sho service RDBSERVER/full Service: RDBSERVER State: Enabled Port: 611 Protocol: TCP Address: 0.0.0.0 Inactivity: 5 User_name: RDB$REMOTE72 Process: RDB72 Limit: 1 Active: 1 Peak: 1 File: SYS$SYSTEM:RDBSERVER.COM Flags: Listen Socket Opts: Rcheck Scheck Receive: 0 Send: 0 Log Opts: None File: not defined Security Reject msg: not defined Accept host: 0.0.0.0 Accept netw: 0.0.0.0 Check as well with a $ SHOW SYSTEM that the following processes are running: 2021E1D0 APACHE$SWS0000 LEF 6 11091 0 00:00:01.80 4690 3729 2021E1D1 APACHE$SWS0001 LEF 6 12800 0 00:00:01.92 5015 3714 2021E1D2 APACHE$SWS0002 LEF 6 11500 0 00:00:01.73 4342 3856 2021E1D3 APACHE$SWS0003 LEF 6 10817 0 00:00:01.46 3777 3612 2021E1D4 APACHE$SWS0004 LEF 6 11268 0 00:00:01.47 3771 3602 2021E1D5 APACHE$SWS0005 LEF 6 9743 0 00:00:01.31 3732 3602 2021E1DE APACHE$SWS0006 LEF 6 11695 0 00:00:01.50 3712 3622 2021E20C APACHE$SWS0007 LEF 6 13962 0 00:00:01.77 4477 3446 2021E20D APACHE$SWS0008 LEF 6 10347 0 00:00:01.57 3738 3628 2021DA0E APACHE$SWS0009 LEF 6 10817 0 00:00:01.72 4269 3884 If the above processes are not running, then execute the following command: $ @sys$startup:apache$startup 2021E414 sqlsrv_mon_0073 HIB 6 430 0 00:00:00.12 524 611 2021E415 RMU_DISP00873 HIB 6 77 0 00:00:00.02 484 495 2021E416 SQLSRV_DIS00373 HIB 6 4494 0 00:00:00.98 647 666 2021E417 RMU_SE009000173 HIB 6 229 0 00:00:00.06 712 479 2021E418 RMU_SE009000273 HIB 6 215 0 00:00:00.08 702 493 2021E419 RMU_SE009000373 HIB 5 215 0 00:00:00.05 701 482 2021E41A RMU_SE009000473 HIB 6 214 0 00:00:00.08 724 482 If the above processes are not running, then execute the following command: $ @SYS$COMMON:[SYS$STARTUP]SQLSRV$STARTUP73.COM
TROUBLESHOOTING ORACLE/RDB DATABASE ACCESSES: When these three processes started by $ @SYS$COMMON:[SYS$STARTUP]SQLSRV$STARTUP73.COM 20234336 sqlsrv_mon_0073 HIB 6 202 0 00:00:00.06 512 592 20234337 RMU_DISP00873 HIB 6 73 0 00:00:00.03 458 503 20234338 SQLSRV_DIS00373 HIB 6 74 0 00:00:00.04 506 460 are present, then $ define SQLSRV$CLIENT_LOG 7 $ php -c /apache$common/php/php.ini test_rdb.php produces in the current directory a file named CLIENT.LOG tracing all protocol exchanges between this SQLSRV client and the sqlsrv_mon_0073 process. This enables to track software malfunctions or to highlight hidden database accesses performed by run-time binaries. To see what you can expect to read inside CLIENT.LOG with SQLSRV$CLIENT_LOG defined to 7, refer to: ../public/CLIENT.LOG
REFERENCE(S): For SQLSRV$CLIENT_LOG logical mask value, refer to the document at this URL: http://download.oracle.com/otn_hosted_doc/rdb/pdf/sqscint.pdf