components/php-5_3/Solaris/configure-sun-webserver
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Mon, 11 Mar 2013 10:38:09 -0700
branchs11-update
changeset 2520 ceec631e74d1
parent 846 fe258446a1ae
permissions -rw-r--r--
Close of build 10.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
846
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     1
#!/bin/bash
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     2
#
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     4
#
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     8
#
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    13
#
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    19
#
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    21
#
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    22
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    23
#
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    24
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    25
# Helper functions
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    26
function usage {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    27
    echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    28
    echo "Usage: This script will update a given Web Server 7 instance's configuration"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    29
    echo "       files to be able to execute PHP scripts."
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    30
    echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    31
    echo "This script recognizes following arguments:"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    32
    echo " --installroot  : Top level Sun Web Server 7 installation location. "
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    33
    echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    34
    echo " --instancename : Name of Web Server instance (https-php) which should"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    35
    echo "                  be configured to execute PHP scripts. "
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    36
    echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    37
    echo " --sapi         : How should PHP runtime be loaded within Web Server 7"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    38
    echo "                  fastcgi (Default) or NSAPI (Optional). "
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    39
    echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    40
    exit 1
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    41
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    42
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    43
function parse_arguments
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    44
{
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    45
    until [ $# -eq 0 ]
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    46
    do 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    47
        cur_arg=$1
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    48
        case $cur_arg in 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    49
            --installroot=*)
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    50
                install_root="`echo $cur_arg | cut -d= -f2-`"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    51
                ;;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    52
            --instancename=*)
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    53
                instance_name="`echo $cur_arg | cut -d= -f2-`"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    54
                ;;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    55
            --sapi=*)
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    56
                sapi="`echo $cur_arg | cut -d= -f2-`"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    57
                ;;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    58
            *)
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    59
                usage
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    60
                ;;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    61
        esac
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    62
        shift;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    63
    done
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    64
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    65
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    66
function try_interactive
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    67
{
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    68
    # Get user response on Web Server 7 installation location and instance name.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    69
    echo -n "Enter your Web Server installation location : "
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    70
    read input
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    71
    if [ -n "$input" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    72
        install_root="$input"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    73
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    74
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    75
    echo -n "Enter your Web Server instance name to configure with PHP runtime: "
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    76
    read input
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    77
    if [ -n "$input" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    78
        instance_name="$input"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    79
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    80
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    81
	while [ 0 ]; do
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    82
		echo -n "How you would like Sun Web Server 7 to load PHP engine (fastcgi|nsapi) [fastcgi]: "
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    83
		read input
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    84
		if [ -z "$input" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    85
			sapi="fastcgi"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    86
		else
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    87
			sapi=$input
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    88
		fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    89
		if [ -n "$sapi" ] && [ $sapi = "fastcgi" -o $sapi = "nsapi" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    90
			break
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    91
		fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    92
	done
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    93
    return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    94
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    95
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    96
function validate_arguments
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    97
{
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    98
    if [ ! -d "$install_root" ] || [ ! -x "$install_root/lib/webservd" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    99
        echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   100
        echo "Warning: Unable to find valid Web Server installation under $install_root"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   101
        echo "Please try again by providing a valid Web Server 7 installation location."
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   102
        usage
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   103
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   104
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   105
    if [ ! -d "$install_root" ] || [ ! -x "$install_root/lib/webservd" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   106
        echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   107
        echo "Warning: Unable to find valid Web Server installation under $install_root"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   108
        echo "Please try again by providing a valid Web Server 7 installation location."
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   109
        usage
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   110
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   111
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   112
    if [ -n "$sapi" ] && [ $sapi != "fastcgi" -a $sapi != "nsapi" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   113
        echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   114
        echo "Error: Invalid SAPI option is provided.Valid SAPI argument is either 'fastcgi' or 'nsapi'"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   115
        echo "Please try again by providing a valid SAPI as argument."
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   116
        usage
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   117
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   118
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   119
    return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   120
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   121
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   122
function generate_tempfile
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   123
{
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   124
    template="tmp.XXXXXXXXXX";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   125
    if [ -x "/bin/mktemp" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   126
        temp_file="`/bin/mktemp`"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   127
    elif [ -x "/usr/bin/mktemp" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   128
        temp_file="`/usr/bin/mktemp`"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   129
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   130
    if [ ! -f $temp_file ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   131
        temp_file="/tmp/ws7_php_configure.$$"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   132
        touch $temp_file 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   133
        chmod 600 $temp_file
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   134
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   135
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   136
    return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   137
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   138
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   139
function generate_configure
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   140
{
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   141
	if [ "$OSNAME" = "SunOS" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   142
		tail +${perl_start_line} $PROGRAM_NAME > $temp_file
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   143
	elif [ "$OSNAME" = "Linux" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   144
        start_line=${perl_start_line}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   145
        total_line=`wc -l $PROGRAM_NAME | awk '{print $1}' 2>/dev/null`
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   146
        few_lines=$(($total_line - $start_line))
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   147
		tail -${few_lines} $PROGRAM_NAME > $temp_file
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   148
	fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   149
    chmod 500 $temp_file
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   150
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   151
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   152
function invoke_configure
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   153
{
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   154
    # Setup environment 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   155
    if [ -f "$install_root/lib/wsenv" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   156
        source  $install_root/lib/wsenv
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   157
        if [ ! -d "${WS_INSTANCEROOT}/${instance_name}" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   158
            echo "Warning: Unable to find instance:'$instance_name' under $WS_INSTANCEROOT"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   159
            echo "         Please try again by providing a valid instance name."
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   160
            exit 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   161
        fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   162
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   163
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   164
	# Special case, if it is NSAPI
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   165
	if [ "$sapi" = "nsapi" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   166
        mkdir -p "$install_root/plugins/webstack-php"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   167
        ln -sf "<<INSTALL_DIR>>/nsapi/libphp5.so" "$install_root/plugins/webstack-php/libphp5.so"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   168
	fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   169
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   170
    # Invoke script to configure PHP runtime.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   171
	if [ "$sapi" = "nsapi" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   172
		PHPROOT="<<INSTALL_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   173
		PHPCONFROOT="<<NSAPI_CONF_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   174
		PHPCONFROOT_SCANDIR="<<ZTS_MODULES_CONF_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   175
	else
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   176
		PHPROOT="<<INSTALL_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   177
		PHPCONFROOT="<<CONF_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   178
		PHPCONFROOT_SCANDIR="<<MODULES_CONF_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   179
	fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   180
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   181
    ${WS_PERL}/perl -I ${WS_PERL} -I ${WS_PERL}/lib -I ${WS_PERL}/lib/site_perl $temp_file  \
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   182
	-installroot=${WS_INSTALLROOT} -instanceroot=${WS_INSTANCEROOT} -instancename=$instance_name \
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   183
	-sapi=$sapi -phproot="${PHPROOT}" \
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   184
	-phpconfroot="${PHPCONFROOT}" -phpmodulesconfroot="${PHPCONFROOT_SCANDIR}"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   185
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   186
	status=$?
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   187
	if [ $status -eq 0 ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   188
		if [ -f $temp_file ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   189
			rm -f $temp_file
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   190
		fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   191
    elif [ $status -ne 0 ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   192
        echo "Unable to successfully setup PHP within Web Server 7"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   193
        exit 1
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   194
    fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   195
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   196
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   197
#-------------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   198
#####
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   199
# Main
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   200
#####
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   201
PATH=/bin:/usr/bin:/usr/gnu/bin:/usr/sfw/bin
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   202
export PATH
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   203
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   204
# Global variables.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   205
OSNAME="`uname -s`"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   206
PHPROOT="<<INSTALL_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   207
PHPCONFROOT="<<CONF_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   208
PHPCONFROOT_SCANDIR="<<MODULES_CONF_DIR>>"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   209
PROGRAM_NAME="$0"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   210
install_root=""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   211
instance_name=""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   212
sapi="fastcgi"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   213
temp_file=""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   214
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   215
# This below line need to point to the start of embedded perl script.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   216
perl_start_line=245
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   217
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   218
echo "This script will update a given Web Server 7 instance's configuration"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   219
echo "files to be able to execute PHP scripts."
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   220
echo ""
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   221
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   222
# Verify if the program is called with necessary arguments. 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   223
if [ -n "$1" ]; then
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   224
    parse_arguments $@;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   225
else
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   226
    # Invoked with no arguments. Try interactive.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   227
    try_interactive
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   228
fi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   229
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   230
validate_arguments
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   231
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   232
generate_tempfile
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   233
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   234
generate_configure
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   235
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   236
invoke_configure
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   237
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   238
exit 0
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   239
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   240
#---------------------EOF-------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   241
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   242
# Helper Script to configure PHP runtime environment within Web Server 7
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   243
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   244
use XML::Simple;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   245
use File::Basename;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   246
use English;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   247
use strict;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   248
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   249
our $INSTANCE_ROOT = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   250
our $INSTALL_ROOT = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   251
our $INSTANCE_NAME = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   252
our $PHP_ROOT = "";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   253
our $PHP_CONF_ROOT = "";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   254
our $PHP_MODULES_CONF_ROOT = "";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   255
our $SAPI = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   256
our $MIME_TYPES_FILES = [];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   257
our $OBJ_CONF_FILES = [];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   258
our $SERVER_64BIT_MODE = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   259
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   260
my $phpSoName;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   261
if (isWindows()) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   262
   $phpSoName = "php5nsapi.dll";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   263
} else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   264
   $phpSoName = "libphp5.so";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   265
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   266
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   267
my $fastCGISoName;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   268
if (isWindows()) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   269
    $fastCGISoName = "fastcgi.dll";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   270
} else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   271
    $fastCGISoName = "libfastcgi.so";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   272
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   273
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   274
main();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   275
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   276
sub main {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   277
    getCommandOptions();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   278
    processServerXml();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   279
    checkFilesWritable();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   280
    processMagnusConf();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   281
    processObjConf();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   282
    processMimeTypes();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   283
    printResult();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   284
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   285
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   286
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   287
# getCommandOptions
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   288
# Process the command line options
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   289
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   290
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   291
sub getCommandOptions {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   292
    for (my $counter=0; $#ARGV >= $counter; $counter++) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   293
        my $argument    = $ARGV[$counter];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   294
        
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   295
        if ($argument =~ /^-installroot=/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   296
            $INSTALL_ROOT = substr($argument, length("-installroot="));
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   297
        }        
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   298
        if ($argument =~ /^-instanceroot=/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   299
            $INSTANCE_ROOT = substr($argument, length("-instanceroot="));
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   300
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   301
        if ($argument =~ /^-phproot=/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   302
            $PHP_ROOT = substr($argument, length("-phproot="));
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   303
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   304
        if ($argument =~ /^-phpconfroot=/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   305
            $PHP_CONF_ROOT = substr($argument, length("-phpconfroot="));
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   306
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   307
        if ($argument =~ /^-phpmodulesconfroot=/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   308
            $PHP_MODULES_CONF_ROOT = substr($argument, length("-phpmodulesconfroot="));
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   309
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   310
        if ($argument =~ /^-instancename=/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   311
            $INSTANCE_NAME = substr($argument, length("-instancename="));
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   312
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   313
        if ($argument =~ /^-sapi=/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   314
            $SAPI = substr($argument, length("-sapi="));
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   315
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   316
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   317
    if ((!defined $PHP_CONF_ROOT) || ($PHP_CONF_ROOT eq "")) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   318
        $PHP_CONF_ROOT = $PHP_ROOT;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   319
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   320
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   321
    if ((not defined $INSTANCE_NAME) or ($INSTANCE_NAME !~ m/\S+/)) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   322
        printUsage();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   323
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   324
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   325
    exit 1 unless defined isValidFile("$INSTANCE_ROOT/$INSTANCE_NAME/config");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   326
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   327
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   328
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   329
# migrateObjConf
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   330
# Migrate obj.conf file to php 1.1
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   331
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   332
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   333
sub migrateObjConf {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   334
    my $objConfFile = shift;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   335
    my $pContents = shift;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   336
    my $tmpObjConfStatus = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   337
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   338
    return undef unless ($objConfFile);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   339
    if ((not -f $objConfFile or ref($pContents) != "ARRAY")) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   340
        return undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   341
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   342
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   343
    my $tmpObjConfFile = "$objConfFile"."tmp";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   344
    my $update_reqd = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   345
    local *TMPOBJ;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   346
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   347
    my $newLibPath = "$PHP_ROOT/lib";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   348
    my $newLibPath64 = "$PHP_ROOT/lib/64";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   349
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   350
    for (my $i = 0; $i < $#{@{$pContents}}; $i++) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   351
        my $pLine = \$pContents->[$i];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   352
        next if ($$pLine =~ /^\#/); #ignore comments;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   353
        next if (isWindows());
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   354
        if ($$pLine =~ m@(.*\s+app-path=['"])(\S+)\s*(['"].*)@) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   355
            my ($tmp, $tmp1, $tmp2, $tmp3);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   356
            $tmp1 = $1; $tmp2 = $2; $tmp3 = $3;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   357
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   358
            $tmp2 =~ s@$PHP_ROOT/bin/php@$PHP_ROOT/bin/php-cgi@;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   359
            $tmp = $tmp1.$tmp2.$tmp3."\n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   360
            $pContents->[$i] = $tmp;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   361
            $update_reqd = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   362
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   363
        elsif ($$pLine =~ m@(.*\s+app-env=['"])(\S+)(=)(\S+)(['"].*)@) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   364
            my ($tmp, $tmp1, $tmp2, $tmp3, $tmp4, $tmp5);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   365
            $tmp1 = $1; $tmp2 = $2; $tmp3 = $3; $tmp4 = $4; $tmp5 = $5;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   366
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   367
            if (($tmp2 =~ m@LD_LIBRARY_PATH@) or ($tmp2 =~ m@LD_LIBRARY_PATH_64@)) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   368
                if ($tmp4 =~ m@$PHP_ROOT/64@) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   369
                    $tmp4 =~ s@$PHP_ROOT/64@$newLibPath64@g;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   370
                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   371
                elsif ($tmp4 =~ m@$PHP_ROOT/64([:].*)@) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   372
                    $tmp4 =~ s@$PHP_ROOT/64(:.*)@$newLibPath64$1@g;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   373
                } 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   374
                elsif ($tmp4 =~ m@$PHP_ROOT([:].*)@) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   375
                    $tmp4 =~ s@$PHP_ROOT(:.*)@$newLibPath$1@g;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   376
                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   377
                elsif ($tmp4 =~ m@$PHP_ROOT@) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   378
                    $tmp4 =~ s@$PHP_ROOT@$newLibPath@g;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   379
                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   380
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   381
            elsif ($tmp2 =~ m@PHP_FCGI_MAX_REQUEST@) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   382
              $tmp2 =~ s@PHP_FCGI_MAX_REQUEST@PHP_FCGI_MAX_REQUESTS@g;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   383
              $tmp4 =~ s@200@2000@;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   384
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   385
            $tmp = $tmp1.$tmp2.$tmp3.$tmp4.$tmp5."\n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   386
            $pContents->[$i] = $tmp;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   387
            $update_reqd = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   388
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   389
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   390
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   391
    if ($update_reqd) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   392
        open(TMPOBJ,">$tmpObjConfFile") or $tmpObjConfStatus = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   393
        if (defined $tmpObjConfStatus) {                
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   394
            for (my $i = 0; $i < $#{@{$pContents}}; $i++) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   395
                my $line = $pContents->[$i];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   396
                print TMPOBJ $line;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   397
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   398
            print "UPDATED: $objConfFile \n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   399
            close(TMPOBJ);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   400
            unlink("$objConfFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   401
            rename("$tmpObjConfFile", "$objConfFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   402
            chmod(0600, "$objConfFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   403
            return 2;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   404
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   405
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   406
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   407
    return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   408
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   409
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   410
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   411
# processServerXml
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   412
# Parse the server.xml and get all the mime files and object files
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   413
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   414
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   415
sub processServerXml {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   416
    my $file = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   417
    my $serverXml = "$INSTANCE_ROOT/$INSTANCE_NAME/config/server.xml";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   418
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   419
    my $config = eval{XMLin("$serverXml", forcearray=>1, keyattr=>[])};
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   420
    if ($@) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   421
        print("\nERROR: Problem parsing the $serverXml. Not a valid xml file. \n\n");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   422
        exit 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   423
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   424
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   425
    #get the server level mime file
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   426
    $file = $config->{"mime-file"}->[0];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   427
    if (defined $file) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   428
        $file = getValidAbsoluteFilePath($file);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   429
        if (defined $file) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   430
            push (@$MIME_TYPES_FILES, $file); 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   431
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   432
    }        
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   433
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   434
    # get the server platform mode
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   435
    my $mode = $config->{"platform"}->[0];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   436
    if (defined $mode) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   437
        if ($mode == "64") {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   438
            $SERVER_64BIT_MODE = "64";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   439
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   440
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   441
        
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   442
    for (my $vsCounter = 0; ${config}->{"virtual-server"}->[$vsCounter]; $vsCounter++) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   443
        my $virutalServerElement = ${config}->{"virtual-server"}->[$vsCounter];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   444
        #get the virtual server level mime files
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   445
        for (my $mimeTypescounter = 0; ${virutalServerElement}->{"mime-file"}->[$mimeTypescounter]; $mimeTypescounter++) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   446
            $file = ${virutalServerElement}->{"mime-file"}->[$mimeTypescounter];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   447
            $file = getValidAbsoluteFilePath($file);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   448
            if (defined $file) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   449
                push (@$MIME_TYPES_FILES, $file);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   450
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   451
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   452
        #get the virtual server level object files       
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   453
        for (my $objectFilecounter = 0; ${virutalServerElement}->{"object-file"}->[$objectFilecounter]; $objectFilecounter++) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   454
            $file = ${virutalServerElement}->{"object-file"}->[$objectFilecounter];
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   455
            $file = getValidAbsoluteFilePath($file);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   456
            if (defined $file) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   457
                push (@$OBJ_CONF_FILES, $file);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   458
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   459
        }        
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   460
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   461
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   462
    #Default is mime.types
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   463
    if (@$MIME_TYPES_FILES < 1) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   464
        push (@$MIME_TYPES_FILES, "$INSTANCE_ROOT/$INSTANCE_NAME/config/mime.types");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   465
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   466
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   467
    #Default is obj.conf
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   468
    if (@$OBJ_CONF_FILES < 1) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   469
        push (@$OBJ_CONF_FILES, "$INSTANCE_ROOT/$INSTANCE_NAME/config/obj.conf");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   470
    }    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   471
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   472
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   473
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   474
# processMagnusConf
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   475
# Append the MAGNUS_CONF_APPEND_STRING value at the end of magnus.conf file.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   476
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   477
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   478
sub processMagnusConf {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   479
    my $magnusConfFile = "$INSTANCE_ROOT/$INSTANCE_NAME/config/magnus.conf";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   480
    my $magnusConfStatus = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   481
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   482
    if (defined isValidFile($magnusConfFile)) 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   483
    {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   484
        # Get the current File Stat.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   485
        my @statInfo = stat $magnusConfFile;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   486
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   487
        # Verify if the changes already exist.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   488
        if (open(MAGNUS_R,"<$magnusConfFile")) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   489
            my @contents = <MAGNUS_R>;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   490
            foreach (@contents) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   491
                next if (/^\#/); #ignore comments;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   492
                if ((isNSAPI()) and (/shlib(.*)$phpSoName(.*)/g)) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   493
                    close(MAGNUS_R);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   494
                    return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   495
                } elsif ((not isNSAPI()) and (/shlib(.*)$fastCGISoName(.*)/g)) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   496
                    close(MAGNUS_R);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   497
                    return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   498
                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   499
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   500
            close(MAGNUS_R);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   501
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   502
        open(MAGNUS,">>$magnusConfFile") or $magnusConfStatus = 0;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   503
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   504
        if ($magnusConfStatus == 1) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   505
            addToMagnusConf(\*MAGNUS);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   506
            print "\n\nUPDATED: $magnusConfFile \n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   507
        } else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   508
            print "\nERROR: Unable to write $magnusConfFile. \n\n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   509
            close(MAGNUS);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   510
            exit 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   511
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   512
        close(MAGNUS);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   513
        chown $statInfo[4], $statInfo[5], $magnusConfFile;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   514
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   515
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   516
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   517
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   518
# processObjConf
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   519
# Append the OBJ_CONF_APPEND_STRING value after the <object name="default" 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   520
# directive in all object files.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   521
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   522
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   523
sub processObjConf {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   524
    while(scalar(@$OBJ_CONF_FILES) > 0) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   525
        my $objConfFile = pop(@$OBJ_CONF_FILES);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   526
        my $objConfStatus = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   527
        my $tmpObjConfStatus = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   528
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   529
        if (defined isValidFile($objConfFile)) 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   530
        {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   531
            # Get the current File Stat.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   532
            my @statInfo = stat $objConfFile;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   533
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   534
            # Verify if the changes already exist.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   535
            open(OBJ,"<$objConfFile") or $objConfStatus = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   536
            if (defined $objConfStatus) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   537
                my @lines = <OBJ>;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   538
                my $escape_path = $PHP_ROOT;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   539
                $escape_path =~ s/\/(\w)/\\\/$1/g;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   540
                $escape_path =~ s/\\(\w)/\/$1/g;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   541
                my $contents = join("",@lines);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   542
                my $already_configured = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   543
                if ((isNSAPI()) and ($contents =~ m/
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   544
                        \s*Service\s+type="magnus-internal\/php"\s+fn="php5_execute"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   545
                        /mx)) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   546
                    close(OBJ);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   547
                    $already_configured = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   548
                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   549
                if ((not isNSAPI()) and (($contents =~ m/
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   550
                        \s*Service\s+type=[\"]magnus-internal\/php[\"]
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   551
                        [\r\n]+
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   552
                        \s*fn=[\"]responder-fastcgi[\"]
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   553
                        [\r\n]+
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   554
                        \s*app-path=[\"](.*)[\"]
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   555
                        [\r\n]+
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   556
                        /mx) and ($1 =~ m@$escape_path@))) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   557
                    close(OBJ);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   558
                    $already_configured = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   559
                    # migrate existing obj.conf configurations.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   560
                    &migrateObjConf($objConfFile, \@lines);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   561
                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   562
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   563
                next if ($already_configured);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   564
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   565
                # Create a new obj.conf
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   566
                my $tmpObjConfFile = "$objConfFile"."tmp";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   567
                open(TMPOBJ,">$tmpObjConfFile") or $tmpObjConfStatus = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   568
                if (defined $tmpObjConfStatus) {                
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   569
                    if (@lines) {                
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   570
                        foreach my $line (@lines) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   571
                            if (($line =~ /^<Object/i) && 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   572
                                (($line =~ /name=default>/i) || 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   573
                                ($line =~ /name=default\s/i) || 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   574
                                ($line =~ /name="default"/i))) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   575
                                print TMPOBJ $line;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   576
                                addToObjConf(\*TMPOBJ);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   577
                                print "UPDATED: $objConfFile \n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   578
                            } elsif ($line =~ /PathCheck\s+fn\s*=\s*(\S+)\s+(\S+)\s*=\s*(\S+)$/) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   579
                                my $funcName = $1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   580
                                my $valueName = $2;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   581
                                my $values = $3;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   582
                                if (($funcName =~ /find-index/) and ($valueName =~ /index-names/)) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   583
                                    $values =~ s/[\"](\S+)[\"]/$1/;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   584
                                    $values = "$1".",index.php";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   585
                                    my $newLine = <<__UP_TO_THIS_POINT_;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   586
PathCheck fn=$funcName $valueName=\"$values\"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   587
__UP_TO_THIS_POINT_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   588
                                    print TMPOBJ $newLine;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   589
                                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   590
                                else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   591
                                    print TMPOBJ $line;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   592
                                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   593
                            } else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   594
                                print TMPOBJ $line;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   595
                            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   596
                        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   597
                    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   598
                } else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   599
                    print "\nERROR: Unable to write $objConfFile \n\n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   600
                    close(TMPOBJ);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   601
                    close(OBJ);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   602
                    unlink("$tmpObjConfFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   603
                    exit 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   604
                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   605
                close(TMPOBJ);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   606
                close(OBJ);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   607
                unlink("$objConfFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   608
                rename("$tmpObjConfFile", "$objConfFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   609
                chmod(0600, "$objConfFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   610
                chown $statInfo[4], $statInfo[5], $objConfFile;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   611
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   612
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   613
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   614
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   615
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   616
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   617
# processMimeTypes
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   618
# Append the MIME_TYPES_APPEND_STRING value at the end of 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   619
# all the mime types file.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   620
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   621
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   622
sub processMimeTypes {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   623
    while(scalar(@$MIME_TYPES_FILES) > 0) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   624
        my $mimeTypesFile = pop(@$MIME_TYPES_FILES);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   625
        my $mimeTypesStatus = 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   626
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   627
        if (defined isValidFile($mimeTypesFile)) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   628
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   629
            # Get the current File Stat.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   630
            my @statInfo = stat $mimeTypesFile;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   631
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   632
            # Verify if the changes already exist.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   633
            if (open(MIME_R,"<$mimeTypesFile")) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   634
                my @contents = <MIME_R>;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   635
                for (my $i = $#contents; $i > 0; $i--) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   636
                    if ($contents[$i] =~ /magnus-internal\/php/g) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   637
                        close(MIME_R);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   638
                        return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   639
                    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   640
                }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   641
                close(MIME_R);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   642
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   643
            open(MIME,">>$mimeTypesFile") or $mimeTypesStatus = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   644
            if (defined $mimeTypesStatus) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   645
                addToMimeTypes(\*MIME);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   646
                print "UPDATED: $mimeTypesFile \n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   647
            } else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   648
                print "\nERROR: Unable to write $mimeTypesFile. \n\n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   649
                close(MIME);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   650
                exit 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   651
            }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   652
            close(MIME);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   653
            chown $statInfo[4], $statInfo[5], $mimeTypesFile;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   654
        }        
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   655
    }        
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   656
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   657
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   658
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   659
# addMagnusConfEntry
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   660
# Add the required magnus conf entry
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   661
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   662
sub addToMagnusConf {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   663
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   664
    my $entry;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   665
    my $FILENAME = shift;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   666
    my $phpNsapi = $phpSoName; 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   667
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   668
    if (isNSAPI()) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   669
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   670
        $entry = <<__UP_TO_THIS_POINT_;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   671
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   672
Init fn="load-modules" shlib="$phpNsapi" shlib_flags="global|now"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   673
    funcs="php5_init,php5_close,php5_execute,php5_auth_trans"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   674
Init fn="php5_init"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   675
	php_ini="$PHP_CONF_ROOT"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   676
	php_ini_scandir="$PHP_MODULES_CONF_ROOT"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   677
	errorString="PHP failed to initialize."
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   678
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   679
__UP_TO_THIS_POINT_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   680
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   681
    } else {    # fastcgi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   682
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   683
        $entry = <<__UP_TO_THIS_POINT_;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   684
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   685
Init fn="load-modules" shlib="$fastCGISoName"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   686
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   687
__UP_TO_THIS_POINT_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   688
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   689
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   690
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   691
    print $FILENAME $entry;    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   692
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   693
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   694
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   695
# addMimeTypesEntry
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   696
# Add the required mime types entry
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   697
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   698
sub addToMimeTypes {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   699
    my $FILENAME = shift;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   700
    my $entry = <<__UP_TO_THIS_POINT_;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   701
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   702
type=magnus-internal/php                         exts=php,php3,php4,php5
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   703
__UP_TO_THIS_POINT_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   704
    print $FILENAME $entry;    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   705
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   706
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   707
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   708
# addObjConfEntry
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   709
# Add the required obj conf entry
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   710
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   711
sub addToObjConf {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   712
    # setup 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   713
    my $FILENAME = shift;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   714
    # On windows, replace \ with / in paths
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   715
    my $l_php_root = $PHP_ROOT;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   716
    if (isWindows()) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   717
        $l_php_root =~ s/\\/\//g;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   718
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   719
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   720
    my $newLibPath = "$l_php_root/lib";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   721
    my $newLibPath64 = "$l_php_root/lib/64";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   722
    my $childs = &detectDefaultChildren();
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   723
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   724
    my $unixFastCGIEntry = <<__UNIX_FASTCGI_ENTRY_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   725
<If -f \$path>
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   726
Service type="magnus-internal/php"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   727
    fn="responder-fastcgi"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   728
    app-path="$l_php_root/bin/php-cgi"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   729
    bind-path="localhost:3101"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   730
    app-env="PHPRC=$PHP_CONF_ROOT"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   731
    app-env="PHP_INI_SCANDIR=$PHP_MODULES_CONF_ROOT"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   732
    app-env="PHP_FCGI_CHILDREN=$childs"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   733
    app-env="PHP_FCGI_MAX_REQUESTS=2000"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   734
    app-env="FCGI_WEB_SERVER_ADDRS=127.0.0.1"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   735
    bucket="php-bucket"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   736
</If>
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   737
<Else>
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   738
Service type="magnus-internal/php" fn="set-variable" error="404"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   739
</Else>
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   740
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   741
__UNIX_FASTCGI_ENTRY_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   742
;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   743
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   744
    my $windowsFastCGIEntry = <<__WINDOWS_FASTCGI_ENTRY_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   745
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   746
Service type="magnus-internal/php"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   747
    fn="responder-fastcgi"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   748
    app-path="$l_php_root/php-cgi.exe"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   749
    bind-path="$INSTANCE_NAME--php_cgi"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   750
    app-env="PHPRC=$l_php_root"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   751
    app-env="PHP_FCGI_CHILDREN=$childs"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   752
    app-env="PHP_FCGI_MAX_REQUESTS=2000"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   753
    bucket="php-bucket"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   754
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   755
__WINDOWS_FASTCGI_ENTRY_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   756
;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   757
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   758
    my $nsapiEntry = <<__NSAPI_ENTRY_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   759
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   760
Service type="magnus-internal/php" fn="php5_execute"
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   761
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   762
__NSAPI_ENTRY_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   763
;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   764
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   765
    my $entry;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   766
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   767
    if (isNSAPI()) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   768
        $entry = $nsapiEntry;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   769
    } else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   770
        if (isWindows()) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   771
            $entry = $windowsFastCGIEntry;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   772
        } else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   773
            $entry = $unixFastCGIEntry;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   774
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   775
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   776
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   777
    print $FILENAME $entry;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   778
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   779
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   780
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   781
# isNSAPI
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   782
# Check if SAPI is nsapi
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   783
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   784
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   785
sub isNSAPI() {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   786
    if ($SAPI =~ m/nsapi/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   787
        return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   788
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   789
    return 0;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   790
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   791
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   792
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   793
# isWindows
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   794
# Check platform
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   795
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   796
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   797
sub isWindows() {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   798
    if ($OSNAME =~ m/WIN/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   799
        return 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   800
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   801
    return 0;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   802
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   803
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   804
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   805
# checkFilesWritable
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   806
# Check all the necessary files writable before adding the entries
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   807
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   808
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   809
sub checkFilesWritable {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   810
    exit 1 unless defined isValidFile("$INSTANCE_ROOT/$INSTANCE_NAME/config/magnus.conf");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   811
    my @TMP_OBJ_CONF_FILES = @$OBJ_CONF_FILES;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   812
    my @TMP_MIME_TYPES_FILES = @$MIME_TYPES_FILES;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   813
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   814
    while(scalar(@TMP_OBJ_CONF_FILES) > 0) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   815
        my $objConfFile = pop(@TMP_OBJ_CONF_FILES);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   816
        exit 1 unless defined isValidFile("$objConfFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   817
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   818
    while(scalar(@TMP_MIME_TYPES_FILES) > 0) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   819
        my $mimeTypesFile = pop(@TMP_MIME_TYPES_FILES);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   820
        exit 1 unless defined isValidFile("$mimeTypesFile");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   821
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   822
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   823
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   824
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   825
# getValidAbsoluteFilePath
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   826
# To get the valid absolute file path
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   827
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   828
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   829
sub getValidAbsoluteFilePath {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   830
    my ($file) = @_;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   831
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   832
    if (defined $file) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   833
        my ($fileName,$filePath,$fileNameSuffix) = fileparse("$file");
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   834
        if ($fileName eq $file) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   835
            $file = "$INSTANCE_ROOT/$INSTANCE_NAME/config/$fileName";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   836
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   837
        
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   838
        $file = undef unless defined isValidFile($file);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   839
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   840
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   841
    return $file;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   842
}  
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   843
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   844
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   845
# getValidAbsoluteFilePath
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   846
# Valid file check
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   847
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   848
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   849
sub isValidFile {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   850
    my ($file) = @_;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   851
    my $status = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   852
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   853
    if (-e "$file") {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   854
        if (-w "$file") {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   855
            $status = 1; 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   856
        } else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   857
            print "\nERROR: $file is not writable. \n\n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   858
            exit 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   859
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   860
    } else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   861
        print "\nERROR: $file not found, $! \n\n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   862
        exit 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   863
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   864
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   865
    return $status;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   866
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   867
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   868
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   869
# detectDefaultChildren
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   870
# detect current architecture and come up with default values.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   871
# set default value to a higher value on Niagara based servers.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   872
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   873
sub detectDefaultChildren {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   874
    my $default = 2;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   875
    if ($OSNAME =~ /SOLARIS/i) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   876
        if (-x "/bin/uname") {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   877
            my $type = qx(/bin/uname -m);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   878
            chomp($type);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   879
            $default *= 3 if ($type =~ /sun4u/i);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   880
            $default *= 6 if ($type =~ /sun4v/);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   881
        }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   882
    }
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   883
    return $default;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   884
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   885
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   886
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   887
# printUsage
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   888
# print the usage command
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   889
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   890
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   891
sub printUsage {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   892
    print "This script will configure a web server instance to run PHP scripts\n" .
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   893
          "either as FastCGI or NSAPI \n".
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   894
          "usage : \n" .
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   895
          "     setupPHP -instancename=<instance name> [-sapi=fastcgi|nsapi]\n" .
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   896
          "Examples:\n" .
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   897
          "\n".
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   898
          "This below example configures Web Server to run PHP in FastCGI mode (Default)\n".
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   899
          "     setupPHP -instancename=https-php\n" .
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   900
          "\n".
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   901
          "This below example configures Web Server to run PHP in NSAPI mode\n".
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   902
          "     setupPHP -instancename=https-php -sapi=nsapi\n";
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   903
    exit 1;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   904
}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   905
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   906
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   907
# printResult
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   908
# print the post setup steps
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   909
# -----------------------------------------------------------------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   910
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   911
sub printResult {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   912
    #remove "https-" from the instance name and use it as the config name
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   913
    my $configName = undef;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   914
    $configName = $INSTANCE_NAME;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   915
    $configName = substr($INSTANCE_NAME, 6) if ($INSTANCE_NAME =~ /^https/);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   916
    my $result = <<__UP_TO_THIS_POINT_;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   917
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   918
Setup was sucessful.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   919
--------------------
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   920
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   921
The following steps are necessary to make the changes to all the nodes.
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   922
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   923
(1) Start the admin server
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   924
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   925
    $INSTALL_ROOT/admin-server/bin/startserv
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   926
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   927
(2) Connect to the admin server using wadm command
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   928
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   929
    $INSTALL_ROOT/bin/wadm [--user=admin-user] [--password-file=admin-pswd-file] [--host=admin-host] [--port=admin-port]
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   930
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   931
(3) Pull the modified config from the node to config store 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   932
    using the following command in wadm console:
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   933
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   934
    pull-config --config=$configName nodehost
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   935
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   936
    For Example: If the host name for the node is xyz.com then enter the command like,
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   937
    
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   938
    pull-config --config=$configName xyz.com
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   939
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   940
(4) Deploy the new changes to all nodes using 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   941
    the following command in wadm console:
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   942
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   943
    deploy-config $configName 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   944
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   945
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   946
__UP_TO_THIS_POINT_
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   947
    print $result;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
   948
}