finished the ini-settings integration, maybe

config.xml: integrated parts removed. restructering, documentation of ini-settings fitting not into an extension
safe-mode
errorfunc
filesystem
info
misc
outcontrol added implicit_flush to ini-settings
sesam new structure, ini-settings
sybase added magic_quotes_sybase to ini-settings
var
rsusi: reflect changes


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@97414 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Friedhelm Betz 2002-09-30 00:09:47 +00:00
parent 04863c2371
commit 07968b860b
17 changed files with 2521 additions and 1215 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.25 $ -->
<!-- $Revision: 1.26 $ -->
<chapter id="features.safe-mode">
<title>Safe Mode</title>
@ -10,69 +10,240 @@
server and OS levels aren't very realistic, many people,
especially ISP's, use safe mode for now.
</para>
<para>
<table>
<title>Configuration directives controlling safe mode are:</title>
<tgroup cols="2">
<thead>
<sect1 id="ini.sect.safe-mode">
<title>Security and Safe Mode</title>
<para>
<table>
<title>Security and Safe Mode Configuration Directives</title>
<tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
<entry>Default</entry>
<entry>Changeable</entry>
</row>
</thead>
<tbody>
<row>
<entry>Directive</entry>
<entry>Default value</entry>
</row>
</thead>
<tbody>
<row>
<entry>
<link linkend="ini.safe-mode">safe_mode</link>
</entry>
<entry><literal>Off</literal></entry>
<entry>safe_mode</entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<link linkend="ini.safe-mode-gid">safe_mode_gid</link>
</entry>
<entry><literal>0</literal></entry>
<entry>safe_mode_gid</entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<link linkend="ini.safe-mode-include-dir">safe_mode_include_dir</link>
</entry>
<entry><literal>""</literal></entry>
<entry>safe_mode_include_dir</entry>
<entry>NULL</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<link linkend="ini.safe-mode-exec-dir">safe_mode_exec_dir</link>
</entry>
<entry><literal>1</literal></entry>
<entry>safe_mode_exec_dir</entry>
<entry>""</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<link linkend="ini.open-basedir">open_basedir</link>
</entry>
<entry><literal>""</literal></entry>
<entry>safe_mode_allowed_env_vars</entry>
<entry>PHP_</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<literal>safe_mode_allowed_env_vars</literal>
</entry>
<entry><literal>PHP_</literal></entry>
<entry>safe_mode_protected_env_vars</entry>
<entry>LD_LIBRARY_PATH</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<literal>safe_mode_protected_env_vars</literal>
</entry>
<entry><literal>LD_LIBRARY_PATH</literal></entry>
<entry>open_basedir</entry>
<entry>NULL</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<literal>disable_functions</literal>
</entry>
<entry><literal>""</literal></entry>
<entry>disable_functions</entry>
<entry>""</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</tbody>
</tgroup>
</table>
For further details and definition of the PHP_INI_* constants see
<function>ini_set</function>.
</para>
<para>
Here is a short explanation of the configuration directives.
<variablelist>
<varlistentry id="ini.safe-mode">
<term>
<parameter>safe_mode</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Whether to enable PHP's safe mode. Read the
<link linkend="security">Security</link> and chapter for more
information.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.safe-mode-gid">
<term>
<parameter>safe_mode_gid</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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.
Whether to use <literal>UID</literal> (&false;) or
<literal>GID</literal> (&true;) checking upon file
access.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.safe-mode-include-dir">
<term>
<parameter>safe_mode_include_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
<literal>UID</literal>/<literal>GID</literal> checks are bypassed when
including files from this directory and its subdirectories (directory
must also be in <link linkend="ini.include-path">include_path</link>
or full path must including).
</para>
<simpara>
As of PHP 4.2.0, this directive can take a semi-colon separated
path in a similar fashion to the
<link linkend="ini.include-path">include_path</link> directive,
rather than just a single directory.
</simpara>
</listitem>
</varlistentry>
<varlistentry id="ini.safe-mode-exec-dir">
<term>
<parameter>safe_mode_exec_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
If PHP is used in safe mode, <function>system</function> and the other
<link linkend="ref.exec">functions executing system programs</link>
refuse to start programs that are not in this directory.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.safe-mode-allowed-env-vars">
<term>
<parameter>safe_mode_allowed_env_vars</parameter>
<type>string</type>
</term>
<listitem>
<para>
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).
</para>
<note>
<para>
If this directive is empty, PHP will let the user modify ANY
environment variable!
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.safe-mode-protected-env-vars">
<term>
<parameter>safe_mode_protected_env_vars</parameter>
<type>string</type>
</term>
<listitem>
<para>
This directive contains a comma-delimited list of environment
variables that the end user won't be able to change using
<function>putenv</function>. These variables will be protected
even if safe_mode_allowed_env_vars is set to allow to change them.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.open-basedir">
<term>
<parameter>open_basedir</parameter>
<type>string</type>
</term>
<listitem>
<para>
Limit the files that can be opened by PHP to the specified
directory-tree. This directive is <emphasis>NOT</emphasis>
affected by whether Safe Mode is turned On or Off.
</para>
<para>
When a script tries to open a file with,
for example, fopen or gzopen, the location of the file is
checked. When the file is outside the specified directory-tree,
PHP will refuse to open it. All symbolic links are resolved,
so it's not possible to avoid this restriction with a symlink.
</para>
<para>
The special value <systemitem class="constant">.</systemitem>
indicates that the directory in which the script is stored will
be used as base-directory.
</para>
<para>
Under Windows, separate the directories with a semicolon. On all
other systems, separate the directories with a colon. As an Apache
module, open_basedir paths from parent directories are now
automatically inherited.
</para>
<para>
The restriction specified with open_basedir is actually a
prefix, not a directory name. This means that "open_basedir =
/dir/incl" also allows access to "/dir/include" and
"/dir/incls" if they exist. When you want to restrict access
to only the specified directory, end with a slash. For example:
"open_basedir = /dir/incl/"
</para>
<note>
<para>
Support for multiple directories was added in 3.0.7.
</para>
</note>
<para>
The default is to allow all files to be opened.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.disable-functions">
<term>
<parameter>disable_functions</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
This directive allows you to disable certain functions for
<link linkend="security">security</link> reasons. It takes
on a comma-dilimited list of function names. disable_functions
is not affected by <link linkend="ini.safe-mode">Safe Mode</link>.
</simpara>
<simpara>
This directive must be set in &php.ini; For example, you
cannot set this in <filename>httpd.conf</filename>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
See also: <link linkend="ini.register-globals">register_globals</link>,
<link linkend="ini.display-errors">display_errors</link>, and
<link linkend="ini.log-errors">log_errors</link>
</para>
<para>
When <link linkend="ini.safe-mode">safe_mode</link> is on, PHP checks to see
if the owner of the current script matches the owner of the file to be
@ -149,6 +320,7 @@ Warning: readfile() has been disabled for security reasons in
]]>
</screen>
</para>
</sect1>
<sect1 id="features.safe-mode.functions">
<title>Functions restricted/disabled by safe mode</title>

386
reference/errorfunc/ini.xml Normal file
View file

@ -0,0 +1,386 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="errorfunc.configuration">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title> Errors and Logging Configuration Options</title>
<tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
<entry>Default</entry>
<entry>Changeable</entry>
</row>
</thead>
<tbody>
<row>
<entry>error_reporting</entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>display_errors</entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>display_startup_errors</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>log_errors</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>log_errors_max_len</entry>
<entry>"1024"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>ignore_repeated_errors</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>ignore_repeated_source</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>report_memleaks</entry>
<entry>"1"</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>track_errors</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>html_errors</entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>docref_root</entry>
<entry>"http://www.php.net/"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>docref_ext</entry>
<entry>".html"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>error_prepend_string</entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>error_append_string</entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>error_log</entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>warn_plus_overloading</entry>
<entry>NULL</entry>
<entry>PHP_INI??</entry>
</row>
</tbody>
</tgroup>
</table>
For further details and definition of the PHP_INI_* constants see
<function>ini_set</function>.
</para>
<para>
Here is a short explanation of the configuration directives.
<variablelist>
<varlistentry id="ini.error-reporting">
<term>
<parameter>error_reporting</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Set the error reporting level. The parameter is either an integer
representing a bit field, or named constants. The error_reporting
levels and constants are described in
<link linkend="errorfunc.constants">Predefined Constants</link>
, and in &php.ini;. To set at runtime, use the
<function>error_reporting</function> function. See also the
<link linkend="ini.display-errors">display_errors</link> directive.
</para>
<para>
The default value does not show <constant>E_NOTICE</constant> level
errors. You may want to show them during development.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.display-errors">
<term>
<parameter>display_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
This determines whether errors should be printed to the screen
as part of the HTML output or not.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.display-startup-errors">
<term>
<parameter>display_startup_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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 debugging.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.log-errors">
<term>
<parameter>log_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Tells whether script error messages should be logged to the
server's error log or <link linkend="ini.error_log">error_log</link>.
This option is thus server-specific.
</para>
<note>
<para>
You're strongly advised to use error logging in place of
error displaying on production web sites.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.log-errors-max-len">
<term>
<parameter>log_errors_max_len</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Set the maximum length of log_errors in kbytes. In
<link linkend="ini.error-log">error_log</link> information about
the source is added. The default is 1024 and 0 allows to not apply
any maximum length at all.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ignore-repeated-errors">
<term>
<parameter>ignore_repeated_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Do not log repeated messages. Repeated errors must occur in the same
file on the same line until
<link linkend="ini.ignore-repeated-source">ignore_repeated_source</link>
is set true.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.ignore-repeated-source">
<term>
<parameter>ignore_repeated_source</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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
sourcelines.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.report-memleaks">
<term>
<parameter>report_memleaks</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
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
<link linkend="ini.error-reporting">error_reporting</link> includes
E_WARNING in the allowed list
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.track-errors">
<term>
<parameter>track_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If enabled, the last error message will always be present in the
global variable <varname>$php_errormsg</varname>.</para>
</listitem>
</varlistentry>
<varlistentry id="ini.html-errors">
<term>
<parameter>html_errors</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Turn off HTML tags in error messages. The new format for html errors
produces clickable messages that direct the user to a page describing
the error or function in causing the error. These references are
affected by
<link linkend="ini.docref-root">docref_root</link> and
<link linkend="ini.docref-ext">docref_ext</link>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.docref-root">
<term>
<parameter>docref_root</parameter>
<type>string</type>
</term>
<listitem>
<para>
The new error format contains a reference to a page describing the error or
function in causing the error. In case of manual pages you can download the
manual in your language and set this ini directive to the url of your local
copy. If your local copy of the manual can be reached by '/manual/' you can
simply use <userinput>docref_root=/manual/</userinput>. Additional you have
to set docref_ext to match the fileextensions of your copy
<userinput>docref_ext=.html</userinput>. It is possible to use external
references. For example you can use
<userinput>docref_root=http://manual/en/</userinput>.
</para>
<note>
<para>
The value of docref_root must end with a slash '/'.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.docref-ext">
<term>
<parameter>docref_ext</parameter>
<type>string</type>
</term>
<listitem>
<para>
See <link linkend="ini.docref-root">docref_root</link>.
</para>
<note>
<para>
The value of docref_ext must begin with a dot '.'.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.error-prepend-string">
<term>
<parameter>error_prepend_string</parameter>
<type>string</type>
</term>
<listitem>
<para>
String to output before an error message.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.error-append-string">
<term>
<parameter>error_append_string</parameter>
<type>string</type>
</term>
<listitem>
<para>
String to output after an error message.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.error-log">
<term>
<parameter>error_log</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of the file where script errors should be logged. If the
special value <literal>syslog</literal> is used, the errors
are sent to the system logger instead. On UNIX, this means
syslog(3) and on Windows NT it means the event log. The
system logger is not supported on Windows 95. See also:
<function>syslog</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.warn-plus-overloading">
<term>
<parameter>warn_plus_overloading</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If enabled, this option makes PHP output a warning when the
plus (<literal>+</literal>) operator is used on strings.
This is to make it easier to find scripts that need to be
rewritten to using the string concatenator instead
(<literal>.</literal>).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.4 $ -->
<!-- $Revision: 1.5 $ -->
<reference id="ref.errorfunc">
<title>Error Handling and Logging Functions</title>
<titleabbrev>Errors and Logging</titleabbrev>
@ -36,6 +36,8 @@
&no.install;
</section>
&reference.errorfunc.ini;
&reference.errorfunc.constants;
<section id="errorfunc.seealso">

