You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Version and Build Options

  • PHP 5.2.8 or later is required. However, it is strongly recommended to use a version of PHP that is not EOL (currently 5.4 or later).
  • php5-xsl is required, built with --with-xsl.
  • For multi-byte string support in data normalization, PHP must be built with --enable-mbstring.
  • An appropriate database option, built with a flag like --with-pdo-pgsql or --with-pdo-mysql.

PHP 5.4.0 Enables Strict Error Reporting

As of PHP 5.4.0, PHP ships by default with strict logging enabled. As of CakePHP 2.0.5, this will cause failures during setup. This can be disabled in php.ini by setting

error_reporting = E_ALL & ~E_STRICT

PCRE Bug May Cause Problems

There are known issues with earlier versions of the PCRE library that will cause COmanage Registry to be unable to set up its database tables. Version 6.6 and earlier are known to have problems, while versions 8.02 and later are known to work. You can check the version that PHP was built against by running this command:

php -r 'phpinfo();' | grep PCRE

If you are using an old version of PCRE, you'll first need to install a more recent version. Be sure to configure it with the --enable-utf8 --enable-unicode-properties flags. You'll then need to rebuild PHP against the newer version of the PCRE library.

Alternately, you may be able to rebuild PHP using its own internal copy of PCRE. As of PHP v5.3.3, PCRE 8.02 or later is included by default.

The database setup step may throw errors like Error: Database connection "Mysql" is missing, or could not be created. if the command line php client can't find the PDO libraries. One way to ensure their availability is to build PHP --with-pdo-mysql (or with the appropriate flag for the database you are using).

You can test for this with php -r 'phpinfo();' | grep pdo:

$ php -r 'phpinfo();' | grep pdo
pdo_mysql
pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock
pdo_sqlite

Testing PHP Database Connectivity

PHP will work with many different database servers. You may wish to test that PHP was built with support for MySQL or PostgreSQL (or whatever database you are using). You should have already installed and configured the database server and (in this example) have created a user named registry_user.

To test if PHP was built with support for MySQL create the file mysql-test.php with contents

<?php
mysql_connect("localhost", "registry_user", "a password goes here") or die(mysql_error());
echo "Connected to MySQL<br/>";
?>

To test if PHP was built with support for PostgreSQL create the file postgreSQL-test.php with contents

<?php
pg_connect("host=localhost dbname=test user=registry_user password=password") or die(pg_last_error());
echo "Connected to PostgreSQL<br/>";
?>

Either run the command line php tool on the file or serve it from your webserver and make sure that the script can connect to your database server.

Be sure to remove your test file after testing so it is not exposed on your web server.

Configuration Suggestions

As for all production PHP installations, display_errors should be set to Off in your php.ini.

  • No labels