This is an old revision of the document!
PHP RFC: Removal of dead or not yet ported SAPIs and extensions
- Version: 2
- Date: 2015-01-14
- Author: Anatol Belski, ab@php.net
- Status: Discussion
- First Published at: http://wiki.php.net/rfc/removal_of_dead_sapis
Introduction
Currently PHP contains many SAPIs to the servers either completely unavailable or unsupported for a long time. The same can be said about several extensions which are for long deprecated or their dependency libraries are unsupported. Here's a short list:
Dead SAPIs:
- aolserver
- apache
- apache_hooks
- caudium
- continuity
- isapi
- milter
- phttpd
- pi3web
- roxen
- thttpd
- tux
- webjames
- apache2filter - not really dead, but currently broken
- nsapi
Extensions with unmaintained dependencies
- imap
- mcrypt
Deprecated extensions handled by https://wiki.php.net/rfc/remove_deprecated_functionality_in_php7 (not handled by this RFC)
- mysql
- ereg
This leads to the situation where the repository contains a lot of unmaintained code. Additionally, especially for xtensions - it just asks for security vulnerabilities.
Research
sapi/aolserver
- Server home: http://sourceforge.net/projects/aolserver/
- Server last release: 2012
- Server debian supported: yes
- SAPI status: 5.4 builds with the latest server API
sapi/apache
- Server last release: 2010
- Server debian supported: no
Apache 1.x branch not developed anymore since 2010. Also it supports no security updates anymore.
sapi/apache_hooks
Same as sapi/apache.
sapi/apache2filter
- Server debian supported: yes
This Apache 2.x compatible module seems to have been supported in at least PHP5. In master, it will need to be ported.
sapi/caudium
- Sevrer home: http://caudium.net/
- Server last release: 2012
- Server debian supported: not completely
- SAPI status: unsupported
The official documentation of Caudium states that PHP can only run as CGI or FCGI http://www.caudium.net/space/documentation/PHP%20Setup . Running PHP as a module is not supported anymore.
sapi/continuity
No mortal remains of the corresponding server could be found on the internets.
sapi/isapi
- Server home: http://www.iis.net/
- SAPI status: unsupported
The ISAPI support was announced to have been dropped already in the 5.3 migration guide. http://us2.php.net/manual/en/migration53.windows.php .
sapi/milter
- Home: https://www.milter.org/
- Server debian supported: yes
- SAPI status: 5.4 builds with sendmail 8.14
Milter is not a web server but an API enabling to hook into different MTAs for mail filtering. PHP scripts running under this SAPI are not dedicated to web development, but would be invoked by the corresponding MTA. In this case also, the corresponding PHP program will need to implement whichever rules. An example of another binding to Milter, just to name one, is an interface to Amavis.
sapi/phttpd
- Server home: http://www.lysator.liu.se/~pen/phttpd/
- Server last release: not sure, development seems to have ended around 2000
- Server debian supported: no
- SAPI status: development incomplete
Comment from the README: THIS IS BY NO MEANS COMPLETE NOR USABLE RIGHT NOW!
sapi/pi3web
- Server home: http://pi3web.sourceforge.net/pi3web/
- Server last release: 2005
- Server debian supported: no
- SAPI status: last commit by the author is in 2004
sapi/roxen
- Server Home: http://www.roxen.com/products/cms/webserver/
- Server last release: 2014
- Server debian supported: no
- SAPI status: experimental
The official documentation http://docs.roxen.com/roxen/5.0/system_developer_manual/languages/php.xml call the only supported mode to be CGI. The SAPI module is called experimental there.
sapi/thttpd
- Server home: http://acme.com/software/thttpd/
- Server last release: 2014
- Server debian supported: yes
- SAPI status: not clear
The latest thttpd version is 2.26, which builds fine. But when building PHP, there's an error message
“This version only supports thttpd-2.21b and premium thttpd”
But thttpd-2.21b doesn't build anymore, at least at some recent distro i've used. The premium thttpd seems to be a commercial product which isn't available to test with.
sapi/tux
- Server home: http://people.redhat.com/~mingo/TUX-patches/
- Server last release: 2006
- Server debian supported: no
- SAPI status: PHP4 compatible
sapi/webjames
- Sevrer home: http://www.cp15.org/webjames/
- Server last release: 2007
- Server debian supported: no
- SAPI status: PHP5.2 compatible
sapi/nsapi
- Server home: there seem to be many, but all require some Sun/Oracle environment, more to read here http://en.wikipedia.org/wiki/Oracle_iPlanet_Web_Server
- Server last release: 2014
- Server debian supported: no
- SAPI status: Seems to be PHP5 compatible, untested
The developers of iPlanet @Oracle wrote back, that they're not intended to support this SAPI starting from PHP7 onwards.
ext/imap
* Dependency home: http://www.washington.edu/imap/ * Dependency debian supported: yes * Dependency last release: 2007
ext/mcrypt
- Dependency home: http://sourceforge.net/projects/mcrypt/
- Dependency debian supported: yes
- Dependency last release: 2007
ext/interbase
- Dependency home: not available, firebird can be used
- Dependency debian supported: yes
- Dependency last release: 2014
Marius Adrian Popa wrote back about an intention to maintain this together with ext/pdo_firebird. Right now the ext/interbase is not ported to PHP7.
ext/pdo_oci and ext/oci8
- Dependency home: oracle.com
- Dependency debian supported: no
- Dependency last release: 2014
ext/mssql
- Dependency home: microsoft.com
- Dependency debian supported: no
- Dependency last release: 2014
ext/pdo_dblib
- Dependency home: sybase.com, microsoft.com
- Dependency debian supported: no
- Dependency last release: 2014
ext/sybase_ct
- Dependency home: sybase.com
- Dependency debian supported: no
- Dependency last release: 2014
Proposal
The SAPIs listed above should be removed from the source tree. The extensions listed above should be removed from the source tree. Depending on the vote outcome and presence of the maintainers, they could be resurrected in PECL.
Backward Incompatible Changes
None.
Proposed PHP Version(s)
7
SAPIs Impacted
SAPI and extension list in the description.
Impact to Existing Extensions
Unsupported extensions list in the description.
php.ini Defaults
php.ini will have to be checked to remove the unavailable config options, if any.
Open Issues
None.
Future Scope
Should an SAPI or extension come back, the corresponding code is available in the git history.
Proposed Voting Choices
Remove dead SAPIs, each item separately: yes/no