Update to PHP 5.2 to deliver additional PHP features within OpenSolaris. 09 September 2009 1. Summary and motivation 1.1. Introduction This project will deliver following new features within OpenSolaris a) Bundle "ncurses" extension within PHP 5.2.x b) Removes PHP DTrace extension as a separate package. This feature has been rolled into PHP core itself. Hence, there is no need to deliver this extension as a separate package anymore. c) Deliver 32-bit and 64-bit PHP NSAPI plugin to allow Sun Web Server 7 to work with PHP engine. d) Deliver 'memsession' PECL extension for PHP NSAPI plugin module This case seeks Minor Release Binding 1.2 Previous Relevant ARC cases PSARC/2007/641 - Enabling built-in extensions. PSARC/2007/552 - Upgrading PHP 5.2.4 PSARC/2007/470 - Upgrading PHP 5.2.3 PSARC/2007/168 - Integrating PHP 5.2.0 PSARC/2008/538 - Integrating PHP 5.2.6 2. Technical issues 2.1. Key objects /usr/php/5.2/modules/ncurses.so /usr/php/5.2/bin/configure-sun-webserver7 /usr/php/5.2/zts-modules/ /usr/php/5.2/zts-modules/memsession.so /usr/php/5.2/zts-modules/64/memsession.so /usr/webserver7/plugins/php52/libphp5.so /usr/webserver7/plugins/php52//libphp5.so 2.2. Versioning n/a 2.3 PHP NCurses Extension NCurses extension is bundled within PHP and this extension depends on ncurses library to be available in the system. Ncurses library is currently shipped under MIT license. 2.4 Support for Sun Web Server 7 Enterprise customers have demanded necessary plugin/modules to allow running Sun Web Server 7 with PHP. This project will deliver this functionality as a separate package 'SUNWphp52u-nsapi' . This package will deliver the runtime modules as well as configuration script to configure PHP engine with Sun Web Server 7. This project will deliver 32-bit and 64-bit PHP library for Sun Web Server 7 only. 2.6 PECL "memsession" extension This extension is developed by Sun under PHP license and donated to PHP extension framework. Sun Web Server 7 will need this extension to store sessions in mult-threaded environment. This extension is critical to deliver better performance with PHP and Sun Web Server 7. 2.4 Directory Naming and Structure Following new directories will be created to add support for PHP and Sun Web Server 7 /usr/php/5.2/zts-modules/ /usr/php/5.2/zts-modules/64/ 2.6 Configuration File /etc/php/5.2/php-nsapi-32.ini -> Deliver PHP INI for Sun Web Server 7 /etc/php/5.2/php-nsapi-64.ini -> Deliver 64-bit PHP INI for Sun Web Server 7 2.7 Docroot and Log Files No change in document and log files. 2.8 SMF and RBAC support n/a 2.9 Packaging and Delivery We propose to package ncurses.so under the following packages: SUNWphp52u We propose to drop bundling 'dtrace.so' within SUNWphp52u package. This extension has been rolled into PHP engine itself. So, there should be no loss of functionality with this change. We propose to include a new package a) SUNWwebserver7u-php52 -> delivers runtime files b) SUNWwebserver7m-php52 -> delivers config files to configure PHP NSAPI module for Sun Web Server 7. This package will also deliver appropriate configuration script: configure-sun-webserver7 to allow configuring PHP with Sun Web Server. 2.10 Package Dependencies SUNWphp52u will now also depend on a) SUNWncurses 3. Interfaces 3.1 Interface Stability. PHP, as an Open Source project, is controlled by a group of developers external of, and independent from, SMI. The PHP Group makes no guarantees or promises of ABI or API compatibility between PHP releases. 3.2 Imported Interfaces. NAME STABILITY NOTES NCurses Uncommitted PSARC/2008/203 Sun Web Server 7 Uncommitted 3.3 Exported Interfaces. 3.3.1 PHP Packages NAME STABILITY NOTES SUNWphp52u Uncommitted Package Name SUNWwebserver7u-php52 Uncommitted Package Name SUNWwebserver7r-php52 Uncommitted Package Name 3.3.2 Directory / Files NAME STABILITY NOTES /etc/php/5.2/php-nsapi.ini Uncommitted Configuration /usr/php/5.2/zts-modules/ Uncommitted ShaLibraries /usr/php/5.2/zts-modules/memssion.so Uncommitted Configuration /usr/php/5.2/zts-modules/apc.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/curl.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/dom.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/ftp.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/gd.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/gettext.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/iconv.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/imap.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/json.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/libxml.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/mcrypt.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/mysql.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/mbstring.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/memcached.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/openssl.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/pcre.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/pdo.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/pgsql.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/pdo_mysql.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/pdo_pgsql.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/posix.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/session.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/soap.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/sockets.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/spl.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/simplexml.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/tokenizer.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/xml.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/xmlrpc.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/xlmreader.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/xmlwriter.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/xsl.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/zip.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/zlib.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/64/memssion.so Uncommitted Configuration /usr/php/5.2/zts-modules/64/apc.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/curl.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/dom.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/ftp.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/gd.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/gettext.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/iconv.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/imap.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/json.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/libxml.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/mcrypt.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/mysql.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/mbstring.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/memcached.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/openssl.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/pcre.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/pdo.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/pgsql.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/pdo_mysql.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/pdo_pgsql.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/posix.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/session.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/soap.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/sockets.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/spl.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/simplexml.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/tokenizer.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/xml.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/xmlrpc.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/xlmreader.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/xmlwriter.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/xsl.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/zip.so Uncommitted ShaLibraries /usr/php/5.2/zts-modules/64/zlib.so Uncommitted ShaLibraries /usr/php/5.2/bin/configure-sun-webserver7 Uncommitted Script /usr/webserver7/plugins/php/ Uncommitted ShaLibraries /usr/webserver7/plugins/php/ Uncommitted ShaLibraries 6. References