From 1e5fd9e6f214fe3744b0d72cec7e9be2e5f6d53d Mon Sep 17 00:00:00 2001 From: Anthony Bedford Date: Tue, 10 Feb 2009 16:02:03 +0000 Subject: [PATCH] Rewrote to clarify installation/configuration procedures, with particular reference to using MySQL Native Driver with mysqli. git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@275503 c90b9560-bf6c-de11-be94-00142212c4b1 --- reference/mysqli/configure.xml | 143 ++++++++++++++++++++++++++------- 1 file changed, 113 insertions(+), 30 deletions(-) diff --git a/reference/mysqli/configure.xml b/reference/mysqli/configure.xml index 43f942c1cc..c821bbf2ca 100644 --- a/reference/mysqli/configure.xml +++ b/reference/mysqli/configure.xml @@ -1,56 +1,139 @@ - +
- &reftitle.install; + +&reftitle.install; + - To install the mysqli extension for PHP, use the - - configuration option where mysql_config_path - represents the location of the mysql_config program - that comes with MySQL versions greater than 4.1. + As of PHP 5.0, MySQL support is no longer enabled by default with the + standard PHP distributions. This means PHP needs to be explicitly + configured to take advantage of the MySQL extensions. - With versions of PHP 5.3 and newer, you can alternatively use - . This is the - recommended option as using the MySQL Native Driver results in - improved performance and gives access to features not available when - using the MySQL Client Library. Refer to + The common Unix distributions include binary versions of PHP that can + be installed. Although these binary versions are typically built with + support for MySQL extensions enabled, the extension libraries + themselves may need to be installed using an additional package. Check + the package manager than comes with your chosen distribution for + availability. + + + + Unless your Unix distribution comes with a binary package of PHP with + the mysqli extension available, you will need to + build PHP from source code. Building PHP from source allows you to + specify the MySQL extensions you want to use, as well as your choice + of client library for each extension. + + + + To ensure that the mysqli extension for PHP is + enabled, you will need to configure the PHP source code to use + mysqli. This is achieved by running the + configure script with the option + , + prior to building PHP. This will enable mysqli and + it will use the MySQL Client Library (libmysql) to communicate with + the MySQL Server. + + + + + The mysql_config_path represents the location of + the mysql_config program that comes with MySQL + Server versions greater than 4.1. + + + + + With versions of PHP 5.3 and newer, you can alternatively use the new + MySQL Native Driver with mysqli. This gives a + number of benefits over using libmysql. + + + + To use MySQL Native Driver with mysqli you need to + configure the PHP source code using the + option, prior + to building PHP. + + + + This is the recommended option, as using the MySQL Native Driver + results in improved performance and gives access to features not + available when using the MySQL Client Library. Refer to What is PHP's MySQL Native Driver? for a brief overview of the advantages of MySQL Native Driver. - If you would like to install the mysql extension along with the mysqli - extension you have to use the same client library to avoid any - conflicts. + Note that it is possible to freely mix MySQL extensions and client + libraries. For example, it is possible to enable the MySQL extension + to use the MySQL Client Library (libmysql), while configuring the + mysqli extension to use the MySQL Native Driver. + However, all permutations of extension and client library are + possible. + + The following example builds the MySQL extension to use the MySQL + Client Library, and the mysqli and PDO MYSQL + extensions to use the MySQL Native Driver: + + + +./configure --with-mysql=/usr/bin/mysql_config \ +--with-mysqli=mysqlnd \ +--with-pdo-mysql=mysqlnd +[other options] + +
Installation on Windows Systems - The mysqli extension is not enabled by default, so - the php_mysqli.dll DLL must be enabled inside of - &php.ini;. Also, PHP needs access to the MySQL client library. A file - named libmysql.dll is included in the Windows - PHP distribution and in order for PHP to talk to MySQL this file - needs to be available to the Windows systems PATH. See - the FAQ titled "How do I - add my PHP directory to the PATH on Windows" for information - on how to do this. Although copying libmysql.dll - to the Windows system directory also works (because the system - directory is by default in the system's PATH), it's - not recommended. + On Windows, PHP is most commonly installed using the binary + installer. Once PHP has been installed, some configuration is + required to enable mysqli and specify the client + library you want it to use. + + + + As mentioned earlier, the mysqli extension is not + enabled by default, so the php_mysqli.dll DLL + must be enabled inside of &php.ini;. In order to do this you need to + find the &php.ini; file (typically located in + c:\php), and make sure you remove the comment + (semi-colon) from the start of the line + extension=php_mysqli.dll, in the section marked + [PHP_MYSQLI]. + + + + Also, if you want to use the MySQL Client Library with + mysqli, you need to make sure PHP can access the + client library file. The MySQL Client Library is included as a file + named libmysql.dll in the Windows PHP + distribution. This file needs to be available in the Windows system's + PATH environment variable, so that it can be + successfully loaded. See the FAQ titled + "How do I add my PHP + directory to the PATH on Windows" for information on how to do + this. Copying libmysql.dll to the Windows system + directory (typically c:\Windows\system) also + works, as the system directory is by default in the system's + PATH. However, this practice is strongly discouraged. On Windows, for PHP versions 5.3 and newer, the mysqli extension uses the MySQL Native Driver by default. This means you don't need to worry about configuring access - to libmysql.dll. + to libmysql.dll, you just need to make sure the + extension is enabled in the &php.ini; file. @@ -59,8 +142,8 @@ extension_dir should be set to the directory where the PHP extensions are located. See also the Manual Windows Installation - Instructions. An example extension_dir value for PHP 5 is - c:\php\ext + Instructions. An example extension_dir + value for PHP 5 is c:\php\ext.