php-src/sapi/apache2handler
Peter Kokot 92ac598aab Remove local variables
This patch removes the so called local variables defined per
file basis for certain editors to properly show tab width, and
similar settings. These are mainly used by Vim and Emacs editors
yet with recent changes the once working definitions don't work
anymore in Vim without custom plugins or additional configuration.
Neither are these settings synced across the PHP code base.

A simpler and better approach is EditorConfig and fixing code
using some code style fixing tools in the future instead.

This patch also removes the so called modelines for Vim. Modelines
allow Vim editor specifically to set some editor configuration such as
syntax highlighting, indentation style and tab width to be set in the
first line or the last 5 lines per file basis. Since the php test
files have syntax highlighting already set in most editors properly and
EditorConfig takes care of the indentation settings, this patch removes
these as well for the Vim 6.0 and newer versions.

With the removal of local variables for certain editors such as
Emacs and Vim, the footer is also probably not needed anymore when
creating extensions using ext_skel.php script.

Additionally, Vim modelines for setting php syntax and some editor
settings has been removed from some *.phpt files.  All these are
mostly not relevant for phpt files neither work properly in the
middle of the file.
2019-02-03 21:03:00 +01:00
..
apache_config.c Remove local variables 2019-02-03 21:03:00 +01:00
config.m4 Remove local variables 2019-02-03 21:03:00 +01:00
config.w32 Sync leading and final newlines in source code files 2018-10-14 12:56:38 +02:00
CREDITS Credits update. 2003-03-04 00:10:11 +00:00
mod_php7.c Remove local variables 2019-02-03 21:03:00 +01:00
php.sym Update php.sym 2014-09-18 20:43:26 +02:00
php_apache.h Remove yearly range from copyright notice 2019-01-30 11:03:12 +02:00
php_functions.c Remove local variables 2019-02-03 21:03:00 +01:00
README Sync leading and final newlines in source code files 2018-10-14 12:56:38 +02:00
sapi_apache2.c Remove local variables 2019-02-03 21:03:00 +01:00

WHAT IS THIS?

    This module exploits the layered I/O support in Apache 2.0.

HOW DOES IT WORK?

    In Apache 2.0, you have handlers which generate content (like
    reading a script from disk). The content goes then through
    a chain of filters. PHP can be such a filter, so that it processes
    your script and hands the output to the next filter (which will
    usually cause a write to the network).

DOES IT WORK?

    Currently the issues with the module are:
        * Thread safety of external PHP modules
        * The lack of re-entrancy of PHP. due to this I have disabled the 'virtual'
          function, and tried to stop any method where a php script can run another php
          script while it is being run.


HOW TO INSTALL

    This SAPI module is known to work with Apache 2.0.44.

        $ cd apache-2.x
        $ cd src
        $ ./configure --enable-so
        $ make install

    For testing purposes, you might want to use --with-mpm=prefork.
    (Albeit PHP also works with threaded MPMs. See Thread Safety note above)

    Configure PHP 4:

        $ cd php-4.x
        $ ./configure --with-apxs2=/path/to/apache-2.0/bin/apxs
        $ make install

    At the end of conf/httpd.conf, add:

        AddType application/x-httpd-php .php

    If you would like to enable source code highlighting functionality add:

        AddType application/x-httpd-php-source .phps

    That's it. Now start bin/httpd.

HOW TO CONFIGURE

    The Apache 2.0 PHP module supports a new configuration directive that
    allows an admin to override the php.ini search path. For example,
    place your php.ini file in Apache's ServerRoot/conf directory and
    add this to your httpd.conf file:

        PHPINIDir "conf"

DEBUGGING APACHE AND PHP

    To debug Apache, we recommend:

        1. Use the Prefork MPM (Apache 1.3-like process model) by
           configuring Apache with '--with-mpm=prefork'.
        2. Start httpd using -DONE_PROCESS (e.g. (gdb) r -DONE_PROCESS).

    If you want to debug a part of the PHP startup procedure, set a
    breakpoint on 'load_module'. Step through it until apr_dso_load() is
    done. Then you can set a breakpoint on any PHP-related symbol.

TODO

    PHP functions like apache_sub_req (see php_functions.c)
    Source Code Highlighting
    Protocol handlers