From f5f579799ddfb7fd65e10d962cbaa493fe11823f Mon Sep 17 00:00:00 2001 From: root Date: Wed, 17 Feb 2010 00:24:38 -0800 Subject: [PATCH] Added working php --- core/yaourt/PKGBUILD | 1 + extra/php/PKGBUILD | 442 ++---- extra/php/curl-flush.patch | 17 + extra/php/db-configure.patch | 6 +- extra/php/gd-info-segfault.patch | 26 - extra/php/php.ini | 1308 +++++++++++++++++ extra/php/php.ini.patch | 120 -- extra/php/suhosin-patch-5.2.10-0.9.7.patch.gz | Bin 0 -> 23072 bytes 8 files changed, 1478 insertions(+), 442 deletions(-) create mode 100644 extra/php/curl-flush.patch delete mode 100644 extra/php/gd-info-segfault.patch create mode 100644 extra/php/php.ini delete mode 100644 extra/php/php.ini.patch create mode 100644 extra/php/suhosin-patch-5.2.10-0.9.7.patch.gz diff --git a/core/yaourt/PKGBUILD b/core/yaourt/PKGBUILD index d1ebb2ce5..d027b789d 100644 --- a/core/yaourt/PKGBUILD +++ b/core/yaourt/PKGBUILD @@ -1,4 +1,5 @@ # Author: Julien MISCHKOWITZ + pkgname=yaourt pkgver=0.9.2.6 pkgrel=1 diff --git a/extra/php/PKGBUILD b/extra/php/PKGBUILD index 9e95574ab..ab1b7c8aa 100644 --- a/extra/php/PKGBUILD +++ b/extra/php/PKGBUILD @@ -1,324 +1,180 @@ -# $Id: PKGBUILD 53281 2009-09-27 20:04:03Z pierre $ +# $Id: PKGBUILD 46215 2009-07-14 09:38:03Z pierre $ # Maintainer: Pierre Schmitz -pkgbase=php -pkgname=('php' - 'php-cgi' - 'php-apache' - 'php-pear' - 'php-curl' - 'php-enchant' - 'php-gd' - 'php-gmp' - 'php-intl' - 'php-ldap' - 'php-mcrypt' - 'php-odbc' - 'php-pgsql' - 'php-pspell' - 'php-snmp' - 'php-sqlite' - 'php-tidy' - 'php-xsl') -pkgver=5.3.0 -pkgrel=5 -_suhosinver=${pkgver}-0.9.8 +pkgname=php +pkgver=5.2.10 +pkgrel=3 +_suhosinver=${pkgver}-0.9.7 +pkgdesc='A high-level scripting language' arch=('i686' 'x86_64') license=('PHP') url='http://www.php.net' -makedepends=('apache' 'imap' 'postgresql-libs' 'mysql' 'libldap' 'postfix' - 'sqlite3' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' - 'libmcrypt' 'tidyhtml' 'aspell' 'libtool' 'gd' 'icu' - 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp') -options=('!makeflags') -source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2" +backup=('etc/php/php.ini') +depends=('glibc' 'readline' 'ncurses' 'libxml2' 'pcre') +makedepends=('apache' 'imap' 'postgresql-libs' 'mysql' 'libldap' 'smtp-server' + 'libpng' 'libjpeg' 'sqlite3' 'unixodbc' 'net-snmp' 'mhash' 'gmp' + 'libmcrypt' 'tidyhtml' 'aspell' 'libtool' 'freetype2' 'libjpeg' + 'curl' 'libxslt' 'pam' 'openssl' 'bzip2' 'gdbm' 'db') +optdepends=('bzip2: bz2' + 'curl: curl' + 'gdbm: dba' + 'libpng: gd' + 'libjpeg: gd' + 'freetype2: gd' + 'pam: imap' + 'libldap: ldap' + 'libmcrypt: mcrypt' + 'libtool: mcrypt' + 'libmysqlclient: mysql/mysqli/pdo_mysql' + 'unixodbc: odbc/pdo_odbc' + 'openssl: openssl' + 'postgresql-libs: pgsql/pdo_pgsql' + 'aspell: pspell' + 'net-snmp: snmp' + 'sqlite3: pdo_sqlite' + 'tidyhtml: tidy' + 'libxslt: xsl' + 'mhash: mhash' + 'gmp: gmp' + ) +source=("http://www.php.net/distributions/${pkgname}-${pkgver}.tar.bz2" "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz" - 'php.ini.patch' 'apache.conf' 'db-configure.patch' 'gd-info-segfault.patch') -md5sums=('846760cd655c98dfd86d6d97c3d964b0' - 'a23a3d54e177ac0ad30f78d928ba8177' - '67c63d2c8a976a333bbd2216cdd60413' + 'php.ini' 'apache.conf' 'db-configure.patch' 'curl-flush.patch') +md5sums=('15c7b5a87f57332d6fc683528e28247b' + '41b475a469eef0eb0e7aa10a820f12b2' + '50b6a4ce330b016e19cb922d202ab170' '96ca078be6729b665be8a865535a97bf' - '45ecb6fb0aadfd3462097e3bab951aa5' - '1c1a50aae7207b12d27bdecd8967e7ce') + '74e5ce5a02488ec91b1c59f539e42936' + '648c83c991a187cd0f2be435cb022947') build() { phpconfig="--prefix=/usr \ - --sysconfdir=/etc/php \ - --with-layout=GNU \ - --with-config-file-path=/etc/php \ - --with-config-file-scan-dir=/etc/php/conf.d \ - --enable-inline-optimization \ - --disable-debug \ - --disable-rpath \ - --disable-static \ - --enable-shared \ - --mandir=/usr/share/man \ - --without-pear \ - " + --sysconfdir=/etc/php \ + --with-layout=GNU \ + --with-config-file-path=/etc/php \ + --with-config-file-scan-dir=/etc/php/conf.d \ + --enable-inline-optimization \ + --disable-debug \ + --disable-rpath \ + --disable-static \ + --enable-shared \ + --mandir=/usr/share/man \ + " - phpextensions="--enable-bcmath=shared \ - --enable-calendar=shared \ - --enable-dba=shared \ - --enable-exif=shared \ - --enable-ftp=shared \ - --enable-gd-native-ttf \ - --enable-intl=shared \ - --enable-json=shared \ - --enable-mbregex \ - --enable-mbstring \ - --enable-pdo=shared \ - --enable-phar=shared \ - --enable-posix=shared \ - --enable-session \ - --enable-shmop=shared \ - --enable-soap=shared \ - --enable-sockets=shared \ - --enable-sqlite-utf8 \ - --enable-sysvmsg=shared \ - --enable-sysvsem=shared \ - --enable-sysvshm=shared \ - --enable-xml \ - --enable-zip=shared \ - --with-bz2=shared \ - --with-curl=shared \ - --with-db4=shared \ - --with-enchant=shared,/usr \ - --with-freetype-dir=shared,/usr \ - --with-gd=shared,/usr \ - --with-gdbm=shared \ - --with-gettext=shared \ - --with-gmp=shared \ - --with-iconv=shared \ - --with-icu-dir=/usr \ - --with-imap-ssl=shared \ - --with-imap=shared \ - --with-jpeg-dir=shared,/usr \ - --with-ldap=shared \ - --with-mcrypt=shared \ - --with-mysql-sock=/tmp/mysql.sock \ - --with-mysql=shared,mysqlnd \ - --with-mysqli=shared,mysqlnd \ - --with-openssl=shared \ - --with-pcre-regex=/usr \ - --with-pdo-mysql=shared,mysqlnd \ - --with-pdo-odbc=shared,unixODBC,/usr \ - --with-pdo-pgsql=shared \ - --with-pdo-sqlite=shared,/usr \ - --with-pgsql=shared \ - --with-png-dir=shared,/usr \ - --with-pspell=shared \ - --with-regex=php \ - --with-snmp=shared \ - --with-sqlite3=shared,/usr \ - --with-sqlite=shared \ - --with-tidy=shared \ - --with-unixODBC=shared,/usr \ - --with-xmlrpc=shared \ - --with-xsl=shared \ - --with-zlib \ - --without-db2 \ - --without-db3 \ - " + phpextensions="--with-openssl=shared \ + --with-zlib=shared \ + --enable-bcmath=shared \ + --with-bz2=shared \ + --enable-calendar=shared \ + --with-curl=shared \ + --enable-dba=shared \ + --without-db2 \ + --without-db3 \ + --with-db4=shared \ + --with-gdbm=shared \ + --enable-dbase=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --with-gd=shared \ + --enable-gd-native-ttf \ + --with-jpeg-dir=shared,/usr \ + --with-png-dir=shared,/usr \ + --with-gettext=shared \ + --with-imap=shared \ + --with-imap-ssl=shared \ + --with-ldap=shared \ + --enable-mbstring=shared \ + --with-mcrypt=shared \ + --with-mysql=shared \ + --with-mysql-sock=/tmp/mysql.sock \ + --with-mysql=shared \ + --with-mysqli=shared \ + --with-ncurses=shared \ + --with-unixODBC=shared,/usr \ + --enable-pdo=shared \ + --with-pdo-mysql=shared \ + --with-pdo-sqlite=shared,/usr \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-pdo-pgsql=shared \ + --with-sqlite=shared \ + --enable-sqlite-utf8 \ + --with-pgsql=shared \ + --enable-shmop=shared \ + --with-snmp=shared \ + --enable-soap=shared \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --with-tidy=shared \ + --with-xsl=shared \ + --enable-zip=shared \ + --enable-posix=shared \ + --enable-sockets=shared \ + --enable-xml \ + --with-ttf=shared \ + --enable-session=shared \ + --with-regex=php \ + --with-pcre-regex=/usr \ + --enable-mbstring=all \ + --enable-mbregex \ + --enable-json=shared \ + --with-iconv=shared \ + --with-xmlrpc=shared \ + --with-pspell=shared \ + --with-freetype-dir=shared,/usr \ + --with-mime-magic=shared \ + --with-gmp=shared \ + --with-mhash=shared \ + " - EXTENSION_DIR=/usr/lib/php/modules - export EXTENSION_DIR PEAR_INSTALLDIR=/usr/share/pear export PEAR_INSTALLDIR - cd ${srcdir}/${pkgbase}-${pkgver} + cd ${srcdir}/${pkgname}-${pkgver} # avoid linking against old db version - patch -p0 -i ${srcdir}/db-configure.patch || return 1 + patch -p0 -i ${srcdir}/db-configure.patch # apply suhosin patch - patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch || return 1 + patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch - # adjust paths - patch -p0 -i ${srcdir}/php.ini.patch || return 1 + # fix curl regression; should be fixed upstream with PHP >= 5.2.11 + patch -p3 -i ${srcdir}/curl-flush.patch - # fix gd segfault; http://bugs.php.net/bug.php?id=49193 - patch -p0 -i ${srcdir}/gd-info-segfault.patch || return 1 - - # php - mkdir ${srcdir}/build-php - cd ${srcdir}/build-php - ln -s ../${pkgbase}-${pkgver}/configure - ./configure --srcdir=../${pkgbase}-${pkgver} \ - ${phpconfig} \ + # cli + ./configure ${phpconfig} \ --disable-cgi \ --with-readline \ --enable-pcntl \ - ${phpextensions} || return 1 - make || return 1 + --with-pear=/usr/share/pear \ + ${phpextensions} + make + # make test + make INSTALL_ROOT=${pkgdir} install - # cgi and fcgi - # reuse the previous run; this will save us a lot of time - cp -a ${srcdir}/build-php ${srcdir}/build-cgi - cd ${srcdir}/build-cgi - ./configure --srcdir=../${pkgbase}-${pkgver} \ - ${phpconfig} \ - --enable-cgi \ - --disable-cli \ - ${phpextensions} || return 1 - make || return 1 - - # apache - cp -a ${srcdir}/build-php ${srcdir}/build-apache - cd ${srcdir}/build-apache - ./configure --srcdir=../${pkgbase}-${pkgver} \ - ${phpconfig} \ - --with-apxs2 \ - --disable-cli \ - ${phpextensions} || return 1 - make || return 1 - - # pear - cp -a ${srcdir}/build-php ${srcdir}/build-pear - cd ${srcdir}/build-pear - ./configure --srcdir=../${pkgbase}-${pkgver} \ - ${phpconfig} \ - --disable-cgi \ - --with-readline \ - --enable-pcntl \ - --with-pear \ - ${phpextensions} || return 1 - make || return 1 -} - -package_php() { - pkgdesc='An HTML-embedded scripting language' - depends=('pcre' 'libxml2' 'bzip2' 'openssl') - replaces=('php-fileinfo') - provides=('php-fileinfo') - conflicts=('php-fileinfo') - backup=('etc/php/php.ini') - - cd ${srcdir}/build-php - make INSTALL_ROOT=${pkgdir} install || return 1 - install -d -m755 ${pkgdir}/usr/share/pear - # fix broken link - ln -sf phar.phar $pkgdir/usr/bin/phar + # cleanup + rm -f ${pkgdir}`${pkgdir}/usr/bin/php-config --extension-dir`/*.a # install php.ini - install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/php/php.ini + install -D -m644 ${srcdir}/php.ini ${pkgdir}/etc/php/php.ini install -d -m755 ${pkgdir}/etc/php/conf.d/ - # remove static modules - rm -f ${pkgdir}/usr/lib/php/modules/*.a - # remove modules provided by sub packages - rm -f ${pkgdir}/usr/lib/php/modules/{curl,enchant,gd,gmp,intl,ldap,mcrypt,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so -} + # cgi and fcgi + ./configure ${phpconfig} \ + --enable-fastcgi \ + --enable-cgi \ + --enable-discard-path \ + --enable-force-cgi-redirect \ + --disable-cli \ + ${phpextensions} + make + install -D -m755 sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi -package_php-cgi() { - pkgdesc='CGI and FCGI SAPI for PHP' - depends=('php' 'pcre' 'libxml2') - - install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi -} - -package_php-apache() { - pkgdesc='Apache SAPI for PHP' - depends=('php' 'apache' 'pcre' 'libxml2') - backup=('etc/httpd/conf/extra/php5_module.conf') - - install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so + # mod_php + ./configure ${phpconfig} \ + --with-apxs2 \ + --disable-cli \ + ${phpextensions} + make + install -D -m644 libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf } - -package_php-pear() { - pkgdesc='PHP Extension and Application Repository' - depends=('php' 'bash') - backup=("etc/php/pear.conf") - - cd ${srcdir}/build-pear - make install-pear INSTALL_ROOT=${pkgdir} - for i in $(find ${pkgdir}/ -name '.*'); do - [ -e $i ] && rm -rf $i - done -} - -package_php-curl() { - depends=('php' 'curl') - pkgdesc="curl module for PHP" - install -D -m755 ${srcdir}/build-php/modules/curl.so ${pkgdir}/usr/lib/php/modules/curl.so -} - -package_php-enchant() { - depends=('php' 'enchant') - pkgdesc="enchant module for PHP" - install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/php/modules/enchant.so -} - -package_php-gd() { - depends=('php' 'gd') - pkgdesc="gd module for PHP" - install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so -} - -package_php-gmp() { - depends=('php' 'gmp') - pkgdesc="gmp module for PHP" - install -D -m755 ${srcdir}/build-php/modules/gmp.so ${pkgdir}/usr/lib/php/modules/gmp.so -} - -package_php-intl() { - depends=('php' 'icu') - pkgdesc="intl module for PHP" - install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/php/modules/intl.so -} - -package_php-ldap() { - depends=('php' 'libldap') - pkgdesc="ldap module for PHP" - install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/php/modules/ldap.so -} - -package_php-mcrypt() { - depends=('php' 'libmcrypt' 'libtool') - pkgdesc="mcrypt module for PHP" - install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/php/modules/mcrypt.so -} - -package_php-odbc() { - depends=('php' 'unixodbc') - pkgdesc="ODBC modules for PHP" - install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/php/modules/odbc.so - install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/php/modules/pdo_odbc.so -} - -package_php-pgsql() { - depends=('php' 'postgresql-libs') - pkgdesc="PostgreSQL modules for PHP" - install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/php/modules/pgsql.so - install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/php/modules/pdo_pgsql.so -} - -package_php-pspell() { - depends=('php' 'aspell') - pkgdesc="pspell module for PHP" - install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/php/modules/pspell.so -} - -package_php-snmp() { - depends=('php' 'net-snmp') - pkgdesc="snmp module for PHP" - install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/php/modules/snmp.so -} - -package_php-sqlite() { - depends=('php' 'sqlite3') - pkgdesc="sqlite3 module for PHP" - install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/php/modules/sqlite3.so - install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/php/modules/pdo_sqlite.so -} - -package_php-tidy() { - depends=('php' 'tidyhtml') - pkgdesc="tidy module for PHP" - install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/php/modules/tidy.so -} - -package_php-xsl() { - depends=('php' 'libxslt') - pkgdesc="xsl module for PHP" - install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/php/modules/xsl.so -} diff --git a/extra/php/curl-flush.patch b/extra/php/curl-flush.patch new file mode 100644 index 000000000..14fc31a0b --- /dev/null +++ b/extra/php/curl-flush.patch @@ -0,0 +1,17 @@ +--- /repository/php-src/ext/curl/interface.c 2009/06/15 12:38:11 1.62.2.14.2.57 ++++ /repository/php-src/ext/curl/interface.c 2009/06/28 10:00:28 1.62.2.14.2.58 +@@ -1827,6 +1827,14 @@ + if (ch->handlers->write->method == PHP_CURL_RETURN && ch->handlers->write->buf.len > 0) { + smart_str_0(&ch->handlers->write->buf); + RETURN_STRINGL(ch->handlers->write->buf.c, ch->handlers->write->buf.len, 1); ++ } ++ ++ /* flush the file handle, so any remaining data is synched to disk */ ++ if (ch->handlers->write->method == PHP_CURL_FILE && ch->handlers->write->fp) { ++ fflush(ch->handlers->write->fp); ++ } ++ if (ch->handlers->write_header->method == PHP_CURL_FILE && ch->handlers->write_header->fp) { ++ fflush(ch->handlers->write_header->fp); + } + + if (ch->handlers->write->method == PHP_CURL_RETURN) { diff --git a/extra/php/db-configure.patch b/extra/php/db-configure.patch index 1d2c8182e..fdc82b905 100644 --- a/extra/php/db-configure.patch +++ b/extra/php/db-configure.patch @@ -1,6 +1,6 @@ ---- configure.orig 2009-06-29 17:46:18.000000000 +0200 -+++ configure 2009-08-14 08:34:52.000000000 +0200 -@@ -29088,43 +29088,15 @@ +--- configure.orig 2008-07-03 10:27:06.000000000 +0000 ++++ configure 2008-07-03 10:30:56.000000000 +0000 +@@ -28399,43 +28399,15 @@ unset THIS_INCLUDE THIS_LIBS THIS_LFLAGS THIS_PREFIX THIS_RESULT diff --git a/extra/php/gd-info-segfault.patch b/extra/php/gd-info-segfault.patch deleted file mode 100644 index 846a19ef7..000000000 --- a/extra/php/gd-info-segfault.patch +++ /dev/null @@ -1,26 +0,0 @@ -Index: ext/gd/libgd/gd_compat.c -=================================================================== ---- ext/gd/libgd/gd_compat.c (Revision 286947) -+++ ext/gd/libgd/gd_compat.c (Revision 286948) -@@ -14,7 +14,7 @@ - return JPEG_LIB_VERSION; - } - --int gdJpegGetVersionString() -+const char * gdJpegGetVersionString() - { - switch(JPEG_LIB_VERSION) { - case 62: -Index: ext/gd/libgd/gd_compat.h -=================================================================== ---- ext/gd/libgd/gd_compat.h (Revision 286947) -+++ ext/gd/libgd/gd_compat.h (Revision 286948) -@@ -8,7 +8,7 @@ - #endif - - const char * gdPngGetVersionString(); --int gdJpegGetVersionString(); -+const char * gdJpegGetVersionString(); - int gdJpegGetVersionInt(); - int overflow2(int a, int b); - diff --git a/extra/php/php.ini b/extra/php/php.ini new file mode 100644 index 000000000..ae5e5e6d8 --- /dev/null +++ b/extra/php/php.ini @@ -0,0 +1,1308 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; This file controls many aspects of PHP's behavior. In order for PHP to +; read it, it must be named 'php.ini'. PHP looks for it in the current +; working directory, in the path designated by the environment variable +; PHPRC, and in the path that was defined in compile time (in that order). +; The path in which the php.ini file is looked for can be overridden using +; the -c argument in command line mode. +; +; The syntax of the file is extremely simple. Whitespace and Lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. +; +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo"). +; +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT +; +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. +; +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: +; +; foo = ; sets foo to an empty string +; foo = none ; sets foo to an empty string +; foo = "none" ; sets foo to the string 'none' +; +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. +; +; +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; This is the recommended, PHP 5-style version of the php.ini-dist file. It +; sets some non standard settings, that make PHP more efficient, more secure, +; and encourage cleaner coding. +; +; The price is that with these settings, PHP may be incompatible with some +; applications, and sometimes, more difficult to develop with. Using this +; file is warmly recommended for production sites. As all of the changes from +; the standard settings are thoroughly documented, you can go over each one, +; and decide whether you want to use it or not. +; +; For general information about the php.ini file, please consult the php.ini-dist +; file, included in your PHP distribution. +; +; This file is different from the php.ini-dist file in the fact that it features +; different values for several directives, in order to improve performance, while +; possibly breaking compatibility with the standard out-of-the-box behavior of +; PHP. Please make sure you read what's different, and modify your scripts +; accordingly, if you decide to use this file instead. +; +; - register_long_arrays = Off [Performance] +; Disables registration of the older (and deprecated) long predefined array +; variables ($HTTP_*_VARS). Instead, use the superglobals that were +; introduced in PHP 4.1.0 +; - display_errors = Off [Security] +; With this directive set to off, errors that occur during the execution of +; scripts will no longer be displayed as a part of the script output, and thus, +; will no longer be exposed to remote users. With some errors, the error message +; content may expose information about your script, web server, or database +; server that may be exploitable for hacking. Production sites should have this +; directive set to off. +; - log_errors = On [Security] +; This directive complements the above one. Any errors that occur during the +; execution of your script will be logged (typically, to your server's error log, +; but can be configured in several ways). Along with setting display_errors to off, +; this setup gives you the ability to fully understand what may have gone wrong, +; without exposing any sensitive information to remote users. +; - output_buffering = 4096 [Performance] +; Set a 4KB output buffer. Enabling output buffering typically results in less +; writes, and sometimes less packets sent on the wire, which can often lead to +; better performance. The gain this directive actually yields greatly depends +; on which Web server you're working with, and what kind of scripts you're using. +; - register_argc_argv = Off [Performance] +; Disables registration of the somewhat redundant $argv and $argc global +; variables. +; - magic_quotes_gpc = Off [Performance] +; Input data is no longer escaped with slashes so that it can be sent into +; SQL databases without further manipulation. Instead, you should use the +; database vendor specific escape string function on each input element you +; wish to send to a database. +; - variables_order = "GPCS" [Performance] +; The environment variables are not hashed into the $_ENV. To access +; environment variables, you can use getenv() instead. +; - error_reporting = E_ALL [Code Cleanliness, Security(?)] +; By default, PHP suppresses errors of type E_NOTICE. These error messages +; are emitted for non-critical errors, but that could be a symptom of a bigger +; problem. Most notably, this will cause error messages about the use +; of uninitialized variables to be displayed. +; - allow_call_time_pass_reference = Off [Code cleanliness] +; It's not possible to decide to force a variable to be passed by reference +; when calling a function. The PHP 4 style to do this is by making the +; function require the relevant argument by reference. +; - short_open_tag = Off [Portability] +; Using short tags is discouraged when developing code meant for redistribution +; since short tags may not be supported on the target server. + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +engine = On + +; Enable compatibility mode with Zend Engine 1 (PHP 4.x) +zend.ze1_compatibility_mode = Off + +; Allow the tags are recognized. +; NOTE: Using short tags should be avoided when developing applications or +; libraries that are meant for redistribution, or deployment on PHP +; servers which are not under your control, because short tags may not +; be supported on the target server. For portable, redistributable code, +; be sure not to use short tags. +short_open_tag = Off + +; Allow ASP-style <% %> tags. +asp_tags = Off + +; The number of significant digits displayed in floating point numbers. +precision = 14 + +; Enforce year 2000 compliance (will cause problems with non-compliant browsers) +y2k_compliance = On + +; Output buffering allows you to send header lines (including cookies) even +; after you send body content, at the price of slowing PHP's output layer a +; bit. You can enable output buffering during runtime by calling the output +; buffering functions. You can also enable output buffering for all files by +; setting this directive to On. If you wish to limit the size of the buffer +; to a certain size - you can use a maximum number of bytes instead of 'On', as +; a value for this directive (e.g., output_buffering=4096). +output_buffering = 4096 + +; You can redirect all of the output of your scripts to a function. For +; example, if you set output_handler to "mb_output_handler", character +; encoding will be transparently converted to the specified encoding. +; Setting any output handler automatically turns on output buffering. +; Note: People who wrote portable scripts should not depend on this ini +; directive. Instead, explicitly set the output handler using ob_start(). +; Using this ini directive may cause problems unless you know what script +; is doing. +; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" +; and you cannot use both "ob_gzhandler" and "zlib.output_compression". +; Note: output_handler must be empty if this is set 'On' !!!! +; Instead you must use zlib.output_handler. +;output_handler = + +; Transparent output compression using the zlib library +; Valid values for this option are 'off', 'on', or a specific buffer size +; to be used for compression (default is 4KB) +; Note: Resulting chunk size may vary due to nature of compression. PHP +; outputs chunks that are few hundreds bytes each as a result of +; compression. If you prefer a larger chunk size for better +; performance, enable output_buffering in addition. +; Note: You need to use zlib.output_handler instead of the standard +; output_handler, or otherwise the output will be corrupted. +zlib.output_compression = Off +;zlib.output_compression_level = -1 + +; You cannot specify additional output handlers if zlib.output_compression +; is activated here. This setting does the same as output_handler but in +; a different order. +;zlib.output_handler = + +; Implicit flush tells PHP to tell the output layer to flush itself +; automatically after every output block. This is equivalent to calling the +; PHP function flush() after each and every call to print() or echo() and each +; and every HTML block. Turning this option on has serious performance +; implications and is generally recommended for debugging purposes only. +implicit_flush = Off + +; The unserialize callback function will be called (with the undefined class' +; name as parameter), if the unserializer finds an undefined class +; which should be instantiated. +; A warning appears if the specified function is not defined, or if the +; function doesn't include/implement the missing class. +; So only set this entry, if you really want to implement such a +; callback-function. +unserialize_callback_func= + +; When floats & doubles are serialized store serialize_precision significant +; digits after the floating point. The default value ensures that when floats +; are decoded with unserialize, the data will remain the same. +serialize_precision = 100 + +; Whether to enable the ability to force arguments to be passed by reference +; at function call time. This method is deprecated and is likely to be +; unsupported in future versions of PHP/Zend. The encouraged method of +; specifying which arguments should be passed by reference is in the function +; declaration. You're encouraged to try and turn this option Off and make +; sure your scripts work properly with it in order to ensure they will work +; with future versions of the language (you will receive a warning each time +; you use this feature, and the argument will be passed by value instead of by +; reference). +allow_call_time_pass_reference = Off + +; +; Safe Mode +; +safe_mode = Off + +; By default, Safe Mode does a UID compare check when +; opening files. If you want to relax this to a GID compare, +; then turn on safe_mode_gid. +safe_mode_gid = Off + +; When safe_mode is on, UID/GID checks are bypassed when +; including files from this directory and its subdirectories. +; (directory must also be in include_path or full path must +; be used when including) +safe_mode_include_dir = + +; When safe_mode is on, only executables located in the safe_mode_exec_dir +; will be allowed to be executed via the exec family of functions. +safe_mode_exec_dir = + +; Setting certain environment variables may be a potential security breach. +; This directive contains a comma-delimited list of prefixes. In Safe Mode, +; the user may only alter environment variables whose names begin with the +; prefixes supplied here. By default, users will only be able to set +; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR). +; +; Note: If this directive is empty, PHP will let the user modify ANY +; environment variable! +safe_mode_allowed_env_vars = PHP_ + +; This directive contains a comma-delimited list of environment variables that +; the end user won't be able to change using putenv(). These variables will be +; protected even if safe_mode_allowed_env_vars is set to allow to change them. +safe_mode_protected_env_vars = LD_LIBRARY_PATH + +; open_basedir, if set, limits all file operations to the defined directory +; and below. This directive makes most sense if used in a per-directory +; or per-virtualhost web server configuration file. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/ + +; This directive allows you to disable certain functions for security reasons. +; It receives a comma-delimited list of function names. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +disable_functions = + +; This directive allows you to disable certain classes for security reasons. +; It receives a comma-delimited list of class names. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +disable_classes = + +; Colors for Syntax Highlighting mode. Anything that's acceptable in +; would work. +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.bg = #FFFFFF +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long request, which may end up +; being interrupted by the user or a browser timing out. +; ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; realpath_cache_size=16k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; realpath_cache_ttl=120 + +; +; Misc +; +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +expose_php = Off + + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +max_execution_time = 30 ; Maximum execution time of each script, in seconds +max_input_time = 60 ; Maximum amount of time each script may spend parsing request data +;max_input_nesting_level = 64 ; Maximum input variable nesting level +memory_limit = 32M ; Maximum amount of memory a script may consume (32MB) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; error_reporting is a bit-field. Or each number up to get desired error +; reporting level +; E_ALL - All errors and warnings (doesn't include E_STRICT) +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it's automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; +; Examples: +; +; - Show all errors, except for notices and coding standards warnings +; +;error_reporting = E_ALL & ~E_NOTICE +; +; - Show all errors, except for notices +; +;error_reporting = E_ALL & ~E_NOTICE | E_STRICT +; +; - Show only errors +; +;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR +; +; - Show all errors, except coding standards warnings +; +error_reporting = E_ALL + +; Print out errors (as a part of the output). For production web sites, +; you're strongly encouraged to turn this feature off, and use error logging +; instead (see below). Keeping display_errors enabled on a production web site +; may reveal security information to end users, such as file paths on your Web +; server, your database schema or other information. +; +; possible values for display_errors: +; +; Off - Do not display any errors +; stderr - Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout - Display errors to STDOUT (default) +; +; To output errors to STDERR with CGI/CLI: +;display_errors = "stderr" +; +; Default +; +display_errors = Off + +; Even when display_errors is on, errors that occur during PHP's startup +; sequence are not displayed. It's strongly recommended to keep +; display_startup_errors off, except for when debugging. +display_startup_errors = Off + +; Log errors into a log file (server-specific log, stderr, or error_log (below)) +; As stated above, you're strongly advised to use error logging in place of +; error displaying on production web sites. +log_errors = On + +; Set maximum length of log_errors. In error_log information about the source is +; added. The default is 1024 and 0 allows to not apply any maximum length at all. +log_errors_max_len = 1024 + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This has only effect in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +report_memleaks = Off + +;report_zend_debug = 0 + +; Store the last error/warning message in $php_errormsg (boolean). +track_errors = Off + +; Turn off normal error reporting and emit XML-RPC error XML +;xmlrpc_errors = 0 +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; Disable the inclusion of HTML tags in error messages. +; Note: Never use this feature for production boxes. +;html_errors = Off + +; If html_errors is set On PHP produces clickable error messages that direct +; to a page describing the error or function causing the error in detail. +; You can download a copy of the PHP manual from http://www.php.net/docs.php +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. +; Note: Never use this feature for production boxes. +;docref_root = "/phpmanual/" +;docref_ext = .html + +; String to output before an error message. +;error_prepend_string = "" + +; String to output after an error message. +;error_append_string = "" + +; Log errors to specified file. +;error_log = filename + +; Log errors to syslog. +error_log = syslog + + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; +; +; Note - track_vars is ALWAYS enabled as of PHP 4.0.3 + +; The separator used in PHP generated URLs to separate arguments. +; Default is "&". +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; Default is "&". +; NOTE: Every character in this directive is considered as separator! +;arg_separator.input = ";&" + +; This directive describes the order in which PHP registers GET, POST, Cookie, +; Environment and Built-in variables (G, P, C, E & S respectively, often +; referred to as EGPCS or GPC). Registration is done from left to right, newer +; values override older values. +variables_order = "GPCS" + +; Whether or not to register the EGPCS variables as global variables. You may +; want to turn this off if you don't want to clutter your scripts' global scope +; with user data. This makes most sense when coupled with track_vars - in which +; case you can access all of the GPC variables through the $HTTP_*_VARS[], +; variables. +; +; You should do your best to write your scripts so that they do not require +; register_globals to be on; Using form variables as globals can easily lead +; to possible security problems, if the code is not very well thought of. +register_globals = Off + +; Whether or not to register the old-style input arrays, HTTP_GET_VARS +; and friends. If you're not using them, it's recommended to turn them off, +; for performance reasons. +register_long_arrays = Off + +; This directive tells PHP whether to declare the argv&argc variables (that +; would contain the GET information). If you don't use these variables, you +; should turn it off for increased performance. +register_argc_argv = Off + +; When enabled, the SERVER and ENV variables are created when they're first +; used (Just In Time) instead of when the script starts. If these variables +; are not used within a script, having this directive on will result in a +; performance gain. The PHP directives register_globals, register_long_arrays, +; and register_argc_argv must be disabled for this directive to have any affect. +auto_globals_jit = On + +; Maximum size of POST data that PHP will accept. +post_max_size = 8M + +; Magic quotes +; + +; Magic quotes for incoming GET/POST/Cookie data. +magic_quotes_gpc = Off + +; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. +magic_quotes_runtime = Off + +; Use Sybase-style magic quotes (escape ' with '' instead of \'). +magic_quotes_sybase = Off + +; Automatically add files before or after any PHP document. +auto_prepend_file = +auto_append_file = + +; As of 4.0b4, PHP always outputs a character encoding by default in +; the Content-type: header. To disable sending of the charset, simply +; set it to be empty. +; +; PHP's built-in default is text/html +default_mimetype = "text/html" +;default_charset = "iso-8859-1" + +; Always populate the $HTTP_RAW_POST_DATA variable. +;always_populate_raw_post_data = On + + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +include_path = ".:/usr/share/pear" + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +user_dir = + +; Directory in which the loadable extensions (modules) reside. +extension_dir = "/usr/lib/php/20060613/" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. +; cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; cgi.redirect_status_env = ; + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; cgi.fix_pathinfo=1 + +; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; fastcgi.impersonate = 1; + +; Disable logging through FastCGI connection +; fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If it's set 0 PHP sends Status: header that +; is supported by Apache. When this option is set to 1 PHP will send +; RFC2616 compliant header. +; Default is zero. +;cgi.rfc2616_headers = 0 + + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +upload_max_filesize = 2M + + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +allow_url_fopen = Off + +; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +allow_url_include = Off + +; Define the anonymous ftp password (your email address) +;from="john@doe.com" + +; Define the User-Agent string +; user_agent="PHP" + +; Default timeout for socket based streams (seconds) +default_socket_timeout = 60 + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; +; +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename.extension +; +; For example, under UNIX: +; +; extension=msql.so +; +; Note that it should be the name of the module only; no directory information +; needs to go here. Specify the location of the extension with the +; extension_dir directive above. + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[Date] +; Defines the default timezone used by the date functions +;date.timezone = + +;date.default_latitude = 31.7667 +;date.default_longitude = 35.2333 + +;date.sunrise_zenith = 90.583333 +;date.sunset_zenith = 90.583333 + +[filter] +;filter.default = unsafe_raw +;filter.default_flags = + +[iconv] +;iconv.input_encoding = ISO-8859-1 +;iconv.internal_encoding = ISO-8859-1 +;iconv.output_encoding = ISO-8859-1 + +[sqlite] +;sqlite.assoc_case = 0 + +[Pcre] +;PCRE library backtracking limit. +;pcre.backtrack_limit=100000 + +;PCRE library recursion limit. +;Please note that if you set this value to a high number you may consume all +;the available process stack and eventually crash PHP (due to reaching the +;stack size limit imposed by the Operating System). +;pcre.recursion_limit=100000 + +[Syslog] +; Whether or not to define the various syslog variables (e.g. $LOG_PID, +; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In +; runtime, you can define these variables by calling define_syslog_variables(). +define_syslog_variables = Off + +[mail function] +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(), even in safe mode. +;mail.force_extra_parameters = + +[SQL] +sql.safe_mode = Off + +[ODBC] +;odbc.default_db = Not yet implemented +;odbc.default_user = Not yet implemented +;odbc.default_pw = Not yet implemented + +; Allow or prevent persistent links. +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of uodbc.defaultlrl and uodbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQL] +; Allow or prevent persistent links. +mysql.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +mysql.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +mysql.max_links = -1 + +; Default port number for mysql_connect(). If unset, mysql_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). +mysql.default_port = + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +mysql.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +mysql.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +mysql.default_user = + +; Default password for mysql_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +mysql.default_password = + +; Maximum time (in seconds) for connect timeout. -1 means no limit +mysql.connect_timeout = 60 + +; Trace mode. When trace_mode is active (=On), warnings for table/index scans and +; SQL-Errors will be displayed. +mysql.trace_mode = Off + +[MySQLi] + +; Maximum number of links. -1 means no limit. +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +mysqli.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +mysqli.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +[mSQL] +; Allow or prevent persistent links. +msql.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +msql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +msql.max_links = -1 + +[OCI8] +; enables privileged connections using external credentials (OCI_SYSOPER, OCI_SYSDBA) +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +;oci8.ping_interval = 60 + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +;oci8.default_prefetch = 10 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +;oci8.old_oci_close_semantics = Off + +[PostgresSQL] +; Allow or prevent persistent links. +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +pgsql.log_notice = 0 + +[Sybase] +; Allow or prevent persistent links. +sybase.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +sybase.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +sybase.max_links = -1 + +;sybase.interface_file = "/usr/sybase/interfaces" + +; Minimum error severity to display. +sybase.min_error_severity = 10 + +; Minimum message severity to display. +sybase.min_message_severity = 10 + +; Compatibility mode with old versions of PHP 3.0. +; If on, this will cause PHP to automatically assign types to results according +; to their Sybase type, instead of treating them all as strings. This +; compatibility mode will probably not stay around forever, so try applying +; whatever necessary changes to your code, and turn it off. +sybase.compatability_mode = Off + +[Sybase-CT] +; Allow or prevent persistent links. +sybct.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +sybct.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +sybct.max_links = -1 + +; Minimum server message severity to display. +sybct.min_server_severity = 10 + +; Minimum client message severity to display. +sybct.min_client_severity = 10 + +[bcmath] +; Number of decimal digits for all bcmath functions. +bcmath.scale = 0 + +[browscap] +;browscap = extra/browscap.ini + +[Informix] +; Default host for ifx_connect() (doesn't apply in safe mode). +ifx.default_host = + +; Default user for ifx_connect() (doesn't apply in safe mode). +ifx.default_user = + +; Default password for ifx_connect() (doesn't apply in safe mode). +ifx.default_password = + +; Allow or prevent persistent links. +ifx.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +ifx.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +ifx.max_links = -1 + +; If on, select statements return the contents of a text blob instead of its id. +ifx.textasvarchar = 0 + +; If on, select statements return the contents of a byte blob instead of its id. +ifx.byteasvarchar = 0 + +; Trailing blanks are stripped from fixed-length char columns. May help the +; life of Informix SE users. +ifx.charasvarchar = 0 + +; If on, the contents of text and byte blobs are dumped to a file instead of +; keeping them in memory. +ifx.blobinfile = 0 + +; NULL's are returned as empty strings, unless this is set to 1. In that case, +; NULL's are returned as string 'NULL'. +ifx.nullformat = 0 + +[Session] +; Handler used to store/retrieve data. +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. +; +; As of PHP 4.0.1, you can define the path as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if you +; or your OS have problems with lots of files in one directory, and is +; a more efficient layout for servers that handle lots of sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +session.save_path = "/tmp" + +; Whether to use cookies. +session.use_cookies = 1 + +;session.cookie_secure = + +; This option enables administrators to make their users invulnerable to +; attacks which involve passing session ids in URLs; defaults to 0. +; session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +session.name = PHPSESSID + +; Initialize session on request startup. +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +session.cookie_path = / + +; The domain for which the cookie is valid. +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. +session.cookie_httponly = + +; Handler used to serialize data. php is the standard serializer of PHP. +session.serialize_handler = php + +; Define the probability that the 'garbage collection' process is started +; on every session initialization. +; The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts +; on each request. + +session.gc_probability = 1 +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script would is the equivalent of +; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; cd /path/to/sessions; find -cmin +24 | xargs rm + +; PHP 4.2 and less have an undocumented feature/bug that allows you to +; to initialize a session variable in the global scope, albeit register_globals +; is disabled. PHP 4.3 and later will warn you, if this feature is used. +; You can disable the feature and the warning separately. At this time, +; the warning is only displayed, if bug_compat_42 is enabled. + +session.bug_compat_42 = 0 +session.bug_compat_warn = 1 + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +session.referer_check = + +; How many bytes to read from the file. +session.entropy_length = 0 + +; Specified here to create the session id. +session.entropy_file = + +;session.entropy_length = 16 + +;session.entropy_file = /dev/urandom + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +session.cache_limiter = nocache + +; Document expires after n minutes. +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publically accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +session.use_trans_sid = 0 + +; Select a hash function +; 0: MD5 (128 bits) +; 1: SHA-1 (160 bits) +session.hash_function = 0 + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; +; 4 bits: 0-9, a-f +; 5 bits: 0-9, a-v +; 6 bits: 0-9, a-z, A-Z, "-", "," +session.hash_bits_per_character = 5 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +; form/fieldset are special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. If you want XHTML conformity, remove the form entry. +; Note that all valid entries require a "=", even if no value follows. +url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" + +[MSSQL] +; Allow or prevent persistent links. +mssql.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +mssql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +mssql.max_links = -1 + +; Minimum error severity to display. +mssql.min_error_severity = 10 + +; Minimum message severity to display. +mssql.min_message_severity = 10 + +; Compatibility mode with old versions of PHP 3.0. +mssql.compatability_mode = Off + +; Connect timeout +;mssql.connect_timeout = 5 + +; Query timeout +;mssql.timeout = 60 + +; Valid range 0 - 2147483647. Default = 4096. +;mssql.textlimit = 4096 + +; Valid range 0 - 2147483647. Default = 4096. +;mssql.textsize = 4096 + +; Limits the number of records in each batch. 0 = all records in one batch. +;mssql.batchsize = 0 + +; Specify how datetime and datetim4 columns are returned +; On => Returns data converted to SQL server settings +; Off => Returns values as YYYY-MM-DD hh:mm:ss +;mssql.datetimeconvert = On + +; Use NT authentication when connecting to the server +mssql.secure_connection = Off + +; Specify max number of processes. -1 = library default +; msdlib defaults to 25 +; FreeTDS defaults to 4096 +;mssql.max_procs = -1 + +; Specify client character set. +; If empty or not set the client charset from freetds.comf is used +; This is only used when compiled with FreeTDS +;mssql.charset = "ISO-8859-1" + +[Assertion] +; Assert(expr); active by default. +;assert.active = On + +; Issue a PHP warning for each failed assertion. +;assert.warning = On + +; Don't bail out by default. +;assert.bail = Off + +; User-function to be called if an assertion fails. +;assert.callback = 0 + +; Eval the expression with current error_reporting(). Set to true if you want +; error_reporting(0) around the eval(). +;assert.quiet_eval = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +;com.typelib_file = +; allow Distributed-COM calls +;com.allow_dcom = true +; autoregister constants of a components typlib on com_load() +;com.autoregister_typelib = true +; register constants casesensitive +;com.autoregister_casesensitive = false +; show warnings on duplicate constant registrations +;com.autoregister_verbose = true + +[mbstring] +; language for internal character representation. +;mbstring.language = Japanese + +; internal/script encoding. +; Some encoding cannot work as internal encoding. +; (e.g. SJIS, BIG5, ISO-2022-*) +;mbstring.internal_encoding = EUC-JP + +; http input encoding. +;mbstring.http_input = auto + +; http output encoding. mb_output_handler must be +; registered as output buffer to function +;mbstring.http_output = SJIS + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; auto means +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +;mbstring.substitute_character = none; + +; overload(replace) single byte functions by mbstring functions. +; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), +; etc. Possible values are 0,1,2,4 or combination of them. +; For example, 7 for overload everything. +; 0: No overload +; 1: Overload mail() function +; 2: Overload str*() functions +; 4: Overload ereg*() functions +;mbstring.func_overload = 0 + +; enable strict encoding detection. +;mbstring.strict_detection = Off + +[FrontBase] +;fbsql.allow_persistent = On +;fbsql.autocommit = On +;fbsql.show_timestamp_decimals = Off +;fbsql.default_database = +;fbsql.default_database_password = +;fbsql.default_host = +;fbsql.default_password = +;fbsql.default_user = "_SYSTEM" +;fbsql.generate_warnings = Off +;fbsql.max_connections = 128 +;fbsql.max_links = 128 +;fbsql.max_persistent = -1 +;fbsql.max_results = 128 + +[gd] +; Tell the jpeg decode to libjpeg warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +;gd.jpeg_ignore_warning = 0 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +;exif.encode_unicode = ISO-8859-15 +;exif.decode_unicode_motorola = UCS-2BE +;exif.decode_unicode_intel = UCS-2LE +;exif.encode_jis = +;exif.decode_jis_motorola = JIS +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +soap.wsdl_cache_enabled=1 +; Sets the directory name where SOAP extension will put cache files. +soap.wsdl_cache_dir="/tmp" +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +soap.wsdl_cache_ttl=86400 + + +; available extensions +; +;extension=bcmath.so +;extension=bz2.so +;extension=calendar.so +;extension=curl.so +;extension=dba.so +;extension=dbase.so +;extension=exif.so +;extension=ftp.so +;extension=gd.so +extension=gettext.so +;extension=gmp.so +;extension=iconv.so +;extension=imap.so +;extension=json.so +;extension=ldap.so +;extension=mcrypt.so +;extension=mhash.so +;extension=mime_magic.so +;extension=mysql.so +;extension=mysqli.so +;extension=ncurses.so +;extension=odbc.so +;extension=openssl.so +;extension=pdo.so +;extension=pdo_mysql.so +;extension=pdo_odbc.so +;extension=pdo_pgsql.so +;extension=pdo_sqlite.so +;extension=pgsql.so +;extension=posix.so +;extension=pspell.so +extension=session.so +;extension=shmop.so +;extension=snmp.so +;extension=soap.so +;extension=sockets.so +;extension=sqlite.so +;extension=sysvmsg.so +;extension=sysvsem.so +;extension=sysvshm.so +;extension=tidy.so +;extension=xmlrpc.so +;extension=xsl.so +;extension=zip.so +extension=zlib.so + + +; Local Variables: +; tab-width: 4 +; End: diff --git a/extra/php/php.ini.patch b/extra/php/php.ini.patch deleted file mode 100644 index cd91d50f3..000000000 --- a/extra/php/php.ini.patch +++ /dev/null @@ -1,120 +0,0 @@ ---- php.ini-production 2009-06-30 01:05:38.000000000 +0200 -+++ php.ini 2009-06-30 01:02:15.000000000 +0200 -@@ -376,7 +376,7 @@ - ; or per-virtualhost web server configuration file. This directive is - ; *NOT* affected by whether Safe Mode is turned On or Off. - ; http://php.net/open-basedir --;open_basedir = -+open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/ - - ; This directive allows you to disable certain functions for security reasons. - ; It receives a comma-delimited list of function names. This directive is -@@ -785,7 +785,7 @@ - ;;;;;;;;;;;;;;;;;;;;;;;;; - - ; UNIX: "/path1:/path2" --;include_path = ".:/php/includes" -+include_path = ".:/usr/share/pear" - ; - ; Windows: "\path1;\path2" - ;include_path = ".;c:\php\includes" -@@ -808,7 +808,7 @@ - - ; Directory in which the loadable extensions (modules) reside. - ; http://php.net/extension-dir --; extension_dir = "./" -+extension_dir = "/usr/lib/php/modules/" - ; On windows: - ; extension_dir = "ext" - -@@ -945,47 +945,49 @@ - ; extension folders as well as the separate PECL DLL download (PHP 5). - ; Be sure to appropriately set the extension_dir directive. - ; --;extension=php_bz2.dll --;extension=php_curl.dll --;extension=php_dba.dll --;extension=php_exif.dll --;extension=php_fileinfo.dll --;extension=php_gd2.dll --;extension=php_gettext.dll --;extension=php_gmp.dll --;extension=php_intl.dll --;extension=php_imap.dll --;extension=php_interbase.dll --;extension=php_ldap.dll --;extension=php_mbstring.dll --;extension=php_ming.dll --;extension=php_mssql.dll --;extension=php_mysql.dll --;extension=php_mysqli.dll --;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client --;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client --;extension=php_openssl.dll --;extension=php_pdo_firebird.dll --;extension=php_pdo_mssql.dll --;extension=php_pdo_mysql.dll --;extension=php_pdo_oci.dll --;extension=php_pdo_odbc.dll --;extension=php_pdo_pgsql.dll --;extension=php_pdo_sqlite.dll --;extension=php_pgsql.dll --;extension=php_phar.dll --;extension=php_pspell.dll --;extension=php_shmop.dll --;extension=php_snmp.dll --;extension=php_soap.dll --;extension=php_sockets.dll --;extension=php_sqlite.dll --;extension=php_sqlite3.dll --;extension=php_sybase_ct.dll --;extension=php_tidy.dll --;extension=php_xmlrpc.dll --;extension=php_xsl.dll --;extension=php_zip.dll -+;extension=bcmath.so -+;extension=bz2.so -+;extension=calendar.so -+;extension=curl.so -+;extension=dba.so -+;extension=enchant.so -+;extension=exif.so -+;extension=ftp.so -+;extension=gd.so -+extension=gettext.so -+;extension=gmp.so -+;extension=iconv.so -+;extension=imap.so -+;extension=intl.so -+;extension=json.so -+;extension=ldap.so -+;extension=mcrypt.so -+;extension=mysql.so -+;extension=mysqli.so -+;extension=odbc.so -+;extension=openssl.so -+;extension=pdo.so -+;extension=pdo_mysql.so -+;extension=pdo_odbc.so -+;extension=pdo_pgsql.so -+;extension=pdo_sqlite.so -+;extension=pgsql.so -+;extension=phar.so -+;extension=posix.so -+;extension=pspell.so -+;extension=shmop.so -+;extension=snmp.so -+;extension=soap.so -+;extension=sockets.so -+;extension=sqlite.so -+;extension=sqlite3.so -+;extension=sysvmsg.so -+;extension=sysvsem.so -+;extension=sysvshm.so -+;extension=tidy.so -+;extension=xmlrpc.so -+;extension=xsl.so -+;extension=zip.so - - ;;;;;;;;;;;;;;;;;;; - ; Module Settings ; diff --git a/extra/php/suhosin-patch-5.2.10-0.9.7.patch.gz b/extra/php/suhosin-patch-5.2.10-0.9.7.patch.gz new file mode 100644 index 0000000000000000000000000000000000000000..9ca15df2bb998fa4ab4576d29a3420229a0483b4 GIT binary patch literal 23072 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 literal 0 HcmV?d00001