View file

@ -0,0 +1,173 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="filesystem.configuration">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>Filesystem and Streams Configuration Options</title>
<tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
<entry>Default</entry>
<entry>Changeable</entry>
</row>
</thead>
<tbody>
<row>
<entry>allow_url_fopen</entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>user_agent</entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>default_socket_timeout</entry>
<entry>"60"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>from</entry>
<entry>NULL</entry>
<entry>??</entry>
</row>
<row>
<entry>auto_detect_line_endings</entry>
<entry>"Off"</entry>
<entry>PHP_INI_ALL</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Here is a short explanation of the configuration directives.
<variablelist>
<varlistentry id="ini.allow-url-fopen">
<term>
<parameter>allow_url_fopen</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
This option enables the URL-aware fopen wrappers that enable
accessing URL object like files. Default wrappers are provided for
the access of <link linkend="features.remote-files">remote files</link>
using the ftp or http protocol, some extensions like
<link linkend="ref.zlib">zlib</link> may register additional
wrappers.
</para>
<note>
<para>
This option was introduced immediately after the release of version
4.0.3. For versions up to and including 4.0.3 you can only disable this
feature at compile time by using the configuration switch
<link linkend="install.configure.disable-url-fopen-wrapper"><parameter>
--disable-url-fopen-wrapper</parameter></link>.
</para>
</note>
<warning>
<para>
On Windows versions prior to PHP 4.3, the following functions do not
support remote file accesing: <function>include</function>,
<function>include_once</function>, <function>require</function>,
<function>require_once</function> and the imagecreatefromXXX
functions in the <xref linkend="ref.image"/> extension.
</para>
</warning>
</listitem>
</varlistentry>
<varlistentry id="ini.user-agent">
<term>
<parameter>user_agent</parameter>
<type>string</type>
</term>
<listitem>
<para>
Define the user agent for <literal>PHP</literal> to send.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.default-socket-timeout">
<term>
<parameter>default_socket_timeout</parameter>
<type>integer</type>
</term>
<listitem>
<para>
Default timeout (in seconds) for socket based streams.
</para>
<note>
<simpara>
This configuration option was introduced in PHP 4.3.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.from">
<term>
<parameter>from="joe@example.com"</parameter>
<type>string</type>
</term>
<listitem>
<para>
Define the anonymous ftp password (your email address).
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.auto-detect-line-endings">
<term>
<parameter>auto_detect_line_endings</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
When turned on, PHP will examine the data read by
<function>fgets</function> and <function>file</function> to see if it
is using Unix, MS-Dos or Macintosh line-ending conventions.
</para>
<para>This enables PHP to to interoperate with Macintosh systems,
but defaults to Off, as there is a very small performance penalty
when detecting the EOL conventions for the first line, and also
because people using carriage-returns as item separators under
Unix systems would experience non-backwards-compatible behaviour.
</para>
<note>
<simpara>
This configuration option was introduced in PHP 4.3.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- $Revision: 1.7 $ -->
<reference id="ref.filesystem">
<title>Filesystem functions</title>
<titleabbrev>Filesystem</titleabbrev>
@ -21,67 +21,12 @@
&no.install;
</section>
<section id="filesystem.configuration">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>Filesystem and Streams Configuration Options</title>
<tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
<entry>Default</entry>
<entry>Changeable</entry>
</row>
</thead>
<tbody>
<row>
<entry>auto_detect_line_endings</entry>
<entry>"Off"</entry>
<entry>PHP_INI_ALL</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Here is a short explanation of the configuration directives.
<variablelist>
<varlistentry id="ini.auto-detect-line-endings">
<term>
<parameter>auto_detect_line_endings</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
When turned on, PHP will examine the data read by
<function>fgets</function> and <function>file</function> to see if it
is using Unix, MS-Dos or Macintosh line-ending conventions.
</para>
<para>This enables PHP to to interoperate with Macintosh systems,
but defaults to Off, as there is a very small performance penalty
when detecting the EOL conventions for the first line, and also
because people using carriage-returns as item separators under
Unix systems would experience non-backwards-compatible behaviour.
</para>
<note>
<simpara>
This configuration option was introduced in PHP 4.3.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
&reference.filesystem.ini;
<section id="filesystem.resources">
&reftitle.resources;
<para>
</para>
</section>
<section id="filesystem.constants">

