mirror of
https://github.com/php/php-src.git
synced 2024-11-28 12:26:37 +08:00
436 lines
16 KiB
Bash
436 lines
16 KiB
Bash
#!/bin/sh
|
|
#
|
|
# +----------------------------------------------------------------------+
|
|
# | PHP HTML Embedded Scripting Language Version 3.0 |
|
|
# +----------------------------------------------------------------------+
|
|
# | Copyright (c) 1997,1998 PHP Development Team (See Credits file) |
|
|
# +----------------------------------------------------------------------+
|
|
# | This program is free software; you can redistribute it and/or modify |
|
|
# | it under the terms of one of the following licenses: |
|
|
# | |
|
|
# | A) the GNU General Public License as published by the Free Software |
|
|
# | Foundation; either version 2 of the License, or (at your option) |
|
|
# | any later version. |
|
|
# | |
|
|
# | B) the PHP License as published by the PHP Development Team and |
|
|
# | included in the distribution in the file: LICENSE |
|
|
# | |
|
|
# | This program is distributed in the hope that it will be useful, |
|
|
# | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
# | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
# | GNU General Public License for more details. |
|
|
# | |
|
|
# | You should have received a copy of both licenses referred to here. |
|
|
# | If you did not, or have any questions about PHP licensing, please |
|
|
# | contact core@php.net. |
|
|
# +----------------------------------------------------------------------+
|
|
# | Authors: Stig Sæther Bakken <ssb@guardian.no> |
|
|
# | Updated By: Jim Winstead <jimw@php.net> |
|
|
# | Ariel Shkedi <ars@ziplink.net> or <as@altavista.net> |
|
|
# +----------------------------------------------------------------------+
|
|
#
|
|
# $Id$
|
|
|
|
if [ "$1" = "-q" ]; then
|
|
quiet_mode=on
|
|
shift
|
|
fi
|
|
|
|
if [ `echo -e "\n" | wc -l` = 2 ]; then
|
|
# bash supports echo -e for handling escape sequences
|
|
ECHO_CMD="echo -e"
|
|
elif test -f /bin/echo; then
|
|
ECHO_CMD="/bin/echo"
|
|
elif test -f /usr/bin/echo; then
|
|
ECHO_CMD="/usr/bin/echo"
|
|
else
|
|
# fall back to the default echo - \n would most probably be displayed as-is
|
|
ECHO_CMD="echo"
|
|
fi
|
|
|
|
if echo '\c' | grep -s c >/dev/null 2>&1
|
|
then
|
|
ECHO_N="echo -n"
|
|
ECHO_C=""
|
|
else
|
|
ECHO_N="echo"
|
|
ECHO_C='\c'
|
|
fi
|
|
|
|
echo '
|
|
***************************************************************************
|
|
* *
|
|
* Welcome to the PHP 3.0 setup script. Use this script if you do not *
|
|
* want or know how to use the configure program. See the INSTALL file *
|
|
* for further installation instructions. *
|
|
* *
|
|
* You will now be asked a series of questions for your installation. *
|
|
* For each question, your options will be shown in parantheses, and *
|
|
* for some a default value is listed shown in brackets. *
|
|
* *
|
|
***************************************************************************
|
|
'
|
|
|
|
display_prompt()
|
|
{
|
|
prm=$1
|
|
shift
|
|
typ=$1
|
|
shift
|
|
def=$1
|
|
shift
|
|
$ECHO_N "$prm $ECHO_C"
|
|
case $typ in
|
|
yesno) $ECHO_N "(yes/no) $ECHO_C";;
|
|
yesnodir) $ECHO_N "(\`yes', \`no' or dir) $ECHO_C";;
|
|
dir) $ECHO_N "(dir) $ECHO_C";;
|
|
esac
|
|
if test "$typ" = "yesnodir"; then
|
|
set $def
|
|
def=$1
|
|
fi
|
|
$ECHO_N "[$def] : $ECHO_C"
|
|
}
|
|
|
|
define_option()
|
|
{
|
|
if test "$#" != "5"; then
|
|
echo "wrong number of arguments to define_option" >&2
|
|
return
|
|
fi
|
|
name=$1
|
|
shift
|
|
prompt=$1
|
|
shift
|
|
type=$1
|
|
shift
|
|
default=$1
|
|
shift
|
|
docstring=$1
|
|
optname=`echo $name | sed -e 's/[^a-zA-Z0-9_]/_/g'`
|
|
options="$options $optname"
|
|
eval "option_name_$optname='$name'"
|
|
eval "option_prompt_$optname='$prompt'"
|
|
eval "option_type_$optname='$type'"
|
|
eval "option_default_$optname='$default'"
|
|
eval "option_docstring_$optname='$docstring'"
|
|
answer=""
|
|
if [ "$quiet_mode" != "on" ]; then
|
|
show_help "$optname" "$type" "$default"
|
|
fi
|
|
while test "$answer" = ""; do
|
|
display_prompt "$prompt" "$type" "$default"
|
|
read answer
|
|
test -t || echo $answer # Echo the answer if it did not come
|
|
# from a terminal.
|
|
if test "$type" = "yesnodir"; then
|
|
set $default
|
|
if test "$1" = "yes"; then
|
|
if test "$answer" = ""; then
|
|
answer=yes
|
|
fi
|
|
fi
|
|
case "$answer" in
|
|
*/*) ;;
|
|
[Yy]*) dir=$2
|
|
shift
|
|
shift
|
|
$ECHO_N "Enter $@ directory [$dir] : $ECHO_C"
|
|
read answer
|
|
test -t || echo $answer
|
|
if test "$answer" = ""; then
|
|
answer=$dir
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
if test "$answer" = ""; then
|
|
if test "$type" = "yesnodir"; then
|
|
set $default
|
|
answer=$1
|
|
else
|
|
answer=$default
|
|
fi
|
|
elif test "$answer" = "?"; then
|
|
show_help "$optname" "$type" "$default"
|
|
answer=""
|
|
fi
|
|
done
|
|
if test "$type" = "yesnodir"; then
|
|
set $default
|
|
if test $1 = "yes"; then
|
|
case "$answer" in
|
|
"$2") answer=yes;;
|
|
[Yy]*) answer=yes;;
|
|
[Nn]*) answer=no;;
|
|
esac
|
|
else
|
|
case "$answer" in
|
|
[Yy]*) answer=$2;;
|
|
[Nn]*) answer=no;;
|
|
esac
|
|
fi
|
|
elif test "$type" = "yesno"; then
|
|
case "$answer" in
|
|
[Yy]*) answer=yes;;
|
|
[Nn]*) answer=no;;
|
|
esac
|
|
fi
|
|
eval "option_value_$optname='$answer'"
|
|
}
|
|
|
|
show_help()
|
|
{
|
|
echo ''
|
|
( eval "$ECHO_CMD \$option_docstring_$1" ;
|
|
if test "$2" = "yesnodir"; then
|
|
set $3
|
|
echo "If you answer \`yes', the default directory is \`$2'."
|
|
fi )
|
|
echo ''
|
|
}
|
|
|
|
generate_config_command()
|
|
{
|
|
configure_options=""
|
|
for optname in $options; do
|
|
eval "name=\$option_name_$optname"
|
|
eval "value=\$option_value_$optname"
|
|
eval "default=\$option_default_$optname"
|
|
set $default
|
|
if test "$value" != "$1"; then
|
|
if test "$value" != "$2"; then
|
|
configure_options="$configure_options --$name=$value"
|
|
else
|
|
configure_options="$configure_options --$name"
|
|
fi
|
|
fi
|
|
done
|
|
echo "./configure$configure_options"
|
|
}
|
|
|
|
# now define all the options
|
|
|
|
define_option with-apache 'Build as an Apache module?' yesnodir \
|
|
'no /usr/local/etc/httpd Apache base install' \
|
|
' Whether to build PHP as an Apache module. If you are running\n
|
|
Apache, building PHP as a module will give better performance and\n
|
|
security. If you answer no PHP will be built as a CGI program.\n
|
|
The CGI version also enables Apache users to run different PHP3-enabled\n
|
|
pages under different user-ids.'
|
|
|
|
if test "$option_value_with_apache" != "no"; then
|
|
define_option with-mod_charset 'Enable transfer tables used by mod_charset?' yesno no \
|
|
' Whether to respect transfer tables used by mod_charset when PHP compiled\n
|
|
as Apache module. It is required to allow mod_charset (aka Russian Apache)\n
|
|
to work properly.'
|
|
fi
|
|
|
|
if test "$option_value_with_apache" = "no"; then
|
|
define_option with-fhttpd 'Build as an fhttpd module?' yesnodir \
|
|
'no /usr/local/src/fhttpd fhttpd sources' \
|
|
' Whether to build PHP as fhttpd module. If you are running\n
|
|
fhttpd, building PHP as a module will give better performance,\n
|
|
more control and remote execution capability. More info about fhttpd \n
|
|
can be found at http://phobos.illtel.denver.co.us/pub/fhttpd/.'
|
|
fi
|
|
|
|
for stub in ext/*/setup.stub; do
|
|
test -f $stub && . $stub
|
|
done
|
|
|
|
define_option with-sybase 'Sybase support?' yesnodir \
|
|
'no /home/sybase Sybase install' \
|
|
' Whether to build PHP with Sybase support (DBLib only).\n
|
|
More info about Sybase can be found at http://www.sybase.com/.'
|
|
|
|
define_option with-sybase-ct 'Sybase-CT support?' yesnodir \
|
|
'no /home/sybase Sybase-CT install' \
|
|
' Whether to build PHP with Sybase-CT support.'
|
|
|
|
define_option with-pgsql 'PostgreSQL support?' yesnodir \
|
|
'no /usr/local/pgsql PostgreSQL base install' \
|
|
' Whether to build PHP with PostgreSQL support.\n
|
|
More info about PostgreSQL can be found at\n
|
|
http://www.postgreSQL.org/.'
|
|
|
|
define_option with-informix 'Informix support?' yesnodir \
|
|
"no $INFORMIXDIR Informix home" \
|
|
' Whether to build PHP with Informix support. If you have not set up your\n
|
|
Informix environment, enter what $INFORMIXDIR is usually set to here.\n
|
|
You MUST set $INFORMIXDIR before trying to compile!\n
|
|
More info about Informix can be found at http://www.informix.com/.'
|
|
|
|
define_option with-interbase 'InterBase support?' yesnodir \
|
|
'no /usr/interbase InterBase base install' \
|
|
' Whether to build PHP with InterBase support. More\n
|
|
information about InterBase can be found at http://www.interbase.com/.'
|
|
|
|
define_option with-ldap 'LDAP support?' yesnodir \
|
|
'no /usr/local/ldap LDAP base install' \
|
|
' Whether to build with LDAP (Lightweight Directory Access Protocol)\n
|
|
support.\n
|
|
More information about LDAP can be found in RFC1777 and RFC1778.'
|
|
|
|
define_option with-imap 'IMAP support?' yesnodir \
|
|
'no /usr/local/imap IMAP base install' \
|
|
' Whether to build with IMAP (Internet Message Access Protocol)\n
|
|
support.\n
|
|
More information about LDAP can be found in RFC1777 and RFC1778.'
|
|
|
|
define_option with-pdflib 'pdflib 0.6 support? ' yesnodir \
|
|
'no /usr/local pdflib install' \
|
|
' Whether to use the pdflib support to write .pdf-files.\n
|
|
Tested for version 0.6!'
|
|
|
|
define_option with-fdftk 'Acrobat Forms (Ftf Toolkit 2.0) support? ' yesnodir \
|
|
'no /usr/local ftktk install' \
|
|
' Whether to use the Ftf Toolkit support to write/read .fdf-files.\n
|
|
Tested for version 2.0!'
|
|
|
|
define_option with-zlib 'zlib (>= 1.0.9) support? ' yesnodir \
|
|
'no /usr zlib install' \
|
|
' Whether to use the zlib support to read/write .gz-files.\n
|
|
Requires zlib version >= 1.0.9!'
|
|
|
|
define_option enable-sysvshm 'System V shared memory support? ' yesno no \
|
|
' Whether to use the System V shared memory (currently only solaris and linux).'
|
|
|
|
define_option enable-sysvsem 'System V semaphores support? ' yesno no \
|
|
' Whether to use the System V semaphores (currently only solaris and linux).'
|
|
|
|
|
|
define_option with-config-file-path 'Default config directory?' yesnodir \
|
|
'no /usr/local/lib Configuration file' \
|
|
' Directory where the PHP3 configuration file (php3.ini) is\n
|
|
located.'
|
|
|
|
# systems should be system's
|
|
define_option with-system-regex 'Use the system regex library?' yesno no \
|
|
" Whether to use the systems regular expression library rather than\n
|
|
the bundled one. If you are building PHP3 as a server module, you must\n
|
|
use the same library when building PHP3 as when linking the server.\n
|
|
Enable this if the systems library provides special features you need.\n
|
|
It is recommended that you use the bundled library if possible."
|
|
|
|
define_option enable-debug 'Compile with debug information?' yesno yes \
|
|
' Whether to enable debug information. Answering "no" here will make\n
|
|
PHP run faster, but it will be harder to trace bugs. You are \n
|
|
encouraged to leave debugging on while PHP 3.0 is in alpha and \n
|
|
beta state.'
|
|
|
|
define_option enable-safe-mode 'Enable safe mode by default?' yesno no \
|
|
" Whether to enable PHP safe mode. This imposes several\n
|
|
restrictions on what PHP can do, such as opening only files within\n
|
|
the document root. Read the Security chapter of the documentation\n
|
|
for more information. CGI users should always enable secure mode.\n
|
|
This only sets the default, it may be enabled or disabled in the\n
|
|
configuration file later. "
|
|
|
|
# broken configure.in doesn't check apache (bug?)
|
|
#if test "$option_value_with_apache" != "no"; then
|
|
# defexecdir="$option_value_with_apache/php-bin"
|
|
#else
|
|
defexecdir=/usr/local/bin
|
|
#fi
|
|
|
|
define_option with-exec-dir 'Default safe mode exec dir?' dir "$defexecdir" \
|
|
" The directory where executables that may be run from safe mode\n
|
|
are located."
|
|
|
|
define_option enable-track-vars 'Enable variable tracking by default?' yesno \
|
|
no \
|
|
' Enable the HTTP_GET_VARS, HTTP_POST_VARS and HTTP_COOKIE_VARS arrays by\n
|
|
default (can be turned on or off in the configuration file).'
|
|
|
|
define_option enable-magic-quotes 'Enable magic quotes by default?' yesno no \
|
|
' Whether to magic quotes by default. This can be changed in the\n
|
|
configuration file.'
|
|
|
|
define_option enable-debugger 'Enable PHP remote debugger?' yesno no \
|
|
" Whether to enable PHP remote debugging support. This feature\n
|
|
is still under development."
|
|
|
|
define_option enable-bcmath 'Enable bc style precision math functions' yesno \
|
|
no \
|
|
' Enables bc style arbitrary precision math functions.'
|
|
|
|
# configure.in only checks these if it's a cgi so setup does the same
|
|
if test "$option_value_with_apache" = "no"; then
|
|
# outputing the bank line isn't really possible, but it would be nice
|
|
define_option enable-force-cgi-redirect 'Enable redirect checking?' yesno no \
|
|
' When using PHP as a CGI binary, this will make PHP always first check\n
|
|
that it is used by redirection (for example under Apache, by using\n
|
|
Action directives). This makes sure that the PHP binary cannot be used\n
|
|
to bypass standard web server authentication procedures by calling it\n
|
|
directly, like http://my.host/cgi-bin/php/secret/doc.html. This\n
|
|
example accesses http://my.host/secret/doc.html but does not honour\n
|
|
any security settings enforced by httpd for directory /secret.\n
|
|
\n
|
|
Not enabling this option disables the check and enables bypassing\n
|
|
httpd security and authentication settings. Do this only if your server\n
|
|
software is unable to indicate that a safe redirection was done and\n
|
|
all your files under your document root and user directories may be\n
|
|
accessed by anyone. (See the doc_root and user_dir options in the\n
|
|
configuartion file).'
|
|
|
|
define_option enable-discard-path 'Enable discard path?' yesno no \
|
|
' If this is enabled, the PHP CGI binary can safely be placed outside\n
|
|
of the web tree and people will not be able to circumvent .htaccess\n
|
|
security.'
|
|
fi
|
|
|
|
define_option enable-memory-limit 'Enable memory limit?' yesno no \
|
|
' Compile with memory limit support.'
|
|
|
|
define_option enable-short-tags 'Allow short tag by default?' yesno yes \
|
|
" Whether to enable the short form of the PHP HTML embed tags.\n
|
|
The short form is \"<? code; ?>\", while the long form is\n
|
|
\"<?php code; ?>\". If you plan on using XML on your site, you\n
|
|
should disable the short form. This is the default and can be overridden\n
|
|
in the configuration file."
|
|
|
|
define_option enable-url-fopen-wrapper 'Enable URL fopen wrappers?' yesno yes \
|
|
" Enable the URL-aware fopen wrapper that allows accessing files via http\n
|
|
or ftp."
|
|
|
|
# only the cgi version of PHP is installed to bindir
|
|
if test "$option_value_with_apache" = "no"; then
|
|
define_option bindir 'Install php in:' dir "/usr/local/bin" \
|
|
" Directory where PHP should be installed."
|
|
fi
|
|
|
|
echo '
|
|
|
|
***************************************************************************
|
|
* *
|
|
* Running configure... *
|
|
* *
|
|
***************************************************************************
|
|
'
|
|
if test ! -f configure; then
|
|
autoconf
|
|
fi
|
|
|
|
command=`generate_config_command`
|
|
mv do-conf do-conf.bak > /dev/null 2>&1
|
|
echo $command > do-conf
|
|
chmod +x do-conf
|
|
echo $command
|
|
eval $command
|
|
|
|
echo '
|
|
***************************************************************************
|
|
* *
|
|
* Configuration options were saved in do-conf, if desired you can *
|
|
* edit this file and then run it. Run ./configure --help for a list *
|
|
* of options. *
|
|
* *
|
|
* Read the INSTALL file for more information and for help in *
|
|
* configuring apache. See the web site at: http://www.php.net/ for *
|
|
* documentation and more. If desired copy the php3.ini-dist file to *
|
|
* your config directory/php3.ini and edit it. *
|
|
* *
|
|
***************************************************************************
|
|
'
|