Penn State Mark Penn State Application Services - PHP Web service text graphic Information Technology Services
 
PHP Web Service home | Storing Data | Setting PASS Permissions | Firewall/Database Permissions Info | Errata and Change Log

PASS Migration Upgrade - PHP Phase III, Version 1 - Effective Friday, July 4, 2008

See also: http://its.psu.edu/alerts/alert-740

Major Changes

  • DCE/DFS authentication/authorization/storage systems replaced by Kerberos/LDAP/GPFS (see New PASS Documentation)
  • Platform change: Sun Solaris to Redhat Linux
  • Source compiled to (mostly) vendor distribution binary Redhat Package Manager (RPM) packaged components
  • Backend IP addresses changed: still within PHP backend subnet (see PHP Firewall/Database Permissions Info).

New Features

  • Registered PHP streams: compress.bzip2
  • Registered stream filters: bzip2.*
  • GD FreeType (version 2.2.1)
  • Experimental XML RPC extension activated

Upgraded

Removed Features

Deprecated, Soon To Be Removed Features

Not Changed

Newly Resolved Problems

  • Was missing SQLite version 2 driver for PDO and SQLite extension interface. These have been restored by July 21.

Previously Resolved Problems

  • is_readable() / is_writable() support for PASS ACLs - In previous versions of PHP 5.x, is_writable() and is_readable() both gave answers without regard to POSIX ACLs, which in our case of PASS, didn't accurately reflect the PASS (DCE/DFS) file ACL permissions. PHP applications such as Joomla! and Drupal had problems during installation as the is_readable() and is_writable() PHP functions falsely reported files/folders could not be used as required by the installation script. -- This PHP Bug #34957 was fixed in PHP version 5.1.0, thus included in Penn State Application Engines Phase II, Build 4. This also appears to not be a problem with GPFS / NFSv4 ACLs either in Phase III, Version 1.

  • Empty query string crash PDO 'sqlite2' objects - The 'sqlite2' PDO driver causes a segmentation fault (server process crash, which appears as a blank page / reset connection in a browser) when the ->query method operates on a blank (null + any number of whitespace) string. -- A patch has been applied, submitted to the PHP community and committed to the PHP bundled sqlite2 driver since PHP version 5.2.0.

  • PHP readdir() function / POSIX readdir_r() stack corruption - There was a known problem where the readdir() function would cause a server process to crash under the right conditions; this may have caused Web browsers to display error messages such as, "Document contains no data," or, "Page cannot be displayed." -- This problem was Solaris DFS client specific so no longer present.

  • sqlite_open() / new PDO('sqlite') / new PDO('sqlite2') fail to open a relative database filename with an unreadable ancestor folder - There was a condition when sqlite_open() would fail to open a database file when referred to via a relative path name. This occured when a subsequent getcwd() call fails, which it would when an ancestor folder was not readable by the Web server. This is common for PHP scripts run from Penn State Personal Web space. This was fixed in Phase II, Build 3 by a custom patch, which also fixed another bug that caused server crashes, as documented at http://www.sqlite.org/cvstrac/tktview?tn=1274. The second bug that caused server crashes has been fixed in SQLite Code Checkin #2491 / SQLite 3.2.2 / SQLite 2.8.17 / PHP 5.1.2. -- Linux getcwd() uses kernel stored full path so does not cause the same failure. This bug is no longer present.

Unresolved Problems

  • None known at this time.


The Pennsylvania State University ©2008. All rights reserved.
Alternative Media - Nondiscrimination Statement
Information Technology Services.

For assistance please write to helpdesk@psu.edu or see our Help Sources.

Last revised: Monday, July 21, 2008.