241
reference/info/ini.xml Normal file
View file

@ -0,0 +1,241 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="info.configuration">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>PHP Options/Inf Configuration Options</title>
<tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
<entry>Default</entry>
<entry>Changeable</entry>
</row>
</thead>
<tbody>
<row>
<entry>assert.active</entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>assert.bail</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>assert.warning</entry>
<entry>"1"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>assert.callback</entry>
<entry>NULL</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>assert.quiet_eval</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>enable_dl</entry>
<entry>"1"</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>max_execution_time</entry>
<entry>"30"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>magic_quotes_gpc</entry>
<entry>"1"</entry>
<entry>PHP_INI_PERDIR|PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>magic_quotes_runtime</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
</tbody>
</tgroup>
</table>
For further details and definition of the PHP_INI_* constants see
<function>ini_set</function>.
</para>
<para>
Here is a short explanation of the configuration directives.
<variablelist>
<varlistentry id="ini.assert.active">
<term>
<parameter>assert.active</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Enable <function>assert</function> evaluation.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.assert.bail">
<term>
<parameter>assert.bail</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Terminate script execution on failed assertions.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.assert.warning">
<term>
<parameter>assert.warning</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Issue a <literal>PHP</literal> warning for each failed assertion.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.assert.callback">
<term>
<parameter>assert.callback</parameter>
<type>string</type>
</term>
<listitem>
<para>
user function to call on failed assertions
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.assert.quiet-eval">
<term>
<parameter>assert.quiet_eval</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Use the current setting of <function>error_reporting</function> during
assertion expression evaluation. If enabled, no errors are shown
(implicit error_reporting(0)) while evaluation. If disabled, errors are
shown according to the settings of <function>error_reporting</function>
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.enable-dl">
<term>
<parameter>enable_dl</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
This directive is really only useful in the Apache module
version of PHP. You can turn dynamic loading of PHP
extensions with <function>dl</function> on and off per
virtual server or per directory.
</para>
<para>
The main reason for turning dynamic loading off is
security. With dynamic loading, it's possible to ignore all
the <link linkend="ini.safe-mode">safe_mode</link> and
<link linkend="ini.open-basedir">open_basedir</link> restrictions.
</para>
<para>
The default is to allow dynamic loading, except when using
safe-mode. In safe-mode, it's always imposible to use
<function>dl</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.max-execution-time">
<term>
<parameter>max_execution_time</parameter>
<type>integer</type>
</term>
<listitem>
<para>
This sets the maximum time in seconds a script is allowed to
run before it is terminated by the parser. This helps
prevent poorly written scripts from tying up the server. The
default setting is <literal>30</literal>.
</para>
<para>
The maximum execution time is not affected by system calls,
the <function>sleep</function> function, etc. Please see the
<function>set_time_limit</function> function for more
details.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.magic-quotes-gpc">
<term>
<parameter>magic_quotes_gpc</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
Sets the magic_quotes state for GPC (Get/Post/Cookie)
operations. When magic_quotes are on, all ' (single-quote),
&quot; (double quote), \ (backslash) and NUL's are escaped
with a backslash automatically. If magic_quotes_sybase is
also on, a single-quote is escaped with a single-quote
instead of a backslash.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.magic-quotes-runtime">
<term>
<parameter>magic_quotes_runtime</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If <parameter>magic_quotes_runtime</parameter> is enabled,
most functions that return data from any sort of external
source including databases and text files will have quotes
escaped with a backslash. If
<link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>
is also on, a single-quote is escaped with a single-quote instead
of a backslash.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.5 $ -->
<!-- $Revision: 1.6 $ -->
<reference id="ref.info">
<title>PHP Options&amp;Information</title>
<titleabbrev>PHP Options/Info</titleabbrev>
@ -26,10 +26,7 @@
&no.install;
</section>
<section id="info.configuration">
&reftitle.runtime;
&no.config;
</section>
&reference.info.ini;
<section id="info.resources">
&reftitle.resources;

