mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Remove old references to SAPIs and extensions no longer in the core
This commit is contained in:
parent
21d5636da8
commit
bfdd22a3de
8 changed files with 16 additions and 444 deletions
214
INSTALL
214
INSTALL
|
@ -63,15 +63,10 @@ General Installation Considerations
|
||||||
set up anything on your own, only write your PHP scripts, upload it to
|
set up anything on your own, only write your PHP scripts, upload it to
|
||||||
the server you rent, and see the results in your browser.
|
the server you rent, and see the results in your browser.
|
||||||
|
|
||||||
In case of setting up the server and PHP on your own, you have two
|
If PHP has no module support for your web server, ´you can always use
|
||||||
choices for the method of connecting PHP to the server. For many
|
it as a CGI or FastCGI processor. This means you set up your server
|
||||||
servers PHP has a direct module interface (also called SAPI). These
|
to use the CGI executable of PHP to process all PHP file requests on
|
||||||
servers include Apache, Microsoft Internet Information Server, Netscape
|
the server.
|
||||||
and iPlanet servers. Many other servers have support for ISAPI, the
|
|
||||||
Microsoft module interface (OmniHTTPd for example). If PHP has no
|
|
||||||
module support for your web server, you can always use it as a CGI or
|
|
||||||
FastCGI processor. This means you set up your server to use the CGI
|
|
||||||
executable of PHP to process all PHP file requests on the server.
|
|
||||||
|
|
||||||
If you are also interested to use PHP for command line scripting (e.g.
|
If you are also interested to use PHP for command line scripting (e.g.
|
||||||
write scripts autogenerating some images for you offline, or processing
|
write scripts autogenerating some images for you offline, or processing
|
||||||
|
@ -409,205 +404,7 @@ fastcgi.server = ( ".php" =>
|
||||||
(( "host" => "10.0.0.2", "port" => 1030 ),
|
(( "host" => "10.0.0.2", "port" => 1030 ),
|
||||||
( "host" => "10.0.0.3", "port" => 1030 ))
|
( "host" => "10.0.0.3", "port" => 1030 ))
|
||||||
)
|
)
|
||||||
__________________________________________________________________
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
Sun, iPlanet and Netscape servers on Sun Solaris
|
|
||||||
|
|
||||||
This section contains notes and hints specific to Sun Java System Web
|
|
||||||
Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP
|
|
||||||
on Sun Solaris.
|
|
||||||
|
|
||||||
From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to
|
|
||||||
generate custom directory listings and error pages. Additional
|
|
||||||
functions for Apache compatibility are also available. For support in
|
|
||||||
current web servers read the note about subrequests.
|
|
||||||
|
|
||||||
You can find more information about setting up PHP for the Netscape
|
|
||||||
Enterprise Server (NES) here:
|
|
||||||
» http://benoit.noss.free.fr/php/install-php4.html
|
|
||||||
|
|
||||||
To build PHP with Sun JSWS/Sun ONE WS/iPlanet/Netscape web servers,
|
|
||||||
enter the proper install directory for the --with-nsapi=[DIR] option.
|
|
||||||
The default directory is usually /opt/netscape/suitespot/. Please also
|
|
||||||
read /php-xxx-version/sapi/nsapi/nsapi-readme.txt.
|
|
||||||
|
|
||||||
1. Install the following packages from » http://www.sunfreeware.com/
|
|
||||||
or another download site:
|
|
||||||
+ autoconf-2.13
|
|
||||||
+ automake-1.4
|
|
||||||
+ bison-1_25-sol26-sparc-local
|
|
||||||
+ flex-2_5_4a-sol26-sparc-local
|
|
||||||
+ gcc-2_95_2-sol26-sparc-local
|
|
||||||
+ gzip-1.2.4-sol26-sparc-local
|
|
||||||
+ m4-1_4-sol26-sparc-local
|
|
||||||
+ make-3_76_1-sol26-sparc-local
|
|
||||||
+ mysql-3.23.24-beta (if you want mysql support)
|
|
||||||
+ perl-5_005_03-sol26-sparc-local
|
|
||||||
+ tar-1.13 (GNU tar)
|
|
||||||
2. Make sure your path includes the proper directories
|
|
||||||
PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin and make it
|
|
||||||
available to your system export PATH.
|
|
||||||
3. gunzip php-x.x.x.tar.gz (if you have a .gz dist, otherwise go to
|
|
||||||
4).
|
|
||||||
4. tar xvf php-x.x.x.tar
|
|
||||||
5. Change to your extracted PHP directory: cd ../php-x.x.x
|
|
||||||
6. For the following step, make sure /opt/netscape/suitespot/ is where
|
|
||||||
your netscape server is installed. Otherwise, change to the correct
|
|
||||||
path and run:
|
|
||||||
./configure --with-mysql=/usr/local/mysql \
|
|
||||||
--with-nsapi=/opt/netscape/suitespot/ \
|
|
||||||
--enable-libgcc
|
|
||||||
7. Run make followed by make install.
|
|
||||||
|
|
||||||
After performing the base install and reading the appropriate readme
|
|
||||||
file, you may need to perform some additional configuration steps.
|
|
||||||
|
|
||||||
Configuration Instructions for Sun/iPlanet/Netscape
|
|
||||||
|
|
||||||
Firstly you may need to add some paths to the LD_LIBRARY_PATH
|
|
||||||
environment for the server to find all the shared libs. This can best
|
|
||||||
done in the start script for your web server. The start script is often
|
|
||||||
located in: /path/to/server/https-servername/start. You may also need
|
|
||||||
to edit the configuration files that are located in:
|
|
||||||
/path/to/server/https-servername/config/.
|
|
||||||
1. Add the following line to mime.types (you can do that by the
|
|
||||||
administration server):
|
|
||||||
type=magnus-internal/x-httpd-php exts=php
|
|
||||||
|
|
||||||
2. Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6)
|
|
||||||
and add the following, shlib will vary depending on your system, it
|
|
||||||
will be something like /opt/netscape/suitespot/bin/libphp4.so. You
|
|
||||||
should place the following lines after mime types init.
|
|
||||||
Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/op
|
|
||||||
t/netscape/suitespot/bin/libphp4.so"
|
|
||||||
Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_
|
|
||||||
ini="/path/to/php.ini"]
|
|
||||||
|
|
||||||
(PHP >= 4.3.3) The php_ini parameter is optional but with it you
|
|
||||||
can place your php.ini in your web server config directory.
|
|
||||||
3. Configure the default object in obj.conf (for virtual server
|
|
||||||
classes [version 6.0+] in their vserver.obj.conf):
|
|
||||||
<Object name="default">
|
|
||||||
.
|
|
||||||
.
|
|
||||||
.
|
|
||||||
.#NOTE this next line should happen after all 'ObjectType' and before all 'AddLo
|
|
||||||
g' lines
|
|
||||||
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inike
|
|
||||||
y=value ...]
|
|
||||||
.
|
|
||||||
.
|
|
||||||
</Object>
|
|
||||||
|
|
||||||
(PHP >= 4.3.3) As additional parameters you can add some special
|
|
||||||
php.ini-values, for example you can set a
|
|
||||||
docroot="/path/to/docroot" specific to the context php4_execute is
|
|
||||||
called. For boolean ini-keys please use 0/1 as value, not
|
|
||||||
"On","Off",... (this will not work correctly), e.g.
|
|
||||||
zlib.output_compression=1 instead of zlib.output_compression="On"
|
|
||||||
4. This is only needed if you want to configure a directory that only
|
|
||||||
consists of PHP scripts (same like a cgi-bin directory):
|
|
||||||
<Object name="x-httpd-php">
|
|
||||||
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
|
|
||||||
Service fn=php4_execute [inikey=value inikey=value ...]
|
|
||||||
</Object>
|
|
||||||
|
|
||||||
After that you can configure a directory in the Administration
|
|
||||||
server and assign it the style x-httpd-php. All files in it will
|
|
||||||
get executed as PHP. This is nice to hide PHP usage by renaming
|
|
||||||
files to .html.
|
|
||||||
5. Setup of authentication: PHP authentication cannot be used with any
|
|
||||||
other authentication. ALL AUTHENTICATION IS PASSED TO YOUR PHP
|
|
||||||
SCRIPT. To configure PHP Authentication for the entire server, add
|
|
||||||
the following line to your default object:
|
|
||||||
<Object name="default">
|
|
||||||
AuthTrans fn=php4_auth_trans
|
|
||||||
.
|
|
||||||
.
|
|
||||||
.
|
|
||||||
</Object>
|
|
||||||
|
|
||||||
6. To use PHP Authentication on a single directory, add the following:
|
|
||||||
<Object ppath="d:\path\to\authenticated\dir\*">
|
|
||||||
AuthTrans fn=php4_auth_trans
|
|
||||||
</Object>
|
|
||||||
|
|
||||||
Note:
|
|
||||||
|
|
||||||
The stacksize that PHP uses depends on the configuration of the web
|
|
||||||
server. If you get crashes with very large PHP scripts, it is
|
|
||||||
recommended to raise it with the Admin Server (in the section
|
|
||||||
"MAGNUS EDITOR").
|
|
||||||
|
|
||||||
CGI environment and recommended modifications in php.ini
|
|
||||||
|
|
||||||
Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE
|
|
||||||
WS/iPlanet/Netscape is a multithreaded web server. Because of that all
|
|
||||||
requests are running in the same process space (the space of the web
|
|
||||||
server itself) and this space has only one environment. If you want to
|
|
||||||
get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct
|
|
||||||
way to try this in the old PHP way with getenv() or a similar way
|
|
||||||
(register globals to environment, $_ENV). You would only get the
|
|
||||||
environment of the running web server without any valid CGI variables!
|
|
||||||
|
|
||||||
Note:
|
|
||||||
|
|
||||||
Why are there (invalid) CGI variables in the environment?
|
|
||||||
|
|
||||||
Answer: This is because you started the web server process from the
|
|
||||||
admin server which runs the startup script of the web server, you
|
|
||||||
wanted to start, as a CGI script (a CGI script inside of the admin
|
|
||||||
server!). This is why the environment of the started web server has
|
|
||||||
some CGI environment variables in it. You can test this by starting
|
|
||||||
the web server not from the administration server. Use the command
|
|
||||||
line as root user and start it manually - you will see there are no
|
|
||||||
CGI-like environment variables.
|
|
||||||
|
|
||||||
Simply change your scripts to get CGI variables in the correct way for
|
|
||||||
PHP 4.x by using the superglobal $_SERVER. If you have older scripts
|
|
||||||
which use $HTTP_HOST, etc., you should turn on register_globals in
|
|
||||||
php.ini and change the variable order too (important: remove "E" from
|
|
||||||
it, because you do not need the environment here):
|
|
||||||
variables_order = "GPCS"
|
|
||||||
register_globals = On
|
|
||||||
|
|
||||||
Special use for error pages or self-made directory listings (PHP >= 4.3.3)
|
|
||||||
|
|
||||||
You can use PHP to generate the error pages for "404 Not Found" or
|
|
||||||
similar. Add the following line to the object in obj.conf for every
|
|
||||||
error page you want to overwrite:
|
|
||||||
Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inik
|
|
||||||
ey=value...]
|
|
||||||
|
|
||||||
where XXX is the HTTP error code. Please delete any other Error
|
|
||||||
directives which could interfere with yours. If you want to place a
|
|
||||||
page for all errors that could exist, leave the code parameter out.
|
|
||||||
Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].
|
|
||||||
|
|
||||||
Another possibility is to generate self-made directory listings. Just
|
|
||||||
create a PHP script which displays a directory listing and replace the
|
|
||||||
corresponding default Service line for type="magnus-internal/directory"
|
|
||||||
in obj.conf with the following:
|
|
||||||
Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/scri
|
|
||||||
pt.php" [inikey=value inikey=value...]
|
|
||||||
|
|
||||||
For both error and directory listing pages the original URI and
|
|
||||||
translated URI are in the variables $_SERVER['PATH_INFO'] and
|
|
||||||
$_SERVER['PATH_TRANSLATED'].
|
|
||||||
|
|
||||||
Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)
|
|
||||||
|
|
||||||
The NSAPI module now supports the nsapi_virtual() function (alias:
|
|
||||||
virtual()) to make subrequests on the web server and insert the result
|
|
||||||
in the web page. This function uses some undocumented features from the
|
|
||||||
NSAPI library. On Unix the module automatically looks for the needed
|
|
||||||
functions and uses them if available. If not, nsapi_virtual() is
|
|
||||||
disabled.
|
|
||||||
|
|
||||||
Note:
|
|
||||||
|
|
||||||
But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!
|
|
||||||
__________________________________________________________________
|
__________________________________________________________________
|
||||||
__________________________________________________________________
|
__________________________________________________________________
|
||||||
|
|
||||||
|
@ -1386,8 +1183,7 @@ The configuration file
|
||||||
|
|
||||||
php.ini is searched for in these locations (in order):
|
php.ini is searched for in these locations (in order):
|
||||||
* SAPI module specific location (PHPIniDir directive in Apache 2, -c
|
* SAPI module specific location (PHPIniDir directive in Apache 2, -c
|
||||||
command line option in CGI and CLI, php_ini parameter in NSAPI,
|
command line option in CGI and CLI)
|
||||||
PHP_INI_PATH environment variable in THTTPD)
|
|
||||||
* The PHPRC environment variable. Before PHP 5.2.0, this was checked
|
* The PHPRC environment variable. Before PHP 5.2.0, this was checked
|
||||||
after the registry key mentioned below.
|
after the registry key mentioned below.
|
||||||
* As of PHP 5.2.0, the location of the php.ini file can be set for
|
* As of PHP 5.2.0, the location of the php.ini file can be set for
|
||||||
|
|
|
@ -115,7 +115,7 @@ clean:
|
||||||
find . -name \*.la -o -name \*.a | xargs rm -f
|
find . -name \*.la -o -name \*.a | xargs rm -f
|
||||||
find . -name \*.so | xargs rm -f
|
find . -name \*.so | xargs rm -f
|
||||||
find . -name .libs -a -type d|xargs rm -rf
|
find . -name .libs -a -type d|xargs rm -rf
|
||||||
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_MILTER_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
|
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h main/internal_functions_cli.c main/internal_functions.c stamp-h sapi/apache/libphp$(PHP_MAJOR_VERSION).module sapi/apache_hooks/libphp$(PHP_MAJOR_VERSION).module buildmk.stamp Zend/zend_dtrace_gen.h Zend/zend_dtrace_gen.h.bak Zend/zend_config.h TSRM/tsrm_config.h
|
rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h main/internal_functions_cli.c main/internal_functions.c stamp-h sapi/apache/libphp$(PHP_MAJOR_VERSION).module sapi/apache_hooks/libphp$(PHP_MAJOR_VERSION).module buildmk.stamp Zend/zend_dtrace_gen.h Zend/zend_dtrace_gen.h.bak Zend/zend_config.h TSRM/tsrm_config.h
|
||||||
|
@ -137,7 +137,7 @@ prof-clean:
|
||||||
find . -name \*.lo -o -name \*.o | xargs rm -f
|
find . -name \*.lo -o -name \*.o | xargs rm -f
|
||||||
find . -name \*.la -o -name \*.a | xargs rm -f
|
find . -name \*.la -o -name \*.a | xargs rm -f
|
||||||
find . -name \*.so | xargs rm -f
|
find . -name \*.so | xargs rm -f
|
||||||
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_MILTER_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
|
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
|
||||||
|
|
||||||
prof-use:
|
prof-use:
|
||||||
CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-use all
|
CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-use all
|
||||||
|
|
22
TSRM/TSRM.c
22
TSRM/TSRM.c
|
@ -585,10 +585,6 @@ TSRM_API THREAD_T tsrm_thread_id(void)
|
||||||
return pth_self();
|
return pth_self();
|
||||||
#elif defined(PTHREADS)
|
#elif defined(PTHREADS)
|
||||||
return pthread_self();
|
return pthread_self();
|
||||||
#elif defined(NSAPI)
|
|
||||||
return systhread_current();
|
|
||||||
#elif defined(PI3WEB)
|
|
||||||
return PIThread_getCurrent();
|
|
||||||
#elif defined(TSRM_ST)
|
#elif defined(TSRM_ST)
|
||||||
return st_thread_self();
|
return st_thread_self();
|
||||||
#elif defined(BETHREADS)
|
#elif defined(BETHREADS)
|
||||||
|
@ -610,10 +606,6 @@ TSRM_API MUTEX_T tsrm_mutex_alloc(void)
|
||||||
#elif defined(PTHREADS)
|
#elif defined(PTHREADS)
|
||||||
mutexp = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
|
mutexp = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
|
||||||
pthread_mutex_init(mutexp,NULL);
|
pthread_mutex_init(mutexp,NULL);
|
||||||
#elif defined(NSAPI)
|
|
||||||
mutexp = crit_init();
|
|
||||||
#elif defined(PI3WEB)
|
|
||||||
mutexp = PIPlatform_allocLocalMutex();
|
|
||||||
#elif defined(TSRM_ST)
|
#elif defined(TSRM_ST)
|
||||||
mutexp = st_mutex_new();
|
mutexp = st_mutex_new();
|
||||||
#elif defined(BETHREADS)
|
#elif defined(BETHREADS)
|
||||||
|
@ -640,10 +632,6 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
|
||||||
#elif defined(PTHREADS)
|
#elif defined(PTHREADS)
|
||||||
pthread_mutex_destroy(mutexp);
|
pthread_mutex_destroy(mutexp);
|
||||||
free(mutexp);
|
free(mutexp);
|
||||||
#elif defined(NSAPI)
|
|
||||||
crit_terminate(mutexp);
|
|
||||||
#elif defined(PI3WEB)
|
|
||||||
PISync_delete(mutexp);
|
|
||||||
#elif defined(TSRM_ST)
|
#elif defined(TSRM_ST)
|
||||||
st_mutex_destroy(mutexp);
|
st_mutex_destroy(mutexp);
|
||||||
#elif defined(BETHREADS)
|
#elif defined(BETHREADS)
|
||||||
|
@ -674,11 +662,6 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
|
||||||
return -1;
|
return -1;
|
||||||
#elif defined(PTHREADS)
|
#elif defined(PTHREADS)
|
||||||
return pthread_mutex_lock(mutexp);
|
return pthread_mutex_lock(mutexp);
|
||||||
#elif defined(NSAPI)
|
|
||||||
crit_enter(mutexp);
|
|
||||||
return 0;
|
|
||||||
#elif defined(PI3WEB)
|
|
||||||
return PISync_lock(mutexp);
|
|
||||||
#elif defined(TSRM_ST)
|
#elif defined(TSRM_ST)
|
||||||
return st_mutex_lock(mutexp);
|
return st_mutex_lock(mutexp);
|
||||||
#elif defined(BETHREADS)
|
#elif defined(BETHREADS)
|
||||||
|
@ -706,11 +689,6 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
|
||||||
return -1;
|
return -1;
|
||||||
#elif defined(PTHREADS)
|
#elif defined(PTHREADS)
|
||||||
return pthread_mutex_unlock(mutexp);
|
return pthread_mutex_unlock(mutexp);
|
||||||
#elif defined(NSAPI)
|
|
||||||
crit_exit(mutexp);
|
|
||||||
return 0;
|
|
||||||
#elif defined(PI3WEB)
|
|
||||||
return PISync_unlock(mutexp);
|
|
||||||
#elif defined(TSRM_ST)
|
#elif defined(TSRM_ST)
|
||||||
return st_mutex_unlock(mutexp);
|
return st_mutex_unlock(mutexp);
|
||||||
#elif defined(BETHREADS)
|
#elif defined(BETHREADS)
|
||||||
|
|
|
@ -69,12 +69,6 @@ typedef int ts_rsrc_id;
|
||||||
#elif defined(PTHREADS)
|
#elif defined(PTHREADS)
|
||||||
# define THREAD_T pthread_t
|
# define THREAD_T pthread_t
|
||||||
# define MUTEX_T pthread_mutex_t *
|
# define MUTEX_T pthread_mutex_t *
|
||||||
#elif defined(NSAPI)
|
|
||||||
# define THREAD_T SYS_THREAD
|
|
||||||
# define MUTEX_T CRITICAL
|
|
||||||
#elif defined(PI3WEB)
|
|
||||||
# define THREAD_T PIThread *
|
|
||||||
# define MUTEX_T PISync *
|
|
||||||
#elif defined(TSRM_ST)
|
#elif defined(TSRM_ST)
|
||||||
# define THREAD_T st_thread_t
|
# define THREAD_T st_thread_t
|
||||||
# define MUTEX_T st_mutex_t
|
# define MUTEX_T st_mutex_t
|
||||||
|
|
|
@ -2319,7 +2319,6 @@ static inline int accel_find_sapi(void)
|
||||||
"cli-server",
|
"cli-server",
|
||||||
"cgi-fcgi",
|
"cgi-fcgi",
|
||||||
"fpm-fcgi",
|
"fpm-fcgi",
|
||||||
"isapi",
|
|
||||||
"apache2filter",
|
"apache2filter",
|
||||||
"apache2handler",
|
"apache2handler",
|
||||||
"litespeed",
|
"litespeed",
|
||||||
|
@ -2598,7 +2597,7 @@ static int accel_startup(zend_extension *extension)
|
||||||
strcmp(sapi_module.name, "cli") == 0) {
|
strcmp(sapi_module.name, "cli") == 0) {
|
||||||
zps_startup_failure("Opcode Caching is disabled for CLI", NULL, accelerator_remove_cb);
|
zps_startup_failure("Opcode Caching is disabled for CLI", NULL, accelerator_remove_cb);
|
||||||
} else {
|
} else {
|
||||||
zps_startup_failure("Opcode Caching is only supported in Apache, ISAPI, FPM, FastCGI and LiteSpeed SAPIs", NULL, accelerator_remove_cb);
|
zps_startup_failure("Opcode Caching is only supported in Apache, FPM, FastCGI and LiteSpeed SAPIs", NULL, accelerator_remove_cb);
|
||||||
}
|
}
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,9 +101,7 @@ typedef int gid_t;
|
||||||
typedef char * caddr_t;
|
typedef char * caddr_t;
|
||||||
typedef unsigned int uint;
|
typedef unsigned int uint;
|
||||||
typedef unsigned long ulong;
|
typedef unsigned long ulong;
|
||||||
# if !NSAPI
|
|
||||||
typedef int pid_t;
|
typedef int pid_t;
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef PHP_DEBUG
|
# ifndef PHP_DEBUG
|
||||||
# ifdef inline
|
# ifdef inline
|
||||||
|
|
|
@ -45,12 +45,6 @@ function get_depends($module)
|
||||||
/* apache 2 */
|
/* apache 2 */
|
||||||
'libhttpd.dll', 'libapr.dll', 'libaprutil.dll','libapr-1.dll', 'libaprutil-1.dll',
|
'libhttpd.dll', 'libapr.dll', 'libaprutil.dll','libapr-1.dll', 'libaprutil-1.dll',
|
||||||
|
|
||||||
/* pi3web */
|
|
||||||
'piapi.dll', 'pi3api.dll',
|
|
||||||
|
|
||||||
/* nsapi */
|
|
||||||
'ns-httpd30.dll', 'ns-httpd35.dll', 'ns-httpd36.dll', 'ns-httpd40.dll',
|
|
||||||
|
|
||||||
/* oracle */
|
/* oracle */
|
||||||
'oci.dll', 'ociw32.dll',
|
'oci.dll', 'ociw32.dll',
|
||||||
|
|
||||||
|
|
|
@ -64,16 +64,11 @@ Chapter 1. General Installation Considerations
|
||||||
You may also rent webspace at a company. This way, you don't need to
|
You may also rent webspace at a company. This way, you don't need to
|
||||||
set up anything on your own, only write your PHP scripts, upload it to
|
set up anything on your own, only write your PHP scripts, upload it to
|
||||||
the server you rent, and see the results in your browser.
|
the server you rent, and see the results in your browser.
|
||||||
|
|
||||||
In case of setting up the server and PHP on your own, you have two
|
If PHP has no module support for your web server, ´you can always use
|
||||||
choices for the method of connecting PHP to the server. For many
|
it as a CGI or FastCGI processor. This means you set up your server
|
||||||
servers PHP has a direct module interface (also called SAPI). These
|
to use the CGI executable of PHP to process all PHP file requests on
|
||||||
servers include Apache, Microsoft Internet Information Server, Netscape
|
the server.
|
||||||
and iPlanet servers. Many other servers have support for ISAPI, the
|
|
||||||
Microsoft module interface (OmniHTTPd for example). If PHP has no
|
|
||||||
module support for your web server, you can always use it as a CGI or
|
|
||||||
FastCGI processor. This means you set up your server to use the CGI
|
|
||||||
executable of PHP to process all PHP file requests on the server.
|
|
||||||
|
|
||||||
If you are also interested to use PHP for command line scripting (e.g.
|
If you are also interested to use PHP for command line scripting (e.g.
|
||||||
write scripts autogenerating some images for you offline, or processing
|
write scripts autogenerating some images for you offline, or processing
|
||||||
|
@ -236,7 +231,7 @@ c:\php
|
||||||
|
|
||||||
Server modules provide significantly better performance and additional
|
Server modules provide significantly better performance and additional
|
||||||
functionality compared to the CGI binary. The FastCGI is significantly
|
functionality compared to the CGI binary. The FastCGI is significantly
|
||||||
more stable and can be faster than the ISAPI module with IIS.
|
more stable and can be a faster module with IIS.
|
||||||
The CLI version is designed to let you use PHP for command line
|
The CLI version is designed to let you use PHP for command line
|
||||||
scripting. More information about CLI is available in the chapter
|
scripting. More information about CLI is available in the chapter
|
||||||
about using PHP from the command line.
|
about using PHP from the command line.
|
||||||
|
@ -408,67 +403,6 @@ General considerations for all installations of PHP with IIS
|
||||||
that PHP did not output any data.
|
that PHP did not output any data.
|
||||||
__________________________________________________________________
|
__________________________________________________________________
|
||||||
|
|
||||||
Windows NT/200x/XP and IIS 4 or newer
|
|
||||||
|
|
||||||
PHP may be installed as a CGI binary, or with the ISAPI module. In
|
|
||||||
either case, you need to start the Microsoft Management Console (may
|
|
||||||
appear as 'Internet Services Manager', either in your Windows NT 4.0
|
|
||||||
Option Pack branch or the Control Panel=>Administrative Tools under
|
|
||||||
Windows 2000/XP). Then right click on your Web server node (this will
|
|
||||||
most probably appear as 'Default Web Server'), and select 'Properties'.
|
|
||||||
|
|
||||||
If you want to use the CGI binary, do the following:
|
|
||||||
|
|
||||||
* Under 'Home Directory', 'Virtual Directory', or 'Directory', do the
|
|
||||||
following:
|
|
||||||
* Change the Execute Permissions to 'Scripts only'
|
|
||||||
* Click on the 'Configuration' button, and choose the Application
|
|
||||||
Mappings tab. Click Add and set the Executable path to the
|
|
||||||
appropriate CGI file. An example PHP 7 value is: C:\php\php-cgi.exe
|
|
||||||
Supply .php as the extension. Leave 'Method exclusions' blank, and
|
|
||||||
check the 'Script engine' checkbox. Now, click OK a few times.
|
|
||||||
* Set up the appropriate security. (This is done in Internet Service
|
|
||||||
Manager), and if your NT Server uses NTFS file system, add execute
|
|
||||||
rights for I_USR_ to the directory that contains php.exe /
|
|
||||||
php-cgi.exe.
|
|
||||||
|
|
||||||
To use the ISAPI module, do the following:
|
|
||||||
|
|
||||||
* If you don't want to perform HTTP Authentication using PHP, you can
|
|
||||||
(and should) skip this step. Under ISAPI Filters, add a new ISAPI
|
|
||||||
filter. Use PHP as the filter name, and supply a path to the
|
|
||||||
php7isapi.dll.
|
|
||||||
* Under 'Home Directory', 'Virtual Directory', or 'Directory', do the
|
|
||||||
following:
|
|
||||||
* Change the Execute Permissions to 'Scripts only'
|
|
||||||
* Click on the 'Configuration' button, and choose the Application
|
|
||||||
Mappings tab. Click Add and set the Executable path to the
|
|
||||||
appropriate ISAPI DLL. An example PHP 7 value is:
|
|
||||||
C:\php\php7isapi.dll Supply .php as the extension. Leave 'Method
|
|
||||||
exclusions' blank, and check the 'Script engine' checkbox. Now,
|
|
||||||
click OK a few times.
|
|
||||||
* Stop IIS completely (NET STOP iisadmin)
|
|
||||||
* Start IIS again (NET START w3svc)
|
|
||||||
|
|
||||||
With IIS 6 (2003 Server), open up the IIS Manager, go to Web Service
|
|
||||||
Extensions, choose "Add a new Web service extension", enter in a name
|
|
||||||
such as PHP, choose the Add button and for the value browse to either
|
|
||||||
the ISAPI file (php7isapi.dll) or CGI (php.exe or
|
|
||||||
php-cgi.exe) then check "Set extension status to Allowed" and click OK.
|
|
||||||
|
|
||||||
In order to use index.php as a default content page, do the following:
|
|
||||||
From within the Documents tab, choose Add. Type in index.php and click
|
|
||||||
OK. Adjust the order by choosing Move Up or Move Down. This is similar
|
|
||||||
to setting DirectoryIndex with Apache.
|
|
||||||
|
|
||||||
The steps above must be repeated for each extension that is to be
|
|
||||||
associated with PHP scripts. .php is the most common although .php3 may
|
|
||||||
be required for legacy applications.
|
|
||||||
|
|
||||||
If you experience 100% CPU usage after some time, turn off the IIS
|
|
||||||
setting Cache ISAPI Application.
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
Windows and IIS
|
Windows and IIS
|
||||||
|
|
||||||
See http://www.php.net/install.windows
|
See http://www.php.net/install.windows
|
||||||
|
@ -683,18 +617,6 @@ PHPIniDir "C:/php"
|
||||||
ship with your downloaded PHP version.
|
ship with your downloaded PHP version.
|
||||||
__________________________________________________________________
|
__________________________________________________________________
|
||||||
|
|
||||||
Sun, iPlanet and Netscape servers on Microsoft Windows
|
|
||||||
|
|
||||||
This section contains notes and hints specific to Sun Java System Web
|
|
||||||
Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP
|
|
||||||
on Windows.
|
|
||||||
|
|
||||||
From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to
|
|
||||||
generate custom directory listings and error pages. Additional
|
|
||||||
functions for Apache compatibility are also available. For support in
|
|
||||||
current web servers read the note about subrequests.
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
CGI setup on Sun, iPlanet and Netscape servers
|
CGI setup on Sun, iPlanet and Netscape servers
|
||||||
|
|
||||||
To install PHP as a CGI handler, do the following:
|
To install PHP as a CGI handler, do the following:
|
||||||
|
@ -720,70 +642,6 @@ ftype PHPScript=c:\php\php.exe %1 %*
|
||||||
here: http://benoit.noss.free.fr/php/install-php.html
|
here: http://benoit.noss.free.fr/php/install-php.html
|
||||||
__________________________________________________________________
|
__________________________________________________________________
|
||||||
|
|
||||||
NSAPI setup on Sun, iPlanet and Netscape servers
|
|
||||||
|
|
||||||
To install PHP with NSAPI, do the following:
|
|
||||||
|
|
||||||
* Copy php7ts.dll to your systemroot (the directory where you
|
|
||||||
installed Windows)
|
|
||||||
* Make a file association from the command line. Type the following
|
|
||||||
two lines:
|
|
||||||
|
|
||||||
assoc .php=PHPScript
|
|
||||||
ftype PHPScript=c:\php\php.exe %1 %*
|
|
||||||
|
|
||||||
* In the Netscape Enterprise Administration Server create a new mime
|
|
||||||
type (Category: type, Content-Type: magnus-internal/x-httpd-php,
|
|
||||||
File Suffix: php).
|
|
||||||
* Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6)
|
|
||||||
and add the following: You should place the lines after mime types
|
|
||||||
init.
|
|
||||||
|
|
||||||
Init fn="load-modules" funcs="php7_init,php7_execute,php7_auth_trans" shlib="c:/
|
|
||||||
php/sapi/php7nsapi.dll"
|
|
||||||
Init fn="php7_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_
|
|
||||||
ini="c:/path/to/php.ini"]
|
|
||||||
|
|
||||||
The php_ini parameter is optional but with it you
|
|
||||||
can place your php.ini in your web server configuration directory.
|
|
||||||
* Configure the default object in obj.conf (for virtual server
|
|
||||||
classes [Sun Web Server 6.0+] in their vserver.obj.conf): In the
|
|
||||||
<Object name="default"> section, place this line necessarily after
|
|
||||||
all 'ObjectType' and before all 'AddLog' lines:
|
|
||||||
|
|
||||||
Service fn="php7_execute" type="magnus-internal/x-httpd-php" [inikey=value inike
|
|
||||||
y=value ...]
|
|
||||||
|
|
||||||
As additional parameters you can add some special
|
|
||||||
php.ini-values, for example you can set a
|
|
||||||
docroot="/path/to/docroot" specific to the context php7_execute is
|
|
||||||
called. For boolean ini-keys please use 0/1 as value, not
|
|
||||||
"On","Off",... (this will not work correctly), e.g.
|
|
||||||
zlib.output_compression=1 instead of zlib.output_compression="On"
|
|
||||||
* This is only needed if you want to configure a directory that only
|
|
||||||
consists of PHP scripts (same like a cgi-bin directory):
|
|
||||||
|
|
||||||
<Object name="x-httpd-php">
|
|
||||||
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
|
|
||||||
Service fn=php7_execute [inikey=value inikey=value ...]
|
|
||||||
</Object>
|
|
||||||
|
|
||||||
After that you can configure a directory in the Administration
|
|
||||||
server and assign it the style x-httpd-php. All files in it will
|
|
||||||
get executed as PHP. This is nice to hide PHP usage by renaming
|
|
||||||
files to .html.
|
|
||||||
* Restart your web service and apply changes
|
|
||||||
* Do it for each web server instance you want PHP to run
|
|
||||||
|
|
||||||
Note: More details about setting up PHP as an NSAPI filter can be
|
|
||||||
found here: http://benoit.noss.free.fr/php/install-php4.html
|
|
||||||
|
|
||||||
Note: The stacksize that PHP uses depends on the configuration of
|
|
||||||
the web server. If you get crashes with very large PHP scripts, it
|
|
||||||
is recommended to raise it with the Admin Server (in the section
|
|
||||||
"MAGNUS EDITOR").
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
CGI environment and recommended modifications in php.ini
|
CGI environment and recommended modifications in php.ini
|
||||||
|
|
||||||
Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE
|
Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE
|
||||||
|
@ -832,35 +690,6 @@ pt.php" [inikey=value inikey=value...]
|
||||||
$_SERVER['PATH_TRANSLATED'].
|
$_SERVER['PATH_TRANSLATED'].
|
||||||
__________________________________________________________________
|
__________________________________________________________________
|
||||||
|
|
||||||
Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)
|
|
||||||
|
|
||||||
The NSAPI module now supports the nsapi_virtual() function (alias:
|
|
||||||
virtual()) to make subrequests on the web server and insert the result
|
|
||||||
in the web page. The problem is, that this function uses some
|
|
||||||
undocumented features from the NSAPI library.
|
|
||||||
|
|
||||||
Under Unix this is not a problem, because the module automatically
|
|
||||||
looks for the needed functions and uses them if available. If not,
|
|
||||||
nsapi_virtual() is disabled.
|
|
||||||
|
|
||||||
Under Windows limitations in the DLL handling need the use of a
|
|
||||||
automatic detection of the most recent ns-httpdXX.dll file. This is
|
|
||||||
tested for servers till version 6.1. If a newer version of the Sun
|
|
||||||
server is used, the detection fails and nsapi_virtual() is disabled.
|
|
||||||
|
|
||||||
If this is the case, try the following: Add the following parameter to
|
|
||||||
php7_init in magnus.conf/obj.conf:
|
|
||||||
Init fn=php7_init ... server_lib="ns-httpdXX.dll"
|
|
||||||
|
|
||||||
where XX is the correct DLL version number. To get it, look in the
|
|
||||||
server-root for the correct DLL name. The DLL with the biggest filesize
|
|
||||||
is the right one.
|
|
||||||
|
|
||||||
You can check the status by using the phpinfo() function.
|
|
||||||
|
|
||||||
Note: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!
|
|
||||||
__________________________________________________________________
|
|
||||||
|
|
||||||
OmniHTTPd Server
|
OmniHTTPd Server
|
||||||
|
|
||||||
This section contains notes and hints specific to OmniHTTPd on Windows.
|
This section contains notes and hints specific to OmniHTTPd on Windows.
|
||||||
|
@ -875,8 +704,7 @@ OmniHTTPd Server
|
||||||
|
|
||||||
You need to complete the following steps to make PHP work with
|
You need to complete the following steps to make PHP work with
|
||||||
OmniHTTPd. This is a CGI executable setup. SAPI is supported by
|
OmniHTTPd. This is a CGI executable setup. SAPI is supported by
|
||||||
OmniHTTPd, but some tests have shown that it is not so stable to use
|
OmniHTTPd.
|
||||||
PHP as an ISAPI module.
|
|
||||||
|
|
||||||
Important for CGI users: Read the faq on cgi.force_redirect for
|
Important for CGI users: Read the faq on cgi.force_redirect for
|
||||||
important details. This directive needs to be set to 0.
|
important details. This directive needs to be set to 0.
|
||||||
|
@ -988,20 +816,12 @@ extension=php_bz2.dll
|
||||||
Extension Description Notes
|
Extension Description Notes
|
||||||
php_bz2.dll bzip2 compression functions None
|
php_bz2.dll bzip2 compression functions None
|
||||||
php_calendar.dll Calendar conversion functions
|
php_calendar.dll Calendar conversion functions
|
||||||
php_cpdf.dll ClibPDF functions None
|
|
||||||
php_crack.dll Crack functions None
|
|
||||||
php_ctype.dll ctype family functions
|
php_ctype.dll ctype family functions
|
||||||
php_curl.dll CURL, Client URL library functions Requires: libeay32.dll,
|
php_curl.dll CURL, Client URL library functions Requires: libeay32.dll,
|
||||||
ssleay32.dll (bundled)
|
ssleay32.dll (bundled)
|
||||||
php_db.dll DBM functions Deprecated. Use DBA instead (php_dba.dll)
|
|
||||||
php_dba.dll DBA: DataBase (dbm-style) Abstraction layer functions None
|
php_dba.dll DBA: DataBase (dbm-style) Abstraction layer functions None
|
||||||
php_dbase.dll dBase functions None
|
|
||||||
php_dbx.dll dbx functions
|
|
||||||
php_exif.dll EXIF functions php_mbstring.dll. And, php_exif.dll must be
|
php_exif.dll EXIF functions php_mbstring.dll. And, php_exif.dll must be
|
||||||
loaded after php_mbstring.dll in php.ini.
|
loaded after php_mbstring.dll in php.ini.
|
||||||
php_fdf.dll FDF: Forms Data Format functions. Requires: fdftk.dll
|
|
||||||
(bundled)
|
|
||||||
php_filepro.dll filePro functions Read-only access
|
|
||||||
php_ftp.dll FTP functions
|
php_ftp.dll FTP functions
|
||||||
php_gd2.dll GD library image functions GD2
|
php_gd2.dll GD library image functions GD2
|
||||||
php_gettext.dll Gettext functions, requires libintl-1.dll,
|
php_gettext.dll Gettext functions, requires libintl-1.dll,
|
||||||
|
@ -1011,10 +831,6 @@ extension=php_bz2.dll
|
||||||
php_interbase.dll InterBase functions Requires: gds32.dll (bundled)
|
php_interbase.dll InterBase functions Requires: gds32.dll (bundled)
|
||||||
php_ldap.dll LDAP functions requires libeay32.dll, ssleay32.dll (bundled)
|
php_ldap.dll LDAP functions requires libeay32.dll, ssleay32.dll (bundled)
|
||||||
php_mbstring.dll Multi-Byte String functions None
|
php_mbstring.dll Multi-Byte String functions None
|
||||||
php_mime_magic.dll Mimetype functions Requires: magic.mime (bundled)
|
|
||||||
php_ming.dll Ming functions for Flash None
|
|
||||||
php_msql.dll mSQL functions Requires: msql.dll (bundled)
|
|
||||||
php_mssql.dll MSSQL functions Requires: ntwdblib.dll (bundled)
|
|
||||||
php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll
|
php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll
|
||||||
(bundled)
|
(bundled)
|
||||||
php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysql.dll
|
php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysql.dll
|
||||||
|
@ -1023,13 +839,11 @@ extension=php_bz2.dll
|
||||||
php_openssl.dll OpenSSL functions Requires: libeay32.dll (bundled)
|
php_openssl.dll OpenSSL functions Requires: libeay32.dll (bundled)
|
||||||
php_oracle.dll Oracle functions Requires: Oracle 7 client libraries
|
php_oracle.dll Oracle functions Requires: Oracle 7 client libraries
|
||||||
php_pgsql.dll PostgreSQL functions None
|
php_pgsql.dll PostgreSQL functions None
|
||||||
php_printer.dll Printer functions None
|
|
||||||
php_shmop.dll Shared Memory functions None
|
php_shmop.dll Shared Memory functions None
|
||||||
php_snmp.dll SNMP get and walk functions NT only!
|
php_snmp.dll SNMP get and walk functions NT only!
|
||||||
php_soap.dll SOAP functions PHP >= 5.0.0
|
php_soap.dll SOAP functions PHP >= 5.0.0
|
||||||
php_sockets.dll Socket functions None
|
php_sockets.dll Socket functions None
|
||||||
php_sodium.dll Sodium cryptography library PHP >= 7.2.0
|
php_sodium.dll Sodium cryptography library PHP >= 7.2.0
|
||||||
php_sybase_ct.dll Sybase functions Requires: Sybase client libraries
|
|
||||||
php_tidy.dll Tidy functions PHP >= 5.0.0
|
php_tidy.dll Tidy functions PHP >= 5.0.0
|
||||||
php_tokenizer.dll Tokenizer functions Built in since PHP 4.3.0
|
php_tokenizer.dll Tokenizer functions Built in since PHP 4.3.0
|
||||||
php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll
|
php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll
|
||||||
|
@ -1247,8 +1061,7 @@ The configuration file
|
||||||
php.ini is searched in these locations (in order):
|
php.ini is searched in these locations (in order):
|
||||||
|
|
||||||
* SAPI module specific location (PHPIniDir directive in Apache 2, -c
|
* SAPI module specific location (PHPIniDir directive in Apache 2, -c
|
||||||
command line option in CGI and CLI, php_ini parameter in NSAPI,
|
command line option in CGI and CLI)
|
||||||
PHP_INI_PATH environment variable in THTTPD)
|
|
||||||
* The PHPRC environment variable. Before PHP 5.2.0 this was checked
|
* The PHPRC environment variable. Before PHP 5.2.0 this was checked
|
||||||
after the registry key mentioned below.
|
after the registry key mentioned below.
|
||||||
* As of PHP 5.2.0, the following registry locations are searched in
|
* As of PHP 5.2.0, the following registry locations are searched in
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue