.. index:: config.inc.php
.. _config:
Configuration
=============
Almost all configurable data is placed in :file:`config.inc.php`. If this file
does not exist, please refer to the :ref:`setup` section to create one. This
file only needs to contain the parameters you want to change from their
corresponding default value in :file:`libraries/config.default.php`.
The parameters which relate to design (like colors) are placed in
:file:`themes/themename/layout.inc.php`. You might also want to create
:file:`config.footer.inc.php` and :file:`config.header.inc.php` files to add
your site specific code to be included on start and end of each page.
.. note::
Some distributions (eg. Debian or Ubuntu) store :file:`config.inc.php` in
``/etc/phpmyadmin`` instead of within phpMyAdmin sources.
.. warning::
:term:`Mac` users should note that if you are on a version before
:term:`Mac OS X`, PHP does not seem to
like :term:`Mac` end of lines character (``\r``). So
ensure you choose the option that allows to use the \*nix end of line
character (``\n``) in your text editor before saving a script you have
modified.
Basic settings
--------------
.. config:option:: $cfg['PmaAbsoluteUri']
:type: string
:default: ``''``
Sets here the complete :term:`URL` (with full path) to your phpMyAdmin
installation's directory. E.g.
``http://www.example.net/path_to_your_phpMyAdmin_directory/``. Note also
that the :term:`URL` on some web servers are case–sensitive. Don’t forget
the trailing slash at the end.
Starting with version 2.3.0, it is advisable to try leaving this blank. In
most cases phpMyAdmin automatically detects the proper setting. Users of
port forwarding will need to set :config:option:`$cfg['PmaAbsoluteUri']`
(`more info <https://sourceforge.net/p/phpmyadmin/support-requests/795/>`_).
A good test is to browse a table, edit a row and save it. There should be
an error message if phpMyAdmin is having trouble auto–detecting the correct
value. If you get an error that this must be set or if the autodetect code
fails to detect your path, please post a bug report on our bug tracker so
we can improve the code.
.. seealso:: :ref:`faq1_40`
.. config:option:: $cfg['PmaNoRelation_DisableWarning']
:type: boolean
:default: false
Starting with version 2.3.0 phpMyAdmin offers a lot of features to
work with master / foreign – tables (see :config:option:`$cfg['Servers'][$i]['pmadb']`).
If you tried to set this
up and it does not work for you, have a look on the :guilabel:`Structure` page
of one database where you would like to use it. You will find a link
that will analyze why those features have been disabled.
If you do not want to use those features set this variable to ``true`` to
stop this message from appearing.
.. config:option:: $cfg['SuhosinDisableWarning']
:type: boolean
:default: false
A warning is displayed on the main page if Suhosin is detected.
You can set this parameter to ``true`` to stop this message from appearing.
.. config:option:: $cfg['McryptDisableWarning']
:type: boolean
:default: false
Disable the default warning that is displayed if mcrypt is missing for
cookie authentication.
You can set this parameter to ``true`` to stop this message from appearing.
.. config:option:: $cfg['ServerLibraryDifference_DisableWarning']
:type: boolean
:default: false
A warning is displayed on the main page if there is a difference
between the MySQL library and server version.
You can set this parameter to ``true`` to stop this message from appearing.
.. config:option:: $cfg['ReservedWordDisableWarning']
:type: boolean
:default: false
This warning is displayed on the Structure page of a table if one or more
column names match with words which are MySQL reserved.
If you want to turn off this warning, you can set it to ``true`` and
warning will not longer be displayed
.. config:option:: $cfg['TranslationWarningThreshold']
:type: integer
:default: 80
Show warning about incomplete translations on certain threshold.
.. config:option:: $cfg['AllowThirdPartyFraming']
:type: boolean
:default: false
Setting this to ``true`` allows phpMyAdmin to be included inside a frame,
and is a potential security hole allowing cross-frame scripting attacks or
clickjacking.
Server connection settings
--------------------------
.. config:option:: $cfg['Servers']
:type: array
:default: one server array with settings listed bellow
Since version 1.4.2, phpMyAdmin supports the administration of multiple
MySQL servers. Therefore, a :config:option:`$cfg['Servers']`-array has been
added which contains the login information for the different servers. The
first :config:option:`$cfg['Servers'][$i]['host']` contains the hostname of
the first server, the second :config:option:`$cfg['Servers'][$i]['host']`
the hostname of the second server, etc. In
:file:`libraries/config.default.php`, there is only one section for server
definition, however you can put as many as you need in
:file:`config.inc.php`, copy that block or needed parts (you don't have to
define all settings, just those you need to change).
.. note::
The :config:option:`$cfg['Servers']` array starts with
$cfg['Servers'][1]. Do not use $cfg['Servers'][0]. If you want more
than one server, just copy following section (including $i
incrementation) serveral times. There is no need to define full server
array, just define values you need to change.
.. config:option:: $cfg['Servers'][$i]['host']
:type: string
:default: ``'localhost'``
The hostname or :term:`IP` address of your $i-th MySQL-server. E.g.
``localhost``.
Possible values are:
* hostname, e.g., ``'localhost'`` or ``'mydb.example.org'``
* IP address, e.g., ``'127.0.0.1'`` or ``'192.168.10.1'``
* dot - ``'.'``, i.e., use named pipes on windows systems
* empty - ``''``, disables this server
.. config:option:: $cfg['Servers'][$i]['port']
:type: string
:default: ``''``
The port-number of your $i-th MySQL-server. Default is 3306 (leave
blank).
.. note::
If you use ``localhost`` as the hostname, MySQL ignores this port number
and connects with the socket, so if you want to connect to a port
different from the default port, use ``127.0.0.1`` or the real hostname
in :config:option:`$cfg['Servers'][$i]['host']`.
.. config:option:: $cfg['Servers'][$i]['socket']
:type: string
:default: ``''``
The path to the socket to use. Leave blank for default. To determine
the correct socket, check your MySQL configuration or, using the
:command:`mysql` command–line client, issue the ``status`` command. Among the
resulting information displayed will be the socket used.
.. config:option:: $cfg['Servers'][$i]['ssl']
:type: boolean
:default: false
Whether to enable SSL for connection to MySQL server.
.. config:option:: $cfg['Servers'][$i]['connect_type']
:type: string
:default: ``'tcp'``
What type connection to use with the MySQL server. Your options are
``'socket'`` and ``'tcp'``. It defaults to tcp as that is nearly guaranteed
to be available on all MySQL servers, while sockets are not supported on
some platforms. To use the socket mode, your MySQL server must be on the
same machine as the Web server.
.. config:option:: $cfg['Servers'][$i]['extension']
:type: string
:default: ``'mysqli'``
What php MySQL extension to use for the connection. Valid options are:
``mysql``
The classic MySQL extension.
``mysqli``
The improved MySQL extension. This extension became available with PHP