134
reference/misc/ini.xml Normal file
View file

@ -0,0 +1,134 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="misc.configuration">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title> Misc. Configuration Options</title>
<tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
<entry>Default</entry>
<entry>Changeable</entry>
</row>
</thead>
<tbody>
<row>
<entry>ignore_user_abort</entry>
<entry>"0"</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>highlight.string</entry>
<entry>#CC0000</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>highlight.comment</entry>
<entry>#FF9900</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>highlight.keyword</entry>
<entry>#006600</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>highlight.bg</entry>
<entry>#FFFFFF</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>highlight.default</entry>
<entry>#0000CC</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>highlight.html</entry>
<entry>#000000</entry>
<entry>PHP_INI_ALL</entry>
</row>
<row>
<entry>browscap</entry>
<entry>NULL</entry>
<entry>PHP_INI_SYSTEM</entry>
</row>
</tbody>
</tgroup>
</table>
For further details and definition of the PHP_INI_* constants see
<function>ini_set</function>.
</para>
<para>
Here is a short explanation of the configuration directives.
<variablelist>
<varlistentry id="ini.ignore-user-abort">
<term>
<parameter>ignore_user_abort</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
&true; by default. If changed to &false; scripts will be terminated
as soon as they try to output something after a client has aborted
their connection.
</para>
<para>
See also <function>ignore_user_abort</function>.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.syntax-highlighting">
<term>
<parameter>highlight.xxx</parameter>
<type>string</type>
</term>
<listitem>
<para>
Colors for Syntax Highlighting mode. Anything that's acceptable in
&lt;font color="??????"&gt; would work.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.browscap">
<term>
<parameter>browscap</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name (e.g.: <filename>browscap.ini</filename>)and location of browser
capabilities file. See also <function>get_browser</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.4 $ -->
<!-- $Revision: 1.5 $ -->
<reference id="ref.misc">
<title>Miscellaneous functions</title>
<titleabbrev>Misc.</titleabbrev>
@ -24,10 +24,7 @@
&no.install;
</section>
<section id="misc.configuration">
&reftitle.runtime;
&no.config;
</section>
&reference.misc.ini;
<section id="misc.resources">
&reftitle.resources;

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- $Revision: 1.2 $ -->
<section id="outcontrol.configuration">
&reftitle.runtime;
&extension.runtime;
@ -26,9 +26,7 @@
<entry>PHP_INI_PERDIR|PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<link linkend="ini.implicit-flush">implicit_flush</link>
</entry>
<entry>implicit_flush</entry>
<entry>"0"</entry>
<entry>PHP_INI_PERDIR|PHP_INI_SYSTEM</entry>
</row>
@ -72,13 +70,39 @@
<note>
<para>
You cannot use both <function>mb_output_handler</function> with
<function>ob_inconv_handler</function> and you cannot use both
<function>ob_inconv_handler</function> and you cannot use both
<function>ob_gzhandler</function> and
<link linkend="ini.zlib.output-compression">zlib.output_compression</link>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry id="ini.implicit-flush">
<term>
<parameter>implicit_flush</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
&false; by default. Changing this to &true; tells PHP to tell the
output layer to flush itself automatically after every output block.
This is equivalent to calling the <literal>PHP</literal> function
<function>flush</function> after each and every call to
<function>print</function> or <function>echo</function> and each and
every <literal>HTML</literal> block.
</para>
<para>
When using <literal>PHP</literal> within an web environment, turning
this option on has serious performance implications and is generally
recommended for debugging purposes only. This value defaults to
&true; when operating under the <literal>CLI SAPI</literal>.
</para>
<para>
See also <function>ob_implicit_flush</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>

View file

@ -43,12 +43,12 @@ dio
dir
domxml ++
dotnet ~
errorfunc
errorfunc yes
exec
fbsql yes
fdf
filepro ~
filesystem
filesystem yes
fribidi ~
ftp
funchand
@ -64,7 +64,7 @@ ifx yes
iisfunc
image yes
imap
info
info yes
ingres-ii yes
ircg
java ++ yes
@ -79,7 +79,7 @@ mcve ~
mhash
mime_magic yes
ming ++
misc ~
misc ~ yes
mnogosearch
msession ~
msql ~ yes
@ -110,7 +110,7 @@ readline
recode
regex
sem yes
sesam !no
sesam ++ yes
session ++ yes
shmop
snmp
@ -121,7 +121,7 @@ sybase ~ yes
tokenizer ~ yes
uodbc yes
url ~
var ~
var ~ yes
vpopmail ~
w32api
wddx

268
reference/sesam/ini.xml Normal file
View file

@ -0,0 +1,268 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="sesam.configuration">
&reftitle.runtime;
&extension.runtime;
<variablelist>
<varlistentry id="ini.sesam-oml">
<term>
<parameter>sesam_oml</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of BS2000 PLAM library containing the loadable SESAM
driver modules. Required for using SESAM functions. The
BS2000 PLAM library must be set ACCESS=READ,SHARE=YES
because it must be readable by the apache server's user id.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sesam-configfile">
<term>
<parameter>sesam_configfile</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of SESAM application configuration file. Required for
using SESAM functions. The BS2000 file must be readable by
the apache server's user id.
</para>
<para>
The application configuration file will usually contain a
configuration like (see SESAM
reference manual):
<informalexample>
<programlisting role="bs2000">
<![CDATA[
CNF=B
NAM=K
NOTYPE
]]>
</programlisting>
</informalexample>
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sesam-messagecatalog">
<term>
<parameter>sesam_messagecatalog</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of SESAM message catalog file. In most cases, this
directive is not neccessary. Only if the SESAM message file
is not installed in the system's BS2000 message file table,
it can be set with this directive.
</para>
<para>
The message catalog must be set ACCESS=READ,SHARE=YES because
it must be readable by the apache server's user id.
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section id="sesam.config-notes">
<title>Configuration notes</title>
<para>
There is no standalone support for the PHP SESAM interface, it
works only as an integrated Apache module. In the Apache PHP
module, this <link linkend="sesam.configuration">SESAM interface is
configured</link> using Apache directives.
<table>
<title>SESAM Configuration directives</title>
<tgroup cols="2">
<thead>
<row>
<entry>Directive</entry>
<entry>Meaning</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>php3_sesam_oml</literal></entry>
<entry>
Name of BS2000 PLAM library containing the loadable SESAM
driver modules. Required for using SESAM functions.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_oml $.SYSLNK.SESAM-SQL.030
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
<row>
<entry><literal>php3_sesam_configfile</literal></entry>
<entry>
Name of SESAM application configuration file. Required for
using SESAM functions.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_configfile $SESAM.SESAM.CONF.AW
]]>
</programlisting>
</informalexample>
It will usually contain a configuration like (see SESAM
reference manual):
<informalexample>
<programlisting role="bs2000">
<![CDATA[
CNF=B
NAM=K
NOTYPE
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
<row>
<entry><literal>php3_sesam_messagecatalog</literal></entry>
<entry>
Name of SESAM message catalog file. In most cases, this
directive is not neccessary. Only if the SESAM message file
is not installed in the system's BS2000 message file table,
it can be set with this directive.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
In addition to the configuration of the PHP/SESAM interface, you
have to configure the SESAM-Database server itself on your
mainframe as usual. That means:
<itemizedlist>
<listitem>
<simpara>
starting the SESAM database handler (DBH), and
</simpara>
</listitem>
<listitem>
<simpara>
connecting the databases with the SESAM database handler
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
To get a connection between a PHP script and the database
handler, the <literal>CNF</literal> and <literal>NAM</literal>
parameters of the selected SESAM configuration file must match
the id of the started database handler.
</para>
<para>
In case of distributed databases you have to start a
SESAM/SQL-DCN agent with the distribution table including the
host and database names.
</para>
<para>
The communication between PHP (running in the POSIX subsystem)
and the database handler (running outside the POSIX subsystem) is
realized by a special driver module called SQLSCI and SESAM
connection modules using common memory. Because of the common
memory access, and because PHP is a static part of the web
server, database accesses are very fast, as they do not require
remote accesses via ODBC, JDBC or UTM.
</para>
<para>
Only a small stub loader (SESMOD) is linked with PHP, and the
SESAM connection modules are pulled in from SESAM's OML PLAM
library. In the <link
linkend="sesam.configuration">configuration</link>, you must tell PHP
the name of this PLAM library, and the file link to use for the
SESAM configuration file (As of SESAM V3.0, SQLSCI is available
in the SESAM Tool Library, which is part of the standard
distribution).
</para>
<para>
Because the SQL command quoting for single quotes uses duplicated
single quotes (as opposed to a single quote preceded by a
backslash, used in some other databases), it is advisable to set
the PHP configuration directives <link
linkend="ini.magic-quotes-gpc"><literal>php3_magic_quotes_gpc</literal></link>
and <link
linkend="ini.magic-quotes-sybase"><literal>php3_magic_quotes_sybase</literal></link>
to <literal>On</literal> for all PHP scripts using the SESAM
interface.
</para>
</section>
<section id="sesam.runtime">
<title>Runtime considerations</title>
<para>
Because of limitations of the BS2000 process model, the driver
can be loaded only after the Apache server has forked off its
server child processes. This will slightly slow down the initial
SESAM request of each child, but subsequent accesses will respond
at full speed.
</para>
<para>
When explicitly defining a Message Catalog for SESAM, that
catalog will be loaded each time the driver is loaded (i.e., at
the initial SESAM request). The BS2000 operating system prints a
message after successful load of the message catalog, which will
be sent to Apache's error_log file. BS2000 currently does not
allow suppression of this message, it will slowly fill up the
log.
</para>
<para>
Make sure that the SESAM OML PLAM library and SESAM configuration
file are readable by the user id running the web server.
Otherwise, the server will be unable to load the driver, and will
not allow to call any SESAM functions. Also, access to the
database must be granted to the user id under which the Apache
server is running. Otherwise, connections to the SESAM database
handler will fail.
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -1,215 +1,56 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.3 $ -->
<!-- $Revision: 1.4 $ -->
<reference id="ref.sesam">
<title>SESAM database functions</title>
<titleabbrev>SESAM</titleabbrev>
<partintro>
<para>
SESAM/SQL-Server is a mainframe database system, developed by
Fujitsu Siemens Computers, Germany. It runs on high-end mainframe
servers using the operating system BS2000/OSD.
</para>
<para>
In numerous productive BS2000 installations, SESAM/SQL-Server has
proven ...
<itemizedlist>
<listitem>
<simpara>
the ease of use of Java-, Web- and client/server connectivity,
</simpara>
</listitem>
<listitem>
<simpara>
the capability to work with an availability of more than
99.99%,
</simpara>
</listitem>
<listitem>
<simpara>
the ability to manage tens and even hundreds of thousands of
users.
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Now there is a PHP3 SESAM interface available which allows
database operations via PHP-scripts.
</para>
<note>
<title>Configuration notes</title>
<section id="sesam.intro">
&reftitle.intro;
<para>
There is no standalone support for the PHP SESAM interface, it
works only as an integrated Apache module. In the Apache PHP
module, this <link linkend="ini.sect.sesam">SESAM interface is
configured</link> using Apache directives.
<table>
<title>SESAM Configuration directives</title>
<tgroup cols="2">
<thead>
<row>
<entry>Directive</entry>
<entry>Meaning</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>php3_sesam_oml</literal></entry>
<entry>
Name of BS2000 PLAM library containing the loadable SESAM
driver modules. Required for using SESAM functions.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_oml $.SYSLNK.SESAM-SQL.030
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
<row>
<entry><literal>php3_sesam_configfile</literal></entry>
<entry>
Name of SESAM application configuration file. Required for
using SESAM functions.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_configfile $SESAM.SESAM.CONF.AW
]]>
</programlisting>
</informalexample>
It will usually contain a configuration like (see SESAM
reference manual):
<informalexample>
<programlisting role="bs2000">
<![CDATA[
CNF=B
NAM=K
NOTYPE
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
<row>
<entry><literal>php3_sesam_messagecatalog</literal></entry>
<entry>
Name of SESAM message catalog file. In most cases, this
directive is not neccessary. Only if the SESAM message file
is not installed in the system's BS2000 message file table,
it can be set with this directive.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
SESAM/SQL-Server is a mainframe database system, developed by
Fujitsu Siemens Computers, Germany. It runs on high-end mainframe
servers using the operating system BS2000/OSD.
</para>
<para>
In addition to the configuration of the PHP/SESAM interface, you
have to configure the SESAM-Database server itself on your
mainframe as usual. That means:
In numerous productive BS2000 installations, SESAM/SQL-Server has
proven
<itemizedlist>
<listitem>
<simpara>
starting the SESAM database handler (DBH), and
the ease of use of Java-, Web- and client/server connectivity,
</simpara>
</listitem>
<listitem>
<simpara>
connecting the databases with the SESAM database handler
the capability to work with an availability of more than
99.99%,
</simpara>
</listitem>
</itemizedlist>
<listitem>
<simpara>
the ability to manage tens and even hundreds of thousands of
users.
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
To get a connection between a PHP script and the database
handler, the <literal>CNF</literal> and <literal>NAM</literal>
parameters of the selected SESAM configuration file must match
the id of the started database handler.
There is a <literal>PHP3</literal> SESAM interface available which allows
database operations via PHP-scripts.
</para>
<para>
In case of distributed databases you have to start a
SESAM/SQL-DCN agent with the distribution table including the
host and database names.
</para>
<para>
The communication between PHP (running in the POSIX subsystem)
and the database handler (running outside the POSIX subsystem) is
realized by a special driver module called SQLSCI and SESAM
connection modules using common memory. Because of the common
memory access, and because PHP is a static part of the web
server, database accesses are very fast, as they do not require
remote accesses via ODBC, JDBC or UTM.
</para>
<para>
Only a small stub loader (SESMOD) is linked with PHP, and the
SESAM connection modules are pulled in from SESAM's OML PLAM
library. In the <link
linkend="ini.sect.sesam">configuration</link>, you must tell PHP
the name of this PLAM library, and the file link to use for the
SESAM configuration file (As of SESAM V3.0, SQLSCI is available
in the SESAM Tool Library, which is part of the standard
distribution).
</para>
<para>
Because the SQL command quoting for single quotes uses duplicated
single quotes (as opposed to a single quote preceded by a
backslash, used in some other databases), it is advisable to set
the PHP configuration directives <link
linkend="ini.magic-quotes-gpc"><literal>php3_magic_quotes_gpc</literal></link>
and <link
linkend="ini.magic-quotes-sybase"><literal>php3_magic_quotes_sybase</literal></link>
to <literal>On</literal> for all PHP scripts using the SESAM
interface.
</para>
</note>
<note>
<title>Runtime considerations</title>
<para>
Because of limitations of the BS2000 process model, the driver
can be loaded only after the Apache server has forked off its
server child processes. This will slightly slow down the initial
SESAM request of each child, but subsequent accesses will respond
at full speed.
</para>
<para>
When explicitly defining a Message Catalog for SESAM, that
catalog will be loaded each time the driver is loaded (i.e., at
the initial SESAM request). The BS2000 operating system prints a
message after successful load of the message catalog, which will
be sent to Apache's error_log file. BS2000 currently does not
allow suppression of this message, it will slowly fill up the
log.
</para>
<para>
Make sure that the SESAM OML PLAM library and SESAM configuration
file are readable by the user id running the web server.
Otherwise, the server will be unable to load the driver, and will
not allow to call any SESAM functions. Also, access to the
database must be granted to the user id under which the Apache
server is running. Otherwise, connections to the SESAM database
handler will fail.
</para>
</note>
<note>
<note>
<simpara>
Access to SESAM is only available with the latest CVS-Version of
<literal>PHP3</literal>. <literal>PHP 4</literal> does not support the
SESAM database.
</simpara>
</note>
</section>
&reference.sesam.ini;
<section id="sesam.cursor-types">
<title>Cursor Types</title>
<para>
The result cursors which are allocated for SQL "select type"
@ -274,11 +115,10 @@ php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030
</tgroup>
</table>
</para>
</note>
<note>
<title>
Porting note
</title>
</section>
<section id="sesam.porting-note">
<title>Porting note</title>
<para>
Because in the PHP world it is natural to start indexes at zero
(rather than 1), some adaptions have been made to the SESAM
@ -293,8 +133,9 @@ php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030
description of the respective php sesam functions include a note
that the index is zero based.
</para>
</note>
<note>
</section>
<section id="sesam.security">
<title>Security concerns</title>
<para>
When allowing access to the SESAM databases, the web server user
@ -306,8 +147,9 @@ php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030
administer the database by using password control and/or SSL
security.
</para>
</note>
<note>
</section>
<section id="sesam.migration">
<title>Migration from other SQL databases</title>
<para>
No two SQL dialects are ever 100% compatible. When porting
@ -403,8 +245,9 @@ php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030
</listitem>
</itemizedlist>
</para>
</note>
<note>
</section>
<section id="sesam.sql-types">
<title>
Notes on the use of various SQL types
</title>
@ -452,8 +295,9 @@ php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030
appearance of empty fields (than in the case of an empty string
as the representation of an empty field).
</para>
</note>
<note>
</section>
<section id="sesam.multiple-fields">
<title>Support of SESAM's "multiple fields" feature</title>
<para>
The special "multiple fields" feature of SESAM allows a column to
@ -491,14 +335,19 @@ INSERT INTO multi_field_test (pkey, multi(2..3) )
will have the index 0, and the three "multi(1..3)" columns will
be accessible as indices 1 through 3.
</para>
</note>
<para>
For specific SESAM details, please refer to <ulink
url="&url.sesam.en;">the SESAM/SQL-Server documentation
(english)</ulink> or <ulink url="&url.sesam.de;">the
SESAM/SQL-Server documentation (german)</ulink>, both available
online, or use the respective manuals.
</section>
<section id="sesam.seealso">
&reftitle.seealso;
<para>
For specific SESAM details, please refer to <ulink
url="&url.sesam.en;">the SESAM/SQL-Server documentation
(english)</ulink> or <ulink url="&url.sesam.de;">the
SESAM/SQL-Server documentation (german)</ulink>, both available
online, or use the respective manuals.
</para>
</section>
</partintro>
&reference.sesam.functions;

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- $Revision: 1.2 $ -->
<section id="sybase.configuration">
&reftitle.runtime;
&extension.runtime;
@ -51,9 +51,7 @@
<entry>PHP_INI_SYSTEM</entry>
</row>
<row>
<entry>
<link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>
</entry>
<entry>magic_quotes_sybase</entry>
<entry>"Off"</entry>
<entry>PHP_INI_ALL</entry>
</row>
@ -143,8 +141,24 @@
</listitem>
</varlistentry>
<varlistentry id="ini.magic-quotes-sybase">
<term>
<parameter>magic_quotes_sybase</parameter>
<type>boolean</type>
</term>
<listitem>
<para>
If <parameter>magic_quotes_sybase</parameter> is also on, a
single-quote is escaped with a single-quote instead of a
backslash if <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
or <link linkend="magic-quotes-runtime">magic_quotes_runtime</link> is enabled.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
<table>
<title>Sybase-CT configuration options</title>

75
reference/var/ini.xml Normal file
View file

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="var.configuration">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title> Variables Configuration Options</title>
<tgroup cols="3">
<thead>
<row>
<entry>Name</entry>
<entry>Default</entry>
<entry>Changeable</entry>
</row>
</thead>
<tbody>
<row>
<entry>unserialize_callback_func</entry>
<entry>""</entry>
<entry>PHP_INI_ALL</entry>
</row>
</tbody>
</tgroup>
</table>
For further details and definition of the PHP_INI_* constants see
<function>ini_set</function>.
</para>
<para>
Here is a short explanation of the configuration directives.
<variablelist>
<varlistentry id="unserialize-callback-func">
<term>
<parameter>unserialize_callback_func</parameter>
<type>string</type>
</term>
<listitem>
<para>
The unserialize callback function will called (with the undefind class'
name as parameter), if the unserializer finds an undefined class
which should be instanciated. 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.
</para>
<para>
See also <function>unserialize</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.4 $ -->
<!-- $Revision: 1.5 $ -->
<reference id="ref.variables">
<title>Variable Functions</title>
<titleabbrev>Variables</titleabbrev>
@ -24,10 +24,7 @@
&no.install;
</section>
<section id="variables.configuration">
&reftitle.runtime;
&no.config;
</section>
&reference.var.ini;
<section id="variables.resources">
&reftitle.resources;