cdocutils.nodes document q)q}q(U nametypesq}q(XxamppqXred hat enterprise linuxqNX$https://www.phpmyadmin.net/auth_key/qX upgradingq X setup_scriptq X quick installq NXsignon authentication modeq NXinstalling on windowsq NXusing setup scriptqNX,validating other keys on your public keyringqX linked-tablesqX quick_installqXfedoraqNXppa for michal čihařqXverifyqX wikipediaqXmanual configurationqNXauthentication_modesqXverifying phpmyadmin releasesqNX auth_signonqXgentooqNXcookie authentication modeqNXhttp authentication modeqNXopensuseqNXlinux distributionsqNXcookieqX*extra packages for enterprise linux (epel)q Xubuntuq!NXhttps://keybase.io/lem9q"Xusing authentication modesq#NX%securing your phpmyadmin installationq$NXdebianq%NXmanually creating the fileq&NXour download serverq'X installationq(NXzero configurationq)NXconfig authentication modeq*NXsetupq+Xswekey authentication modeq,NXenabledq-X phpmyadmin configuration storageq.NXopensuse build serviceq/Xmain phpmyadmin directoryq0Xmandrivaq1NXupgrading from an older versionq2NXswekeyq3Xmarc's key links to linus's keyq4uUsubstitution_defsq5}q6Uparse_messagesq7]q8Ucurrent_sourceq9NU decorationq:NUautofootnote_startq;KUnameidsq<}q=(hUxamppq>hUred-hat-enterprise-linuxq?hU!https-www-phpmyadmin-net-auth-keyq@h U upgradingqAh U setup-scriptqBh Uid1qCh Usignon-authentication-modeqDh Uinstalling-on-windowsqEhUusing-setup-scriptqFhU,validating-other-keys-on-your-public-keyringqGhU linked-tablesqHhU quick-installqIhUfedoraqJhUppa-for-michal-ciharqKhUverifyqLhU wikipediaqMhUmanual-configurationqNhUauthentication-modesqOhUverifying-phpmyadmin-releasesqPhU auth-signonqQhUgentooqRhUcookie-authentication-modeqShUhttp-authentication-modeqThUopensuseqUhUlinux-distributionsqVhUcookieqWh U(extra-packages-for-enterprise-linux-epelqXh!UubuntuqYh"Uhttps-keybase-io-lem9qZh#Uusing-authentication-modesq[h$U%securing-your-phpmyadmin-installationq\h%Udebianq]h&Umanually-creating-the-fileq^h'Uour-download-serverq_h(U installationq`h)Uzero-configurationqah*Uconfig-authentication-modeqbh+Usetupqch,Uswekey-authentication-modeqdh-Uenabledqeh.U phpmyadmin-configuration-storageqfh/Uopensuse-build-serviceqgh0Umain-phpmyadmin-directoryqhh1Umandrivaqih2Uupgrading-from-an-older-versionqjh3Uswekeyqkh4Umarc-s-key-links-to-linus-s-keyqluUchildrenqm]qn(cdocutils.nodes target qo)qp}qq(U rawsourceqrX .. _setup:UparentqshUsourceqtXC/mnt/autrexfs/phpmyadmin/release/phpMyAdmin-4.5.0-rc1/doc/setup.rstquUtagnameqvUtargetqwU attributesqx}qy(Uidsqz]Ubackrefsq{]Udupnamesq|]Uclassesq}]Unamesq~]UrefidqhcuUlineqKUdocumentqhhm]ubcdocutils.nodes section q)q}q(hrUhshhthuUexpect_referenced_by_nameq}qh+hpshvUsectionqhx}q(h|]h}]h{]hz]q(h`hceh~]q(h(h+euhKhhUexpect_referenced_by_idq}qhchpshm]q(cdocutils.nodes title q)q}q(hrX InstallationqhshhthuhvUtitleqhx}q(h|]h}]h{]hz]h~]uhKhhhm]qcdocutils.nodes Text qX Installationqq}q(hrhhshubaubcdocutils.nodes paragraph q)q}q(hrXphpMyAdmin does not apply any special security methods to the MySQL database server. It is still the system administrator's job to grant permissions on the MySQL databases properly. phpMyAdmin's :guilabel:`Users` page can be used for this.hshhthuhvU paragraphqhx}q(h|]h}]h{]hz]h~]uhKhhhm]q(hXphpMyAdmin does not apply any special security methods to the MySQL database server. It is still the system administrator's job to grant permissions on the MySQL databases properly. phpMyAdmin's qq}q(hrXphpMyAdmin does not apply any special security methods to the MySQL database server. It is still the system administrator's job to grant permissions on the MySQL databases properly. phpMyAdmin's hshubcdocutils.nodes emphasis q)q}q(hrUhx}q(UrawtextX:guilabel:`Users`hz]h{]h|]h}]qXguilabelqah~]uhshhm]qhXUsersqq}q(hrUhshubahvUemphasisqubhX page can be used for this.qq}q(hrX page can be used for this.hshubeubcdocutils.nodes warning q)q}q(hrX=:term:`Mac` users should note that if you are on a version before :term:`Mac OS X`, StuffIt unstuffs with :term:`Mac` formats. So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts before uploading them to your server, as PHP seems not to like :term:`Mac`-style end of lines character ("``\r``").hshhthuhvUwarningqhx}q(h|]h}]h{]hz]h~]uhNhhhm]qh)q}q(hrX=:term:`Mac` users should note that if you are on a version before :term:`Mac OS X`, StuffIt unstuffs with :term:`Mac` formats. So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts before uploading them to your server, as PHP seems not to like :term:`Mac`-style end of lines character ("``\r``").hshhthuhvhhx}q(h|]h}]h{]hz]h~]uhK hm]q(csphinx.addnodes pending_xref q)q}q(hrX :term:`Mac`qhshhthuhvU pending_xrefqhx}q(UreftypeXtermUrefwarnqU reftargetqXmacU refdomainXstdqhz]h{]U refexplicith|]h}]h~]UrefdocqXsetupquhK hm]qh)q}q(hrhhx}q(h|]h}]q(UxrefqhXstd-termqeh{]hz]h~]uhshhm]qhXMacqͅq}q(hrUhshubahvhubaubhX7 users should note that if you are on a version before qЅq}q(hrX7 users should note that if you are on a version before hshubh)q}q(hrX:term:`Mac OS X`qhshhthuhvhhx}q(UreftypeXtermhhXmac os xU refdomainXstdqhz]h{]U refexplicith|]h}]h~]hhuhK hm]qh)q}q(hrhhx}q(h|]h}]q(hhXstd-termqeh{]hz]h~]uhshhm]qhXMac OS Xq߅q}q(hrUhshubahvhubaubhX, StuffIt unstuffs with q⅁q}q(hrX, StuffIt unstuffs with hshubh)q}q(hrX :term:`Mac`qhshhthuhvhhx}q(UreftypeXtermhhXmacU refdomainXstdqhz]h{]U refexplicith|]h}]h~]hhuhK hm]qh)q}q(hrhhx}q(h|]h}]q(hhXstd-termqeh{]hz]h~]uhshhm]qhXMacqq}q(hrUhshubahvhubaubhX formats. So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts before uploading them to your server, as PHP seems not to like qq}q(hrX formats. So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts before uploading them to your server, as PHP seems not to like hshubh)q}q(hrX :term:`Mac`qhshhthuhvhhx}q(UreftypeXtermhhXmacU refdomainXstdqhz]h{]U refexplicith|]h}]h~]hhuhK hm]qh)q}q(hrhhx}q(h|]h}]r(hhXstd-termreh{]hz]h~]uhshhm]rhXMacrr}r(hrUhshubahvhubaubhX -style end of lines character ("rr}r(hrX -style end of lines character ("hshubcdocutils.nodes literal r )r }r (hrX``\r``hx}r (h|]h}]h{]hz]h~]uhshhm]r hX\rrr}r(hrUhsj ubahvUliteralrubhX").rr}r(hrX").hshubeubaubh)r}r(hrUhshhthuhvhhx}r(h|]h}]h{]hz]rhVah~]rhauhKhhhm]r(h)r}r(hrXLinux distributionsrhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]rhXLinux distributionsr r!}r"(hrjhsjubaubh)r#}r$(hrXphpMyAdmin is included in most Linux distributions. It is recommended to use distribution packages when possible - they usually provide integration to your distribution and you will automatically get security updates from your distribution.r%hsjhthuhvhhx}r&(h|]h}]h{]hz]h~]uhKhhhm]r'hXphpMyAdmin is included in most Linux distributions. It is recommended to use distribution packages when possible - they usually provide integration to your distribution and you will automatically get security updates from your distribution.r(r)}r*(hrj%hsj#ubaubh)r+}r,(hrUhsjhthuhvhhx}r-(h|]h}]h{]hz]r.h]ah~]r/h%auhKhhhm]r0(h)r1}r2(hrXDebianr3hsj+hthuhvhhx}r4(h|]h}]h{]hz]h~]uhKhhhm]r5hXDebianr6r7}r8(hrj3hsj1ubaubh)r9}r:(hrXDebian's package repositories include a phpMyAdmin package, but be aware that the configuration file is maintained in ``/etc/phpmyadmin`` and may differ in some ways from the official phpMyAdmin documentation.hsj+hthuhvhhx}r;(h|]h}]h{]hz]h~]uhKhhhm]r<(hXvDebian's package repositories include a phpMyAdmin package, but be aware that the configuration file is maintained in r=r>}r?(hrXvDebian's package repositories include a phpMyAdmin package, but be aware that the configuration file is maintained in hsj9ubj )r@}rA(hrX``/etc/phpmyadmin``hx}rB(h|]h}]h{]hz]h~]uhsj9hm]rChX/etc/phpmyadminrDrE}rF(hrUhsj@ubahvjubhXH and may differ in some ways from the official phpMyAdmin documentation.rGrH}rI(hrXH and may differ in some ways from the official phpMyAdmin documentation.hsj9ubeubeubh)rJ}rK(hrUhsjhthuhvhhx}rL(h|]h}]h{]hz]rMhUah~]rNhauhK#hhhm]rO(h)rP}rQ(hrXOpenSUSErRhsjJhthuhvhhx}rS(h|]h}]h{]hz]h~]uhK#hhhm]rThXOpenSUSErUrV}rW(hrjRhsjPubaubh)rX}rY(hrXOpenSUSE already comes with phpMyAdmin package, just install packages from the `openSUSE Build Service `_.hsjJhthuhvhhx}rZ(h|]h}]h{]hz]h~]uhK%hhhm]r[(hXOOpenSUSE already comes with phpMyAdmin package, just install packages from the r\r]}r^(hrXOOpenSUSE already comes with phpMyAdmin package, just install packages from the hsjXubcdocutils.nodes reference r_)r`}ra(hrXK`openSUSE Build Service `_hx}rb(UnameXopenSUSE Build ServiceUrefurircX/http://software.opensuse.org/package/phpMyAdminrdhz]h{]h|]h}]h~]uhsjXhm]rehXopenSUSE Build Servicerfrg}rh(hrUhsj`ubahvU referenceriubho)rj}rk(hrX2 U referencedrlKhsjXhvhwhx}rm(Urefurijdhz]rnhgah{]h|]h}]h~]roh/auhm]ubhX.rp}rq(hrX.hsjXubeubeubh)rr}rs(hrUhsjhthuhvhhx}rt(h|]h}]h{]hz]ruhYah~]rvh!auhK)hhhm]rw(h)rx}ry(hrXUbunturzhsjrhthuhvhhx}r{(h|]h}]h{]hz]h~]uhK)hhhm]r|hXUbuntur}r~}r(hrjzhsjxubaubh)r}r(hrXUbuntu ships phpMyAdmin package, however if you want to use recent version, you can use packages from `PPA for Michal Čihař `_.hsjrhthuhvhhx}r(h|]h}]h{]hz]h~]uhK+hhhm]r(hXfUbuntu ships phpMyAdmin package, however if you want to use recent version, you can use packages from rr}r(hrXfUbuntu ships phpMyAdmin package, however if you want to use recent version, you can use packages from hsjubj_)r}r(hrXL`PPA for Michal Čihař `_hx}r(UnameXPPA for Michal ČihařjcX0https://launchpad.net/~nijel/+archive/phpmyadminrhz]h{]h|]h}]h~]uhsjhm]rhXPPA for Michal Čihařrr}r(hrUhsjubahvjiubho)r}r(hrX3 jlKhsjhvhwhx}r(Urefurijhz]rhKah{]h|]h}]h~]rhauhm]ubhX.r}r(hrX.hsjubeubeubh)r}r(hrUhsjhthuhvhhx}r(h|]h}]h{]hz]rhRah~]rhauhK0hhhm]r(h)r}r(hrXGentoorhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhK0hhhm]rhXGentoorr}r(hrjhsjubaubh)r}r(hrXGentoo ships the phpMyAdmin package, both in a near stock configuration as well as in a ``webapp-config`` configuration. Use ``emerge dev-db/phpmyadmin`` to install.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhK2hhhm]r(hXXGentoo ships the phpMyAdmin package, both in a near stock configuration as well as in a rr}r(hrXXGentoo ships the phpMyAdmin package, both in a near stock configuration as well as in a hsjubj )r}r(hrX``webapp-config``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhX webapp-configrr}r(hrUhsjubahvjubhX configuration. Use rr}r(hrX configuration. Use hsjubj )r}r(hrX``emerge dev-db/phpmyadmin``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhXemerge dev-db/phpmyadminrr}r(hrUhsjubahvjubhX to install.rr}r(hrX to install.hsjubeubeubh)r}r(hrUhsjhthuhvhhx}r(h|]h}]h{]hz]rhiah~]rh1auhK7hhhm]r(h)r}r(hrXMandrivarhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhK7hhhm]rhXMandrivarr}r(hrjhsjubaubh)r}r(hrXtMandriva ships the phpMyAdmin package in their ``contrib`` branch and can be installed via the usual Control Center.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhK9hhhm]r(hX/Mandriva ships the phpMyAdmin package in their rr}r(hrX/Mandriva ships the phpMyAdmin package in their hsjubj )r}r(hrX ``contrib``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhXcontribrr}r(hrUhsjubahvjubhX: branch and can be installed via the usual Control Center.rr}r(hrX: branch and can be installed via the usual Control Center.hsjubeubeubh)r}r(hrUhsjhthuhvhhx}r(h|]h}]h{]hz]rhJah~]rhauhK=hhhm]r(h)r}r(hrXFedorarhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhK=hhhm]rhXFedorarr}r(hrjhsjubaubh)r}r(hrXFedora ships the phpMyAdmin package, but be aware that the configuration file is maintained in ``/etc/phpMyAdmin/`` and may differ in some ways from the official phpMyAdmin documentation.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhK?hhhm]r(hX_Fedora ships the phpMyAdmin package, but be aware that the configuration file is maintained in rr}r(hrX_Fedora ships the phpMyAdmin package, but be aware that the configuration file is maintained in hsjubj )r}r(hrX``/etc/phpMyAdmin/``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhX/etc/phpMyAdmin/rr}r(hrUhsjubahvjubhXH and may differ in some ways from the official phpMyAdmin documentation.rr}r(hrXH and may differ in some ways from the official phpMyAdmin documentation.hsjubeubeubh)r}r(hrUhsjhthuhvhhx}r(h|]h}]h{]hz]rh?ah~]rhauhKDhhhm]r(h)r}r(hrXRed Hat Enterprise Linuxrhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKDhhhm]rhXRed Hat Enterprise Linuxrr }r (hrjhsjubaubh)r }r (hrXRed Hat Enterprise Linux itself and thus derivatives like CentOS don't ship phpMyAdmin, but the Fedora-driven repository `Extra Packages for Enterprise Linux (EPEL) `_ is doing so, if it's `enabled `_. But be aware that the configuration file is maintained in ``/etc/phpMyAdmin/`` and may differ in some ways from the official phpMyAdmin documentation.hsjhthuhvhhx}r (h|]h}]h{]hz]h~]uhKFhhhm]r(hXyRed Hat Enterprise Linux itself and thus derivatives like CentOS don't ship phpMyAdmin, but the Fedora-driven repository rr}r(hrXyRed Hat Enterprise Linux itself and thus derivatives like CentOS don't ship phpMyAdmin, but the Fedora-driven repository hsj ubj_)r}r(hrXR`Extra Packages for Enterprise Linux (EPEL) `_hx}r(UnameX*Extra Packages for Enterprise Linux (EPEL)jcX"http://fedoraproject.org/wiki/EPELrhz]h{]h|]h}]h~]uhsj hm]rhX*Extra Packages for Enterprise Linux (EPEL)rr}r(hrUhsjubahvjiubho)r}r(hrX% jlKhsj hvhwhx}r(Urefurijhz]rhXah{]h|]h}]h~]rh auhm]ubhX is doing so, if it's rr }r!(hrX is doing so, if it's hsj ubj_)r"}r#(hrX<`enabled `_hx}r$(Unameh-jcX/http://fedoraproject.org/wiki/EPEL/FAQ#howtouser%hz]h{]h|]h}]h~]uhsj hm]r&hXenabledr'r(}r)(hrUhsj"ubahvjiubho)r*}r+(hrX2 jlKhsj hvhwhx}r,(Urefurij%hz]r-heah{]h|]h}]h~]r.h-auhm]ubhX<. But be aware that the configuration file is maintained in r/r0}r1(hrX<. But be aware that the configuration file is maintained in hsj ubj )r2}r3(hrX``/etc/phpMyAdmin/``hx}r4(h|]h}]h{]hz]h~]uhsj hm]r5hX/etc/phpMyAdmin/r6r7}r8(hrUhsj2ubahvjubhXH and may differ in some ways from the official phpMyAdmin documentation.r9r:}r;(hrXH and may differ in some ways from the official phpMyAdmin documentation.hsj ubeubeubeubh)r<}r=(hrUhshhthuhvhhx}r>(h|]h}]h{]hz]r?hEah~]r@h auhKQhhhm]rA(h)rB}rC(hrXInstalling on WindowsrDhsj<hthuhvhhx}rE(h|]h}]h{]hz]h~]uhKQhhhm]rFhXInstalling on WindowsrGrH}rI(hrjDhsjBubaubh)rJ}rK(hrXThe easiest way to get phpMyAdmin on Windows is using third party products which include phpMyAdmin together with a database and web server such as `XAMPP `_.hsj<hthuhvhhx}rL(h|]h}]h{]hz]h~]uhKShhhm]rM(hXThe easiest way to get phpMyAdmin on Windows is using third party products which include phpMyAdmin together with a database and web server such as rNrO}rP(hrXThe easiest way to get phpMyAdmin on Windows is using third party products which include phpMyAdmin together with a database and web server such as hsjJubj_)rQ}rR(hrX5`XAMPP `_hx}rS(UnameXXAMPPjcX*http://www.apachefriends.org/en/xampp.htmlrThz]h{]h|]h}]h~]uhsjJhm]rUhXXAMPPrVrW}rX(hrUhsjQubahvjiubho)rY}rZ(hrX- jlKhsjJhvhwhx}r[(UrefurijThz]r\h>ah{]h|]h}]h~]r]hauhm]ubhX.r^}r_(hrX.hsjJubeubh)r`}ra(hrXgYou can find more of such options at `Wikipedia `_.rbhsj<hthuhvhhx}rc(h|]h}]h{]hz]h~]uhKWhhhm]rd(hX%You can find more of such options at rerf}rg(hrX%You can find more of such options at hsj`ubj_)rh}ri(hrXA`Wikipedia `_hx}rj(UnameX WikipediajcX2https://en.wikipedia.org/wiki/List_of_AMP_packagesrkhz]h{]h|]h}]h~]uhsj`hm]rlhX Wikipediarmrn}ro(hrUhsjhubahvjiubho)rp}rq(hrX5 jlKhsj`hvhwhx}rr(Urefurijkhz]rshMah{]h|]h}]h~]rthauhm]ubhX.ru}rv(hrX.hsj`ubeubho)rw}rx(hrX.. _quick_install:hsj<hthuhvhwhx}ry(hz]h{]h|]h}]h~]hhIuhKZhhhm]ubeubh)rz}r{(hrUhshhthuh}r|hjwshvhhx}r}(h|]h}]h{]hz]r~(hIhCeh~]r(h heuhK]hhh}rhIjwshm]r(h)r}r(hrX Quick Installrhsjzhthuhvhhx}r(h|]h}]h{]hz]h~]uhK]hhhm]rhX Quick Installrr}r(hrjhsjubaubcdocutils.nodes enumerated_list r)r}r(hrUhsjzhthuhvUenumerated_listrhx}r(UsuffixrU.hz]h{]h|]UprefixrUh}]h~]UenumtyperUarabicruhK_hhhm]r(cdocutils.nodes list_item r)r}r(hrXChoose an appropriate distribution kit from the phpmyadmin.net Downloads page. Some kits contain only the English messages, others contain all languages. We'll assume you chose a kit whose name looks like ``phpMyAdmin-x.x.x -all-languages.tar.gz``.hsjhthuhvU list_itemrhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXChoose an appropriate distribution kit from the phpmyadmin.net Downloads page. Some kits contain only the English messages, others contain all languages. We'll assume you chose a kit whose name looks like ``phpMyAdmin-x.x.x -all-languages.tar.gz``.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhK_hm]r(hXChoose an appropriate distribution kit from the phpmyadmin.net Downloads page. Some kits contain only the English messages, others contain all languages. We'll assume you chose a kit whose name looks like rr}r(hrXChoose an appropriate distribution kit from the phpmyadmin.net Downloads page. Some kits contain only the English messages, others contain all languages. We'll assume you chose a kit whose name looks like hsjubj )r}r(hrX*``phpMyAdmin-x.x.x -all-languages.tar.gz``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhX&phpMyAdmin-x.x.x -all-languages.tar.gzrr}r(hrUhsjubahvjubhX.r}r(hrX.hsjubeubaubj)r}r(hrX@Ensure you have downloaded a genuine archive, see :ref:`verify`.rhsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrjhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKchm]r(hX2Ensure you have downloaded a genuine archive, see rr}r(hrX2Ensure you have downloaded a genuine archive, see hsjubh)r}r(hrX :ref:`verify`rhsjhthuhvhhx}r(UreftypeXrefhhXverifyU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhKchm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-refreh{]hz]h~]uhsjhm]rhXverifyrr}r(hrUhsjubahvhubaubhX.r}r(hrX.hsjubeubaubj)r}r(hrX^Untar or unzip the distribution (be sure to unzip the subdirectories): ``tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz`` in your webserver's document root. If you don't have direct access to your document root, put the files in a directory on your local machine, and, after step 4, transfer the directory on your web server using, for example, ftp.hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrX^Untar or unzip the distribution (be sure to unzip the subdirectories): ``tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz`` in your webserver's document root. If you don't have direct access to your document root, put the files in a directory on your local machine, and, after step 4, transfer the directory on your web server using, for example, ftp.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKdhm]r(hXGUntar or unzip the distribution (be sure to unzip the subdirectories): rr}r(hrXGUntar or unzip the distribution (be sure to unzip the subdirectories): hsjubj )r}r(hrX3``tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhX/tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gzrr}r(hrUhsjubahvjubhX in your webserver's document root. If you don't have direct access to your document root, put the files in a directory on your local machine, and, after step 4, transfer the directory on your web server using, for example, ftp.rr}r(hrX in your webserver's document root. If you don't have direct access to your document root, put the files in a directory on your local machine, and, after step 4, transfer the directory on your web server using, for example, ftp.hsjubeubaubj)r}r(hrXEnsure that all the scripts have the appropriate owner (if PHP is running in safe mode, having some scripts with an owner different from the owner of other scripts will be a problem). See :ref:`faq4_2` and :ref:`faq1_26` for suggestions.hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXEnsure that all the scripts have the appropriate owner (if PHP is running in safe mode, having some scripts with an owner different from the owner of other scripts will be a problem). See :ref:`faq4_2` and :ref:`faq1_26` for suggestions.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKjhm]r(hXEnsure that all the scripts have the appropriate owner (if PHP is running in safe mode, having some scripts with an owner different from the owner of other scripts will be a problem). See rr}r(hrXEnsure that all the scripts have the appropriate owner (if PHP is running in safe mode, having some scripts with an owner different from the owner of other scripts will be a problem). See hsjubh)r}r(hrX :ref:`faq4_2`rhsjhthuhvhhx}r(UreftypeXrefhhXfaq4_2U refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhKjhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-refreh{]hz]h~]uhsjhm]rhXfaq4_2rr}r(hrUhsjubahvhubaubhX and rr}r(hrX and hsjubh)r}r(hrX:ref:`faq1_26`rhsjhthuhvhhx}r(UreftypeXrefhhXfaq1_26U refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhKjhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-refreh{]hz]h~]uhsjhm]rhXfaq1_26rr}r(hrUhsjubahvhubaubhX for suggestions.rr }r (hrX for suggestions.hsjubeubaubj)r }r (hrXgNow you must configure your installation. There are two methods that can be used. Traditionally, users have hand-edited a copy of :file:`config.inc.php`, but now a wizard-style setup script is provided for those who prefer a graphical installation. Creating a :file:`config.inc.php` is still a quick way to get started and needed for some advanced features. hsjhthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXeNow you must configure your installation. There are two methods that can be used. Traditionally, users have hand-edited a copy of :file:`config.inc.php`, but now a wizard-style setup script is provided for those who prefer a graphical installation. Creating a :file:`config.inc.php` is still a quick way to get started and needed for some advanced features.hsj hthuhvhhx}r(h|]h}]h{]hz]h~]uhKnhm]r(hXNow you must configure your installation. There are two methods that can be used. Traditionally, users have hand-edited a copy of rr}r(hrXNow you must configure your installation. There are two methods that can be used. Traditionally, users have hand-edited a copy of hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhXconfig.inc.phprr}r(hrXconfig.inc.phphsjubahvjubhXl, but now a wizard-style setup script is provided for those who prefer a graphical installation. Creating a rr }r!(hrXl, but now a wizard-style setup script is provided for those who prefer a graphical installation. Creating a hsjubj )r"}r#(hrUhx}r$(hz]h{]h|]h}]r%Xfiler&aUrolej&h~]uhsjhm]r'hXconfig.inc.phpr(r)}r*(hrXconfig.inc.phphsj"ubahvjubhXK is still a quick way to get started and needed for some advanced features.r+r,}r-(hrXK is still a quick way to get started and needed for some advanced features.hsjubeubaubeubh)r.}r/(hrUhsjzhthuhvhhx}r0(h|]h}]h{]hz]r1h^ah~]r2h&auhKwhhhm]r3(h)r4}r5(hrXManually creating the filer6hsj.hthuhvhhx}r7(h|]h}]h{]hz]h~]uhKwhhhm]r8hXManually creating the filer9r:}r;(hrj6hsj4ubaubh)r<}r=(hrXkTo manually create the file, simply use your text editor to create the file :file:`config.inc.php` (you can copy :file:`config.sample.inc.php` to get a minimal configuration file) in the main (top-level) phpMyAdmin directory (the one that contains :file:`index.php`). phpMyAdmin first loads :file:`libraries/config.default.php` and then overrides those values with anything found in :file:`config.inc.php`. If the default value is okay for a particular setting, there is no need to include it in :file:`config.inc.php`. You'll probably need only a few directives to get going; a simple configuration may look like this:hsj.hthuhvhhx}r>(h|]h}]h{]hz]h~]uhKyhhhm]r?(hXLTo manually create the file, simply use your text editor to create the file r@rA}rB(hrXLTo manually create the file, simply use your text editor to create the file hsj<ubj )rC}rD(hrUhx}rE(hz]h{]h|]h}]rFXfilerGaUrolejGh~]uhsj<hm]rHhXconfig.inc.phprIrJ}rK(hrXconfig.inc.phphsjCubahvjubhX (you can copy rLrM}rN(hrX (you can copy hsj<ubj )rO}rP(hrUhx}rQ(hz]h{]h|]h}]rRXfilerSaUrolejSh~]uhsj<hm]rThXconfig.sample.inc.phprUrV}rW(hrXconfig.sample.inc.phphsjOubahvjubhXj to get a minimal configuration file) in the main (top-level) phpMyAdmin directory (the one that contains rXrY}rZ(hrXj to get a minimal configuration file) in the main (top-level) phpMyAdmin directory (the one that contains hsj<ubj )r[}r\(hrUhx}r](hz]h{]h|]h}]r^Xfiler_aUrolej_h~]uhsj<hm]r`hX index.phprarb}rc(hrX index.phphsj[ubahvjubhX). phpMyAdmin first loads rdre}rf(hrX). phpMyAdmin first loads hsj<ubj )rg}rh(hrUhx}ri(hz]h{]h|]h}]rjXfilerkaUrolejkh~]uhsj<hm]rlhXlibraries/config.default.phprmrn}ro(hrXlibraries/config.default.phphsjgubahvjubhX8 and then overrides those values with anything found in rprq}rr(hrX8 and then overrides those values with anything found in hsj<ubj )rs}rt(hrUhx}ru(hz]h{]h|]h}]rvXfilerwaUrolejwh~]uhsj<hm]rxhXconfig.inc.phpryrz}r{(hrXconfig.inc.phphsjsubahvjubhX[. If the default value is okay for a particular setting, there is no need to include it in r|r}}r~(hrX[. If the default value is okay for a particular setting, there is no need to include it in hsj<ubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsj<hm]rhXconfig.inc.phprr}r(hrXconfig.inc.phphsjubahvjubhXe. You'll probably need only a few directives to get going; a simple configuration may look like this:rr}r(hrXe. You'll probably need only a few directives to get going; a simple configuration may look like this:hsj<ubeubcdocutils.nodes literal_block r)r}r(hrXhsj.hthuhvU literal_blockrhx}r(UlinenosrUlanguagerXxml+phpU xml:spacerUpreserverhz]h{]h|]h}]h~]uhKhhhm]rhXrr}r(hrUhsjubaubh)r}r(hrX;Or, if you prefer to not be prompted every time you log in:rhsj.hthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]rhX;Or, if you prefer to not be prompted every time you log in:rr}r(hrjhsjubaubj)r}r(hrXhsj.hthuhvjhx}r(jjXxml+phpjjhz]h{]h|]h}]h~]uhKhhhm]rhXrr}r(hrUhsjubaubh)r}r(hrX`For a full explanation of possible configuration values, see the :ref:`config` of this document.hsj.hthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]r(hXAFor a full explanation of possible configuration values, see the rr}r(hrXAFor a full explanation of possible configuration values, see the hsjubh)r}r(hrX :ref:`config`rhsjhthuhvhhx}r(UreftypeXrefhhXconfigU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhKhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-refreh{]hz]h~]uhsjhm]rhXconfigrr}r(hrUhsjubahvhubaubhX of this document.rr}r(hrX of this document.hsjubeubcsphinx.addnodes index r)r}r(hrUhsj.hthuhvUindexrhx}r(hz]h{]h|]h}]h~]Uentriesr]r(UsinglerX Setup scriptUindex-0rUtraUinlineruhKhhhm]ubho)r}r(hrUhsj.hthuhvhwhx}r(hz]h{]h|]h}]h~]hjuhKhhhm]ubho)r}r(hrX.. _setup_script:hsj.hthuh}hvhwhx}r(hz]h{]h|]h}]h~]hhBuhKhhh}rjjshm]ubeubh)r}r(hrUhsjzhthuh}rh jshvhhx}r(h|]h}]h{]hz]r(hFhBjeh~]r(hh euhKhhh}r(jjhBjuhm]r(h)r}r(hrXUsing Setup scriptrhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]rhXUsing Setup scriptrr}r(hrjhsjubaubh)r}r(hrXInstead of manually editing :file:`config.inc.php`, you can use phpMyAdmin's setup feature. First you must manually create a folder ``config`` in the phpMyAdmin directory. This is a security measure. On a Linux/Unix system you can use the following commands:hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]r(hXInstead of manually editing rr}r(hrXInstead of manually editing hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhXconfig.inc.phprr}r(hrXconfig.inc.phphsjubahvjubhXR, you can use phpMyAdmin's setup feature. First you must manually create a folder rr}r(hrXR, you can use phpMyAdmin's setup feature. First you must manually create a folder hsjubj )r}r(hrX ``config``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhXconfigrr}r(hrUhsjubahvjubhXt in the phpMyAdmin directory. This is a security measure. On a Linux/Unix system you can use the following commands:rr}r(hrXt in the phpMyAdmin directory. This is a security measure. On a Linux/Unix system you can use the following commands:hsjubeubj)r}r(hrXcd phpMyAdmin mkdir config # create directory for saving chmod o+rw config # give it world writable permissionshsjhthuhvjhx}r(jjXshjjhz]h{]h|]h}]h~]uhKhhhm]rhXcd phpMyAdmin mkdir config # create directory for saving chmod o+rw config # give it world writable permissionsrr}r(hrUhsjubaubh)r}r(hrX:And to edit an existing configuration, copy it over first:rhsjhthuhvhhx}r (h|]h}]h{]hz]h~]uhKhhhm]r hX:And to edit an existing configuration, copy it over first:r r }r (hrjhsjubaubj)r}r(hrXcp config.inc.php config/ # copy current configuration for editing chmod o+w config/config.inc.php # give it world writable permissionshsjhthuhvjhx}r(jjXshjjhz]h{]h|]h}]h~]uhKhhhm]rhXcp config.inc.php config/ # copy current configuration for editing chmod o+w config/config.inc.php # give it world writable permissionsrr}r(hrUhsjubaubcdocutils.nodes note r)r}r(hrXuDebian and Ubuntu have simplified this setup and all you need to do is to execute :program:`/usr/sbin/pma-configure`.hsjhthuhvUnoterhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXuDebian and Ubuntu have simplified this setup and all you need to do is to execute :program:`/usr/sbin/pma-configure`.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhm]r(hXRDebian and Ubuntu have simplified this setup and all you need to do is to execute rr }r!(hrXRDebian and Ubuntu have simplified this setup and all you need to do is to execute hsjubcdocutils.nodes strong r")r#}r$(hrX":program:`/usr/sbin/pma-configure`hx}r%(h|]h}]r&Uprogramr'ah{]hz]h~]uhsjhm]r(hX/usr/sbin/pma-configurer)r*}r+(hrUhsj#ubahvUstrongr,ubhX.r-}r.(hrX.hsjubeubaubh)r/}r0(hrXOn other platforms, simply create the folder and ensure that your web server has read and write access to it. :ref:`faq1_26` can help with this.hsjhthuhvhhx}r1(h|]h}]h{]hz]h~]uhKhhhm]r2(hXnOn other platforms, simply create the folder and ensure that your web server has read and write access to it. r3r4}r5(hrXnOn other platforms, simply create the folder and ensure that your web server has read and write access to it. hsj/ubh)r6}r7(hrX:ref:`faq1_26`r8hsj/hthuhvhhx}r9(UreftypeXrefhhXfaq1_26U refdomainXstdr:hz]h{]U refexplicith|]h}]h~]hhuhKhm]r;h)r<}r=(hrj8hx}r>(h|]h}]r?(hj:Xstd-refr@eh{]hz]h~]uhsj6hm]rAhXfaq1_26rBrC}rD(hrUhsj<ubahvhubaubhX can help with this.rErF}rG(hrX can help with this.hsj/ubeubh)rH}rI(hrXNext, open your browser and visit the location where you installed phpMyAdmin, with the ``/setup`` suffix. If you have an existing configuration, use the ``Load`` button to bring its content inside the setup panel. Note that **changes are not saved to disk until you explicitly choose ``Save``** from the *Configuration* area of the screen. Normally the script saves the new :file:`config.inc.php` to the ``config/`` directory, but if the webserver does not have the proper permissions you may see the error "Cannot load or save configuration." Ensure that the ``config/`` directory exists and has the proper permissions - or use the ``Download`` link to save the config file locally and upload it (via FTP or some similar means) to the proper location.hsjhthuhvhhx}rJ(h|]h}]h{]hz]h~]uhKhhhm]rK(hXXNext, open your browser and visit the location where you installed phpMyAdmin, with the rLrM}rN(hrXXNext, open your browser and visit the location where you installed phpMyAdmin, with the hsjHubj )rO}rP(hrX ``/setup``hx}rQ(h|]h}]h{]hz]h~]uhsjHhm]rRhX/setuprSrT}rU(hrUhsjOubahvjubhX8 suffix. If you have an existing configuration, use the rVrW}rX(hrX8 suffix. If you have an existing configuration, use the hsjHubj )rY}rZ(hrX``Load``hx}r[(h|]h}]h{]hz]h~]uhsjHhm]r\hXLoadr]r^}r_(hrUhsjYubahvjubhX? button to bring its content inside the setup panel. Note that r`ra}rb(hrX? button to bring its content inside the setup panel. Note that hsjHubj")rc}rd(hrXF**changes are not saved to disk until you explicitly choose ``Save``**hx}re(h|]h}]h{]hz]h~]uhsjHhm]rfhXBchanges are not saved to disk until you explicitly choose ``Save``rgrh}ri(hrUhsjcubahvj,ubhX from the rjrk}rl(hrX from the hsjHubh)rm}rn(hrX*Configuration*hx}ro(h|]h}]h{]hz]h~]uhsjHhm]rphX Configurationrqrr}rs(hrUhsjmubahvhubhX7 area of the screen. Normally the script saves the new rtru}rv(hrX7 area of the screen. Normally the script saves the new hsjHubj )rw}rx(hrUhx}ry(hz]h{]h|]h}]rzXfiler{aUrolej{h~]uhsjHhm]r|hXconfig.inc.phpr}r~}r(hrXconfig.inc.phphsjwubahvjubhX to the rr}r(hrX to the hsjHubj )r}r(hrX ``config/``hx}r(h|]h}]h{]hz]h~]uhsjHhm]rhXconfig/rr}r(hrUhsjubahvjubhX directory, but if the webserver does not have the proper permissions you may see the error "Cannot load or save configuration." Ensure that the rr}r(hrX directory, but if the webserver does not have the proper permissions you may see the error "Cannot load or save configuration." Ensure that the hsjHubj )r}r(hrX ``config/``hx}r(h|]h}]h{]hz]h~]uhsjHhm]rhXconfig/rr}r(hrUhsjubahvjubhX> directory exists and has the proper permissions - or use the rr}r(hrX> directory exists and has the proper permissions - or use the hsjHubj )r}r(hrX ``Download``hx}r(h|]h}]h{]hz]h~]uhsjHhm]rhXDownloadrr}r(hrUhsjubahvjubhXk link to save the config file locally and upload it (via FTP or some similar means) to the proper location.rr}r(hrXk link to save the config file locally and upload it (via FTP or some similar means) to the proper location.hsjHubeubh)r}r(hrXOnce the file has been saved, it must be moved out of the ``config/`` directory and the permissions must be reset, again as a security measure:hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]r(hX:Once the file has been saved, it must be moved out of the rr}r(hrX:Once the file has been saved, it must be moved out of the hsjubj )r}r(hrX ``config/``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhXconfig/rr}r(hrUhsjubahvjubhXJ directory and the permissions must be reset, again as a security measure:rr}r(hrXJ directory and the permissions must be reset, again as a security measure:hsjubeubj)r}r(hrXmv config/config.inc.php . # move file to current directory chmod o-rw config.inc.php # remove world read and write permissions rm -rf config # remove not needed directoryhsjhthuhvjhx}r(jjXshjjhz]h{]h|]h}]h~]uhKhhhm]rhXmv config/config.inc.php . # move file to current directory chmod o-rw config.inc.php # remove world read and write permissions rm -rf config # remove not needed directoryrr}r(hrUhsjubaubj)r}r(hrXrDebian and Ubuntu have simplified this setup and all you need to do is to execute :program:`/usr/sbin/pma-secure`.hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXrDebian and Ubuntu have simplified this setup and all you need to do is to execute :program:`/usr/sbin/pma-secure`.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhm]r(hXRDebian and Ubuntu have simplified this setup and all you need to do is to execute rr}r(hrXRDebian and Ubuntu have simplified this setup and all you need to do is to execute hsjubj")r}r(hrX:program:`/usr/sbin/pma-secure`hx}r(h|]h}]rj'ah{]hz]h~]uhsjhm]rhX/usr/sbin/pma-securerr}r(hrUhsjubahvj,ubhX.r}r(hrX.hsjubeubaubh)r}r(hrXNow the file is ready to be used. You can choose to review or edit the file with your favorite editor, if you prefer to set some advanced options which the setup script does not provide.rhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]rhXNow the file is ready to be used. You can choose to review or edit the file with your favorite editor, if you prefer to set some advanced options which the setup script does not provide.rr}r(hrjhsjubaubj)r}r(hrUhsjhthuhvjhx}r(jU.hz]h{]h|]jUh}]h~]jjuhKhhhm]r(j)r}r(hrXIf you are using the ``auth_type`` "config", it is suggested that you protect the phpMyAdmin installation directory because using config does not require a user to enter a password to access the phpMyAdmin installation. Use of an alternate authentication method is recommended, for example with HTTP–AUTH in a :term:`.htaccess` file or switch to using ``auth_type`` cookie or http. See the :ref:`faqmultiuser` for additional information, especially :ref:`faq4_4`.hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXIf you are using the ``auth_type`` "config", it is suggested that you protect the phpMyAdmin installation directory because using config does not require a user to enter a password to access the phpMyAdmin installation. Use of an alternate authentication method is recommended, for example with HTTP–AUTH in a :term:`.htaccess` file or switch to using ``auth_type`` cookie or http. See the :ref:`faqmultiuser` for additional information, especially :ref:`faq4_4`.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhm]r(hXIf you are using the rr}r(hrXIf you are using the hsjubj )r}r(hrX ``auth_type``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhX auth_typerr}r(hrUhsjubahvjubhX "config", it is suggested that you protect the phpMyAdmin installation directory because using config does not require a user to enter a password to access the phpMyAdmin installation. Use of an alternate authentication method is recommended, for example with HTTP–AUTH in a rr}r(hrX "config", it is suggested that you protect the phpMyAdmin installation directory because using config does not require a user to enter a password to access the phpMyAdmin installation. Use of an alternate authentication method is recommended, for example with HTTP–AUTH in a hsjubh)r}r(hrX:term:`.htaccess`rhsjhthuhvhhx}r(UreftypeXtermhhX .htaccessU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhKhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-termreh{]hz]h~]uhsjhm]rhX .htaccessrr}r(hrUhsjubahvhubaubhX file or switch to using rr}r(hrX file or switch to using hsjubj )r}r(hrX ``auth_type``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhX auth_typerr}r(hrUhsjubahvjubhX cookie or http. See the rr }r (hrX cookie or http. See the hsjubh)r }r (hrX:ref:`faqmultiuser`r hsjhthuhvhhx}r(UreftypeXrefhhX faqmultiuserU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhKhm]rh)r}r(hrj hx}r(h|]h}]r(hjXstd-refreh{]hz]h~]uhsj hm]rhX faqmultiuserrr}r(hrUhsjubahvhubaubhX( for additional information, especially rr}r(hrX( for additional information, especially hsjubh)r}r(hrX :ref:`faq4_4`rhsjhthuhvhhx}r (UreftypeXrefhhXfaq4_4U refdomainXstdr!hz]h{]U refexplicith|]h}]h~]hhuhKhm]r"h)r#}r$(hrjhx}r%(h|]h}]r&(hj!Xstd-refr'eh{]hz]h~]uhsjhm]r(hXfaq4_4r)r*}r+(hrUhsj#ubahvhubaubhX.r,}r-(hrX.hsjubeubaubj)r.}r/(hrXOpen the `main phpMyAdmin directory `_ in your browser. phpMyAdmin should now display a welcome screen and your databases, or a login dialog if using :term:`HTTP` or cookie authentication mode.hsjhthuhvjhx}r0(h|]h}]h{]hz]h~]uhNhhhm]r1h)r2}r3(hrXOpen the `main phpMyAdmin directory `_ in your browser. phpMyAdmin should now display a welcome screen and your databases, or a login dialog if using :term:`HTTP` or cookie authentication mode.hsj.hthuhvhhx}r4(h|]h}]h{]hz]h~]uhKhm]r5(hX Open the r6r7}r8(hrX Open the hsj2ubj_)r9}r:(hrX(`main phpMyAdmin directory `_hx}r;(UnameXmain phpMyAdmin directoryjcX index.phpr<hz]h{]h|]h}]h~]uhsj2hm]r=hXmain phpMyAdmin directoryr>r?}r@(hrUhsj9ubahvjiubho)rA}rB(hrX jlKhsj2hvhwhx}rC(Urefurij<hz]rDhhah{]h|]h}]h~]rEh0auhm]ubhXp in your browser. phpMyAdmin should now display a welcome screen and your databases, or a login dialog if using rFrG}rH(hrXp in your browser. phpMyAdmin should now display a welcome screen and your databases, or a login dialog if using hsj2ubh)rI}rJ(hrX :term:`HTTP`rKhsj2hthuhvhhx}rL(UreftypeXtermhhXhttpU refdomainXstdrMhz]h{]U refexplicith|]h}]h~]hhuhKhm]rNh)rO}rP(hrjKhx}rQ(h|]h}]rR(hjMXstd-termrSeh{]hz]h~]uhsjIhm]rThXHTTPrUrV}rW(hrUhsjOubahvhubaubhX or cookie authentication mode.rXrY}rZ(hrX or cookie authentication mode.hsj2ubeubaubj)r[}r\(hrXcYou should deny access to the ``./libraries`` and ``./setup/lib`` subfolders in your webserver configuration. Such configuration prevents from possible path exposure and cross side scripting vulnerabilities that might happen to be found in that code. For the Apache webserver, this is often accomplished with a :term:`.htaccess` file in those directories.hsjhthuhvjhx}r](h|]h}]h{]hz]h~]uhNhhhm]r^h)r_}r`(hrXcYou should deny access to the ``./libraries`` and ``./setup/lib`` subfolders in your webserver configuration. Such configuration prevents from possible path exposure and cross side scripting vulnerabilities that might happen to be found in that code. For the Apache webserver, this is often accomplished with a :term:`.htaccess` file in those directories.hsj[hthuhvhhx}ra(h|]h}]h{]hz]h~]uhKhm]rb(hXYou should deny access to the rcrd}re(hrXYou should deny access to the hsj_ubj )rf}rg(hrX``./libraries``hx}rh(h|]h}]h{]hz]h~]uhsj_hm]rihX ./librariesrjrk}rl(hrUhsjfubahvjubhX and rmrn}ro(hrX and hsj_ubj )rp}rq(hrX``./setup/lib``hx}rr(h|]h}]h{]hz]h~]uhsj_hm]rshX ./setup/librtru}rv(hrUhsjpubahvjubhX subfolders in your webserver configuration. Such configuration prevents from possible path exposure and cross side scripting vulnerabilities that might happen to be found in that code. For the Apache webserver, this is often accomplished with a rwrx}ry(hrX subfolders in your webserver configuration. Such configuration prevents from possible path exposure and cross side scripting vulnerabilities that might happen to be found in that code. For the Apache webserver, this is often accomplished with a hsj_ubh)rz}r{(hrX:term:`.htaccess`r|hsj_hthuhvhhx}r}(UreftypeXtermhhX .htaccessU refdomainXstdr~hz]h{]U refexplicith|]h}]h~]hhuhKhm]rh)r}r(hrj|hx}r(h|]h}]r(hj~Xstd-termreh{]hz]h~]uhsjzhm]rhX .htaccessrr}r(hrUhsjubahvhubaubhX file in those directories.rr}r(hrX file in those directories.hsj_ubeubaubj)r}r(hrXIt is generally a good idea to protect a public phpMyAdmin installation against access by robots as they usually can not do anything good there. You can do this using ``robots.txt`` file in root of your webserver or limit access by web server configuration, see :ref:`faq1_42`. hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXIt is generally a good idea to protect a public phpMyAdmin installation against access by robots as they usually can not do anything good there. You can do this using ``robots.txt`` file in root of your webserver or limit access by web server configuration, see :ref:`faq1_42`.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhm]r(hXIt is generally a good idea to protect a public phpMyAdmin installation against access by robots as they usually can not do anything good there. You can do this using rr}r(hrXIt is generally a good idea to protect a public phpMyAdmin installation against access by robots as they usually can not do anything good there. You can do this using hsjubj )r}r(hrX``robots.txt``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhX robots.txtrr}r(hrUhsjubahvjubhXQ file in root of your webserver or limit access by web server configuration, see rr}r(hrXQ file in root of your webserver or limit access by web server configuration, see hsjubh)r}r(hrX:ref:`faq1_42`rhsjhthuhvhhx}r(UreftypeXrefhhXfaq1_42U refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhKhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-refreh{]hz]h~]uhsjhm]rhXfaq1_42rr}r(hrUhsjubahvhubaubhX.r}r(hrX.hsjubeubaubeubho)r}r(hrX .. _verify:hsjhthuhvhwhx}r(hz]h{]h|]h}]h~]hhLuhKhhhm]ubeubeubh)r}r(hrUhshhthuh}rhjshvhhx}r(h|]h}]h{]hz]r(hPhLeh~]r(hheuhKhhh}rhLjshm]r(h)r}r(hrXVerifying phpMyAdmin releasesrhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]rhXVerifying phpMyAdmin releasesrr}r(hrjhsjubaubh)r}r(hrXSince July 2015 all phpMyAdmin releases are cryptographically signed by the releasing developer, who is currently Marc Delisle. His key id is 0x81AF644A, his PGP fingerprint is:rhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhKhhhm]rhXSince July 2015 all phpMyAdmin releases are cryptographically signed by the releasing developer, who is currently Marc Delisle. His key id is 0x81AF644A, his PGP fingerprint is:rr}r(hrjhsjubaubj)r}r(hrX1436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644Ahsjhthuhvjhx}r(jjXconsolejjhz]h{]h|]h}]h~]uhMhhhm]rhX1436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644Arr}r(hrUhsjubaubh)r}r(hrXand you can get more identification information from `https://keybase.io/lem9 `_. You should verify that the signature matches the archive you have downloaded. This way you can be sure that you are using the same code that was released.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]r(hX5and you can get more identification information from rr}r(hrX5and you can get more identification information from hsjubj_)r}r(hrX4`https://keybase.io/lem9 `_hx}r(Unameh"jcXhttps://keybase.io/lem9rhz]h{]h|]h}]h~]uhsjhm]rhXhttps://keybase.io/lem9rr}r(hrUhsjubahvjiubho)r}r(hrX jlKhsjhvhwhx}r(Urefurijhz]rhZah{]h|]h}]h~]rh"auhm]ubhX. You should verify that the signature matches the archive you have downloaded. This way you can be sure that you are using the same code that was released.rr}r(hrX. You should verify that the signature matches the archive you have downloaded. This way you can be sure that you are using the same code that was released.hsjubeubh)r}r(hrXEach archive is accompanied with ``.asc`` files which contains the PGP signature for it. Once you have both of them in the same folder, you can verify the signature:hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhM hhhm]r(hX!Each archive is accompanied with rr}r(hrX!Each archive is accompanied with hsjubj )r}r(hrX``.asc``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.ascrr}r(hrUhsjubahvjubhX| files which contains the PGP signature for it. Once you have both of them in the same folder, you can verify the signature:rr}r(hrX| files which contains the PGP signature for it. Once you have both of them in the same folder, you can verify the signature:hsjubeubj)r}r(hrX$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A gpg: Can't check signature: No public keyhsjhthuhvjhx}r(jjXconsolejjhz]h{]h|]h}]h~]uhMhhhm]rhX$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A gpg: Can't check signature: No public keyrr}r(hrUhsjubaubh)r}r(hrXzAs you can see gpg complains that it does not know the public key. At this point you should do one of the following steps:rhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]rhXzAs you can see gpg complains that it does not know the public key. At this point you should do one of the following steps:rr }r (hrjhsjubaubcdocutils.nodes bullet_list r )r }r (hrUhsjhthuhvU bullet_listrhx}r(UbulletrX*hz]h{]h|]h}]h~]uhMhhhm]rj)r}r(hrXyDownload the keyring from `our download server `_, then import it with: hsj hthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXxDownload the keyring from `our download server `_, then import it with:hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhm]r(hXDownload the keyring from rr}r(hrXDownload the keyring from hsjubj_)r}r(hrXH`our download server `_hx}r(UnameXour download serverjcX/https://files.phpmyadmin.net/phpmyadmin.keyringr hz]h{]h|]h}]h~]uhsjhm]r!hXour download serverr"r#}r$(hrUhsjubahvjiubho)r%}r&(hrX2 jlKhsjhvhwhx}r'(Urefurij hz]r(h_ah{]h|]h}]h~]r)h'auhm]ubhX, then import it with:r*r+}r,(hrX, then import it with:hsjubeubaubaubj)r-}r.(hrX!$ gpg --import phpmyadmin.keyringhsjhthuhvjhx}r/(jjXconsolejjhz]h{]h|]h}]h~]uhMhhhm]r0hX!$ gpg --import phpmyadmin.keyringr1r2}r3(hrUhsj-ubaubj )r4}r5(hrUhsjhthuhvjhx}r6(jX*hz]h{]h|]h}]h~]uhMhhhm]r7j)r8}r9(hrX9Download and import the key from one of the key servers: hsj4hthuhvjhx}r:(h|]h}]h{]hz]h~]uhNhhhm]r;h)r<}r=(hrX8Download and import the key from one of the key servers:r>hsj8hthuhvhhx}r?(h|]h}]h{]hz]h~]uhMhm]r@hX8Download and import the key from one of the key servers:rArB}rC(hrj>hsj<ubaubaubaubj)rD}rE(hrX*$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 81AF644A gpg: requesting key 81AF644A from hkp server pgp.mit.edu gpg: key 81AF644A: public key "Marc Delisle " imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)hsjhthuhvjhx}rF(jjXconsolejjhz]h{]h|]h}]h~]uhMhhhm]rGhX*$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 81AF644A gpg: requesting key 81AF644A from hkp server pgp.mit.edu gpg: key 81AF644A: public key "Marc Delisle " imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)rHrI}rJ(hrUhsjDubaubh)rK}rL(hrXThis will improve the situation a bit - at this point you can verify that the signature from the given key is correct but you still can not trust the name used in the key:rMhsjhthuhvhhx}rN(h|]h}]h{]hz]h~]uhM(hhhm]rOhXThis will improve the situation a bit - at this point you can verify that the signature from the given key is correct but you still can not trust the name used in the key:rPrQ}rR(hrjMhsjKubaubj)rS}rT(hrX$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A gpg: Good signature from "Marc Delisle " [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644Ahsjhthuhvjhx}rU(jjXconsolejjhz]h{]h|]h}]h~]uhM,hhhm]rVhX$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A gpg: Good signature from "Marc Delisle " [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644ArWrX}rY(hrUhsjSubaubh)rZ}r[(hrX5The problem here is that anybody could issue the key with this name. You need to ensure that the key is actually owned by the mentioned person. The GNU Privacy Handbook covers this topic in the chapter `Validating other keys on your public keyring`_. The most reliable method is to meet the developer in person and exchange key fingerprints, however you can also rely on the web of trust. This way you can trust the key transitively though signatures of others, who have met the developer in person. For example you can see how `Marc's key links to Linus's key`_.hsjhthuhvhhx}r\(h|]h}]h{]hz]h~]uhM5hhhm]r](hXThe problem here is that anybody could issue the key with this name. You need to ensure that the key is actually owned by the mentioned person. The GNU Privacy Handbook covers this topic in the chapter r^r_}r`(hrXThe problem here is that anybody could issue the key with this name. You need to ensure that the key is actually owned by the mentioned person. The GNU Privacy Handbook covers this topic in the chapter hsjZubj_)ra}rb(hrX/`Validating other keys on your public keyring`_UresolvedrcKhsjZhvjihx}rd(UnameX,Validating other keys on your public keyringjcX/https://www.gnupg.org/gph/en/manual.html#AEN335rehz]h{]h|]h}]h~]uhm]rfhX,Validating other keys on your public keyringrgrh}ri(hrUhsjaubaubhX. The most reliable method is to meet the developer in person and exchange key fingerprints, however you can also rely on the web of trust. This way you can trust the key transitively though signatures of others, who have met the developer in person. For example you can see how rjrk}rl(hrX. The most reliable method is to meet the developer in person and exchange key fingerprints, however you can also rely on the web of trust. This way you can trust the key transitively though signatures of others, who have met the developer in person. For example you can see how hsjZubj_)rm}rn(hrX"`Marc's key links to Linus's key`_jcKhsjZhvjihx}ro(UnameXMarc's key links to Linus's keyjcX9http://pgp.cs.uu.nl/mk_path.cgi?FROM=00411886&TO=81AF644Arphz]h{]h|]h}]h~]uhm]rqhXMarc's key links to Linus's keyrrrs}rt(hrUhsjmubaubhX.ru}rv(hrX.hsjZubeubh)rw}rx(hrX4Once the key is trusted, the warning will not occur:ryhsjhthuhvhhx}rz(h|]h}]h{]hz]h~]uhM>hhhm]r{hX4Once the key is trusted, the warning will not occur:r|r}}r~(hrjyhsjwubaubj)r}r(hrX$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A gpg: Good signature from "Marc Delisle " [full]hsjhthuhvjhx}r(jjXconsolejjhz]h{]h|]h}]h~]uhM@hhhm]rhX$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A gpg: Good signature from "Marc Delisle " [full]rr}r(hrUhsjubaubh)r}r(hrXShould the signature be invalid (the archive has been changed), you would get a clear error regardless of the fact that the key is trusted or not:rhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMFhhhm]rhXShould the signature be invalid (the archive has been changed), you would get a clear error regardless of the fact that the key is trusted or not:rr}r(hrjhsjubaubj)r}r(hrX$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A gpg: BAD signature from "Marc Delisle " [unknown]hsjhthuhvjhx}r(jjXconsolejjhz]h{]h|]h}]h~]uhMIhhhm]rhX$ gpg --verify phpMyAdmin-4.4.9-all-languages.zip.asc gpg: Signature made Fri Jun 12 13:09:58 2015 CEST using RSA key ID 81AF644A gpg: BAD signature from "Marc Delisle " [unknown]rr}r(hrUhsjubaubho)r}r(hrXa.. _Validating other keys on your public keyring: https://www.gnupg.org/gph/en/manual.html#AEN335jlKhsjhthuhvhwhx}r(jcjehz]rhGah{]h|]h}]h~]rhauhMOhhhm]ubho)r}r(hrX^.. _Marc's key links to Linus's key: http://pgp.cs.uu.nl/mk_path.cgi?FROM=00411886&TO=81AF644AjlKhsjhthuhvhwhx}r(jcjphz]rhlah{]h|]h}]h~]rh4auhMQhhhm]ubj)r}r(hrUhsjhthuhvjhx}r(hz]h{]h|]h}]h~]j]r((jXConfiguration storageUindex-1rUtr(jX phpMyAdmin configuration storagejUtr(jXpmadbjUtrejuhMThhhm]ubho)r}r(hrUhsjhthuhvhwhx}r(hz]h{]h|]h}]h~]hjuhMXhhhm]ubho)r}r(hrX.. _linked-tables:hsjhthuh}hvhwhx}r(hz]h{]h|]h}]h~]hhHuhMYhhh}rjjshm]ubeubh)r}r(hrUhshhthuh}rhjshvhhx}r(h|]h}]h{]hz]r(hfhHjeh~]r(h.heuhM\hhh}r(jjhHjuhm]r(h)r}r(hrX phpMyAdmin configuration storagerhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhM\hhhm]rhX phpMyAdmin configuration storagerr}r(hrjhsjubaubh)r}r(hrXFor a whole set of additional features (bookmarks, comments, :term:`SQL`-history, tracking mechanism, :term:`PDF`-generation, column contents transformation, etc.) you need to create a set of special tables. Those tables can be located in your own database, or in a central database for a multi-user installation (this database would then be accessed by the controluser, so no other user should have rights to it).hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhM^hhhm]r(hX=For a whole set of additional features (bookmarks, comments, rr}r(hrX=For a whole set of additional features (bookmarks, comments, hsjubh)r}r(hrX :term:`SQL`rhsjhthuhvhhx}r(UreftypeXtermhhXsqlU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhM^hm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-termreh{]hz]h~]uhsjhm]rhXSQLrr}r(hrUhsjubahvhubaubhX-history, tracking mechanism, rr}r(hrX-history, tracking mechanism, hsjubh)r}r(hrX :term:`PDF`rhsjhthuhvhhx}r(UreftypeXtermhhXpdfU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhM^hm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-termreh{]hz]h~]uhsjhm]rhXPDFrr}r(hrUhsjubahvhubaubhX.-generation, column contents transformation, etc.) you need to create a set of special tables. Those tables can be located in your own database, or in a central database for a multi-user installation (this database would then be accessed by the controluser, so no other user should have rights to it).rr}r(hrX.-generation, column contents transformation, etc.) you need to create a set of special tables. Those tables can be located in your own database, or in a central database for a multi-user installation (this database would then be accessed by the controluser, so no other user should have rights to it).hsjubeubh)r}r(hrUhsjhthuhvhhx}r(h|]h}]h{]hz]rhaah~]rh)auhMfhhhm]r(h)r}r(hrXZero configurationrhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMfhhhm]rhXZero configurationrr}r(hrjhsjubaubh)r}r(hrXIn many cases, this database structure can be automatically created and configured. This is called “Zero Configuration” mode and can be particularly useful in shared hosting situations. “Zeroconf” mode is on by default, to disable set :config:option:`$cfg['ZeroConf']` to false.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhhm]r(hXIn many cases, this database structure can be automatically created and configured. This is called “Zero Configuration” mode and can be particularly useful in shared hosting situations. “Zeroconf” mode is on by default, to disable set rr}r(hrXIn many cases, this database structure can be automatically created and configured. This is called “Zero Configuration” mode and can be particularly useful in shared hosting situations. “Zeroconf” mode is on by default, to disable set hsjubj)r}r(hrUhx}r(hz]h{]h|]h}]h~]j]r((jX$cfg['ZeroConf']rUindex-2rjtr(jX&configuration option; $cfg['ZeroConf']jjtreuhsjhm]hvjubho)r}r(hrUhx}r(h|]h}]h{]hz]r jah~]uhsjhm]hvhwubh)r }r (hrX!:config:option:`$cfg['ZeroConf']`r hsjhthuhvhhx}r (UreftypeXoptionhhjU refdomainXconfigrhz]h{]U refexplicith|]h}]h~]hhuhMhhm]rj )r}r(hrj hx}r(h|]h}]r(hjX config-optionreh{]hz]h~]uhsj hm]rhX$cfg['ZeroConf']rr}r(hrUhsjubahvjubaubhX to false.rr}r(hrX to false.hsjubeubh)r}r(hrXIThe following three scenarios are covered by the Zero Configuration mode:rhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMmhhhm]r hXIThe following three scenarios are covered by the Zero Configuration mode:r!r"}r#(hrjhsjubaubj )r$}r%(hrUhsjhthuhvjhx}r&(jX*hz]h{]h|]h}]h~]uhMohhhm]r'(j)r(}r)(hrXWhen entering a database where the configuration storage tables are not present, phpMyAdmin offers to create them from the Operations tab.hsj$hthuhvjhx}r*(h|]h}]h{]hz]h~]uhNhhhm]r+h)r,}r-(hrXWhen entering a database where the configuration storage tables are not present, phpMyAdmin offers to create them from the Operations tab.r.hsj(hthuhvhhx}r/(h|]h}]h{]hz]h~]uhMohm]r0hXWhen entering a database where the configuration storage tables are not present, phpMyAdmin offers to create them from the Operations tab.r1r2}r3(hrj.hsj,ubaubaubj)r4}r5(hrXWhen entering a database where the tables do already exist, the software automatically detects this and begins using them. This is the most common situation; after the tables are initially created automatically they are continually used without disturbing the user; this is also most useful on shared hosting where the user is not able to edit :file:`config.inc.php` and usually the user only has access to one database.hsj$hthuhvjhx}r6(h|]h}]h{]hz]h~]uhNhhhm]r7h)r8}r9(hrXWhen entering a database where the tables do already exist, the software automatically detects this and begins using them. This is the most common situation; after the tables are initially created automatically they are continually used without disturbing the user; this is also most useful on shared hosting where the user is not able to edit :file:`config.inc.php` and usually the user only has access to one database.hsj4hthuhvhhx}r:(h|]h}]h{]hz]h~]uhMqhm]r;(hXXWhen entering a database where the tables do already exist, the software automatically detects this and begins using them. This is the most common situation; after the tables are initially created automatically they are continually used without disturbing the user; this is also most useful on shared hosting where the user is not able to edit r<r=}r>(hrXXWhen entering a database where the tables do already exist, the software automatically detects this and begins using them. This is the most common situation; after the tables are initially created automatically they are continually used without disturbing the user; this is also most useful on shared hosting where the user is not able to edit hsj8ubj )r?}r@(hrUhx}rA(hz]h{]h|]h}]rBXfilerCaUrolejCh~]uhsj8hm]rDhXconfig.inc.phprErF}rG(hrXconfig.inc.phphsj?ubahvjubhX6 and usually the user only has access to one database.rHrI}rJ(hrX6 and usually the user only has access to one database.hsj8ubeubaubj)rK}rL(hrX$When having access to multiple databases, if the user first enters the database containing the configuration storage tables then switches to another database, phpMyAdmin continues to use the tables from the first database; the user is not prompted to create more tables in the new database. hsj$hthuhvjhx}rM(h|]h}]h{]hz]h~]uhNhhhm]rNh)rO}rP(hrX"When having access to multiple databases, if the user first enters the database containing the configuration storage tables then switches to another database, phpMyAdmin continues to use the tables from the first database; the user is not prompted to create more tables in the new database.rQhsjKhthuhvhhx}rR(h|]h}]h{]hz]h~]uhMwhm]rShX"When having access to multiple databases, if the user first enters the database containing the configuration storage tables then switches to another database, phpMyAdmin continues to use the tables from the first database; the user is not prompted to create more tables in the new database.rTrU}rV(hrjQhsjOubaubaubeubeubh)rW}rX(hrUhsjhthuhvhhx}rY(h|]h}]h{]hz]rZhNah~]r[hauhMhhhm]r\(h)r]}r^(hrXManual configurationr_hsjWhthuhvhhx}r`(h|]h}]h{]hz]h~]uhMhhhm]rahXManual configurationrbrc}rd(hrj_hsj]ubaubh)re}rf(hrXPlease look at your ``./sql/`` directory, where you should find a file called *create\_tables.sql*. (If you are using a Windows server, pay special attention to :ref:`faq1_23`).hsjWhthuhvhhx}rg(h|]h}]h{]hz]h~]uhMhhhm]rh(hXPlease look at your rirj}rk(hrXPlease look at your hsjeubj )rl}rm(hrX ``./sql/``hx}rn(h|]h}]h{]hz]h~]uhsjehm]rohX./sql/rprq}rr(hrUhsjlubahvjubhX0 directory, where you should find a file called rsrt}ru(hrX0 directory, where you should find a file called hsjeubh)rv}rw(hrX*create\_tables.sql*hx}rx(h|]h}]h{]hz]h~]uhsjehm]ryhXcreate_tables.sqlrzr{}r|(hrUhsjvubahvhubhX?. (If you are using a Windows server, pay special attention to r}r~}r(hrX?. (If you are using a Windows server, pay special attention to hsjeubh)r}r(hrX:ref:`faq1_23`rhsjehthuhvhhx}r(UreftypeXrefhhXfaq1_23U refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhMhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-refreh{]hz]h~]uhsjhm]rhXfaq1_23rr}r(hrUhsjubahvhubaubhX).rr}r(hrX).hsjeubeubh)r}r(hrX+If you already had this infrastructure and:rhsjWhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]rhX+If you already had this infrastructure and:rr}r(hrjhsjubaubj )r}r(hrUhsjWhthuhvjhx}r(jX*hz]h{]h|]h}]h~]uhMhhhm]r(j)r}r(hrXYupgraded to MySQL 4.1.2 or newer, please use :file:`sql/upgrade_tables_mysql_4_1_2+.sql`.hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXYupgraded to MySQL 4.1.2 or newer, please use :file:`sql/upgrade_tables_mysql_4_1_2+.sql`.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhm]r(hX-upgraded to MySQL 4.1.2 or newer, please use rr}r(hrX-upgraded to MySQL 4.1.2 or newer, please use hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhX#sql/upgrade_tables_mysql_4_1_2+.sqlrr}r(hrX#sql/upgrade_tables_mysql_4_1_2+.sqlhsjubahvjubhX.r}r(hrX.hsjubeubaubj)r}r(hrX}upgraded to phpMyAdmin 4.3.0 or newer from 2.5.0 or newer (<= 4.2.x), please use :file:`sql/upgrade_column_info_4_3_0+.sql`. hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrX|upgraded to phpMyAdmin 4.3.0 or newer from 2.5.0 or newer (<= 4.2.x), please use :file:`sql/upgrade_column_info_4_3_0+.sql`.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhm]r(hXQupgraded to phpMyAdmin 4.3.0 or newer from 2.5.0 or newer (<= 4.2.x), please use rr}r(hrXQupgraded to phpMyAdmin 4.3.0 or newer from 2.5.0 or newer (<= 4.2.x), please use hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhX"sql/upgrade_column_info_4_3_0+.sqlrr}r(hrX"sql/upgrade_column_info_4_3_0+.sqlhsjubahvjubhX.r}r(hrX.hsjubeubaubeubh)r}r(hrXFand then create new tables by importing :file:`sql/create_tables.sql`.rhsjWhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]r(hX(and then create new tables by importing rr}r(hrX(and then create new tables by importing hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhXsql/create_tables.sqlrr}r(hrXsql/create_tables.sqlhsjubahvjubhX.r}r(hrX.hsjubeubh)r}r(hrXYou can use your phpMyAdmin to create the tables for you. Please be aware that you may need special (administrator) privileges to create the database and tables, and that the script may need some tuning, depending on the database name.rhsjWhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]rhXYou can use your phpMyAdmin to create the tables for you. Please be aware that you may need special (administrator) privileges to create the database and tables, and that the script may need some tuning, depending on the database name.rr}r(hrjhsjubaubh)r}r(hrXAfter having imported the :file:`sql/create_tables.sql` file, you should specify the table names in your :file:`config.inc.php` file. The directives used for that can be found in the :ref:`config`.hsjWhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]r(hXAfter having imported the rr}r(hrXAfter having imported the hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhXsql/create_tables.sqlrr}r(hrXsql/create_tables.sqlhsjubahvjubhX2 file, you should specify the table names in your rr}r(hrX2 file, you should specify the table names in your hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhXconfig.inc.phprr}r(hrXconfig.inc.phphsjubahvjubhX8 file. The directives used for that can be found in the rr}r(hrX8 file. The directives used for that can be found in the hsjubh)r}r(hrX :ref:`config`rhsjhthuhvhhx}r(UreftypeXrefhhXconfigU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhMhm]r h)r }r (hrjhx}r (h|]h}]r (hjXstd-refreh{]hz]h~]uhsjhm]rhXconfigrr}r(hrUhsj ubahvhubaubhX.r}r(hrX.hsjubeubh)r}r(hrXYou will also need to have a controluser (:config:option:`$cfg['Servers'][$i]['controluser']` and :config:option:`$cfg['Servers'][$i]['controlpass']` settings) with the proper rights to those tables. For example you can create it using following statement:hsjWhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]r(hX*You will also need to have a controluser (rr}r(hrX*You will also need to have a controluser (hsjubj)r}r(hrUhx}r(hz]h{]h|]h}]h~]j]r((jX"$cfg['Servers'][$i]['controluser']r Uindex-3r!j tr"(jX8configuration option; $cfg['Servers'][$i]['controluser']j!j tr#euhsjhm]hvjubho)r$}r%(hrUhx}r&(h|]h}]h{]hz]r'j!ah~]uhsjhm]hvhwubh)r(}r)(hrX3:config:option:`$cfg['Servers'][$i]['controluser']`r*hsjhthuhvhhx}r+(UreftypeXoptionhhj U refdomainXconfigr,hz]h{]U refexplicith|]h}]h~]hhuhMhm]r-j )r.}r/(hrj*hx}r0(h|]h}]r1(hj,X config-optionr2eh{]hz]h~]uhsj(hm]r3hX"$cfg['Servers'][$i]['controluser']r4r5}r6(hrUhsj.ubahvjubaubhX and r7r8}r9(hrX and hsjubj)r:}r;(hrUhx}r<(hz]h{]h|]h}]h~]j]r=((jX"$cfg['Servers'][$i]['controlpass']r>Uindex-4r?j>tr@(jX8configuration option; $cfg['Servers'][$i]['controlpass']j?j>trAeuhsjhm]hvjubho)rB}rC(hrUhx}rD(h|]h}]h{]hz]rEj?ah~]uhsjhm]hvhwubh)rF}rG(hrX3:config:option:`$cfg['Servers'][$i]['controlpass']`rHhsjhthuhvhhx}rI(UreftypeXoptionhhj>U refdomainXconfigrJhz]h{]U refexplicith|]h}]h~]hhuhMhm]rKj )rL}rM(hrjHhx}rN(h|]h}]rO(hjJX config-optionrPeh{]hz]h~]uhsjFhm]rQhX"$cfg['Servers'][$i]['controlpass']rRrS}rT(hrUhsjLubahvjubaubhXk settings) with the proper rights to those tables. For example you can create it using following statement:rUrV}rW(hrXk settings) with the proper rights to those tables. For example you can create it using following statement:hsjubeubj)rX}rY(hrXaGRANT SELECT, INSERT, UPDATE, DELETE ON .* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';hsjWhthuhvjhx}rZ(jjXmysqljjhz]h{]h|]h}]h~]uhMhhhm]r[hXaGRANT SELECT, INSERT, UPDATE, DELETE ON .* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';r\r]}r^(hrUhsjXubaubho)r_}r`(hrX.. _upgrading:hsjWhthuhvhwhx}ra(hz]h{]h|]h}]h~]hhAuhMhhhm]ubeubeubh)rb}rc(hrUhshhthuh}rdh j_shvhhx}re(h|]h}]h{]hz]rf(hjhAeh~]rg(h2h euhMhhh}rhhAj_shm]ri(h)rj}rk(hrXUpgrading from an older versionrlhsjbhthuhvhhx}rm(h|]h}]h{]hz]h~]uhMhhhm]rnhXUpgrading from an older versionrorp}rq(hrjlhsjjubaubh)rr}rs(hrXz**Never** extract the new version over an existing installation of phpMyAdmin; we had evidence of problems caused by this.hsjbhthuhvhhx}rt(h|]h}]h{]hz]h~]uhMhhhm]ru(j")rv}rw(hrX **Never**hx}rx(h|]h}]h{]hz]h~]uhsjrhm]ryhXNeverrzr{}r|(hrUhsjvubahvj,ubhXq extract the new version over an existing installation of phpMyAdmin; we had evidence of problems caused by this.r}r~}r(hrXq extract the new version over an existing installation of phpMyAdmin; we had evidence of problems caused by this.hsjrubeubh)r}r(hrXhSimply copy :file:`config.inc.php` from your previous installation into the newly unpacked one. Configuration files from old versions may require some tweaking as some options have been changed or removed. For compatibility with PHP 5.3 and later, remove a ``set_magic_quotes_runtime(0);`` statement that you might find near the end of your configuration file.hsjbhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]r(hX Simply copy rr}r(hrX Simply copy hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhXconfig.inc.phprr}r(hrXconfig.inc.phphsjubahvjubhX from your previous installation into the newly unpacked one. Configuration files from old versions may require some tweaking as some options have been changed or removed. For compatibility with PHP 5.3 and later, remove a rr}r(hrX from your previous installation into the newly unpacked one. Configuration files from old versions may require some tweaking as some options have been changed or removed. For compatibility with PHP 5.3 and later, remove a hsjubj )r}r(hrX ``set_magic_quotes_runtime(0);``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhXset_magic_quotes_runtime(0);rr}r(hrUhsjubahvjubhXG statement that you might find near the end of your configuration file.rr}r(hrXG statement that you might find near the end of your configuration file.hsjubeubh)r}r(hrXYou should **not** copy :file:`libraries/config.default.php` over :file:`config.inc.php` because the default configuration file is version- specific.hsjbhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]r(hX You should rr}r(hrX You should hsjubj")r}r(hrX**not**hx}r(h|]h}]h{]hz]h~]uhsjhm]rhXnotrr}r(hrUhsjubahvj,ubhX copy rr}r(hrX copy hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhXlibraries/config.default.phprr}r(hrXlibraries/config.default.phphsjubahvjubhX over rr}r(hrX over hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhXconfig.inc.phprr}r(hrXconfig.inc.phphsjubahvjubhX= because the default configuration file is version- specific.rr}r(hrX= because the default configuration file is version- specific.hsjubeubh)r}r(hrXIf you have upgraded your MySQL server from a version previous to 4.1.2 to version 5.x or newer and if you use the phpMyAdmin configuration storage, you should run the :term:`SQL` script found in :file:`sql/upgrade_tables_mysql_4_1_2+.sql`.hsjbhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]r(hXIf you have upgraded your MySQL server from a version previous to 4.1.2 to version 5.x or newer and if you use the phpMyAdmin configuration storage, you should run the rr}r(hrXIf you have upgraded your MySQL server from a version previous to 4.1.2 to version 5.x or newer and if you use the phpMyAdmin configuration storage, you should run the hsjubh)r}r(hrX :term:`SQL`rhsjhthuhvhhx}r(UreftypeXtermhhXsqlU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhMhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-termreh{]hz]h~]uhsjhm]rhXSQLrr}r(hrUhsjubahvhubaubhX script found in rr}r(hrX script found in hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]rhX#sql/upgrade_tables_mysql_4_1_2+.sqlrr}r(hrX#sql/upgrade_tables_mysql_4_1_2+.sqlhsjubahvjubhX.r}r(hrX.hsjubeubh)r}r(hrXIf you have upgraded your phpMyAdmin to 4.3.0 or newer from 2.5.0 or newer (<= 4.2.x) and if you use the phpMyAdmin configuration storage, you should run the :term:`SQL` script found in :file:`sql/upgrade_column_info_4_3_0+.sql`.hsjbhthuhvhhx}r(h|]h}]h{]hz]h~]uhMhhhm]r(hXIf you have upgraded your phpMyAdmin to 4.3.0 or newer from 2.5.0 or newer (<= 4.2.x) and if you use the phpMyAdmin configuration storage, you should run the rr}r(hrXIf you have upgraded your phpMyAdmin to 4.3.0 or newer from 2.5.0 or newer (<= 4.2.x) and if you use the phpMyAdmin configuration storage, you should run the hsjubh)r}r(hrX :term:`SQL`rhsjhthuhvhhx}r(UreftypeXtermhhXsqlU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhMhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-termreh{]hz]h~]uhsjhm]rhXSQLrr}r(hrUhsjubahvhubaubhX script found in r r }r (hrX script found in hsjubj )r }r (hrUhx}r (hz]h{]h|]h}]r Xfiler aUrolej h~]uhsjhm]r hX"sql/upgrade_column_info_4_3_0+.sqlr r }r (hrX"sql/upgrade_column_info_4_3_0+.sqlhsj ubahvjubhX.r }r (hrX.hsjubeubh)r }r (hrXjDo not forget to clear the browser cache and to empty the old session by logging out and logging in again.r hsjbhthuhvhhx}r (h|]h}]h{]hz]h~]uhMhhhm]r hXjDo not forget to clear the browser cache and to empty the old session by logging out and logging in again.r r }r (hrj hsj ubaubj)r }r (hrUhsjbhthuhvjhx}r (hz]h{]h|]h}]h~]j]r (jXAuthentication modeUindex-5r Utr ajuhMhhhm]ubho)r }r (hrUhsjbhthuhvhwhx}r (hz]h{]h|]h}]h~]hj uhMhhhm]ubho)r }r (hrX.. _authentication_modes:hsjbhthuh}hvhwhx}r! (hz]h{]h|]h}]h~]hhOuhMhhh}r" j j shm]ubeubh)r# }r$ (hrUhshhthuh}r% hj shvhhx}r& (h|]h}]h{]hz]r' (h[hOj eh~]r( (h#heuhMhhh}r) (j j hOj uhm]r* (h)r+ }r, (hrXUsing authentication modesr- hsj# hthuhvhhx}r. (h|]h}]h{]hz]h~]uhMhhhm]r/ hXUsing authentication modesr0 r1 }r2 (hrj- hsj+ ubaubh)r3 }r4 (hrX:term:`HTTP` and cookie authentication modes are recommended in a **multi-user environment** where you want to give users access to their own database and don't want them to play around with others. Nevertheless be aware that MS Internet Explorer seems to be really buggy about cookies, at least till version 6. Even in a **single-user environment**, you might prefer to use :term:`HTTP` or cookie mode so that your user/password pair are not in clear in the configuration file.hsj# hthuhvhhx}r5 (h|]h}]h{]hz]h~]uhMhhhm]r6 (h)r7 }r8 (hrX :term:`HTTP`r9 hsj3 hthuhvhhx}r: (UreftypeXtermhhXhttpU refdomainXstdr; hz]h{]U refexplicith|]h}]h~]hhuhMhm]r< h)r= }r> (hrj9 hx}r? (h|]h}]r@ (hj; Xstd-termrA eh{]hz]h~]uhsj7 hm]rB hXHTTPrC rD }rE (hrUhsj= ubahvhubaubhX6 and cookie authentication modes are recommended in a rF rG }rH (hrX6 and cookie authentication modes are recommended in a hsj3 ubj")rI }rJ (hrX**multi-user environment**hx}rK (h|]h}]h{]hz]h~]uhsj3 hm]rL hXmulti-user environmentrM rN }rO (hrUhsjI ubahvj,ubhX where you want to give users access to their own database and don't want them to play around with others. Nevertheless be aware that MS Internet Explorer seems to be really buggy about cookies, at least till version 6. Even in a rP rQ }rR (hrX where you want to give users access to their own database and don't want them to play around with others. Nevertheless be aware that MS Internet Explorer seems to be really buggy about cookies, at least till version 6. Even in a hsj3 ubj")rS }rT (hrX**single-user environment**hx}rU (h|]h}]h{]hz]h~]uhsj3 hm]rV hXsingle-user environmentrW rX }rY (hrUhsjS ubahvj,ubhX, you might prefer to use rZ r[ }r\ (hrX, you might prefer to use hsj3 ubh)r] }r^ (hrX :term:`HTTP`r_ hsj3 hthuhvhhx}r` (UreftypeXtermhhXhttpU refdomainXstdra hz]h{]U refexplicith|]h}]h~]hhuhMhm]rb h)rc }rd (hrj_ hx}re (h|]h}]rf (hja Xstd-termrg eh{]hz]h~]uhsj] hm]rh hXHTTPri rj }rk (hrUhsjc ubahvhubaubhX[ or cookie mode so that your user/password pair are not in clear in the configuration file.rl rm }rn (hrX[ or cookie mode so that your user/password pair are not in clear in the configuration file.hsj3 ubeubh)ro }rp (hrX:term:`HTTP` and cookie authentication modes are more secure: the MySQL login information does not need to be set in the phpMyAdmin configuration file (except possibly for the :config:option:`$cfg['Servers'][$i]['controluser']`). However, keep in mind that the password travels in plain text, unless you are using the HTTPS protocol. In cookie mode, the password is stored, encrypted with the AES algorithm, in a temporary cookie.hsj# hthuhvhhx}rq (h|]h}]h{]hz]h~]uhMhhhm]rr (h)rs }rt (hrX :term:`HTTP`ru hsjo hthuhvhhx}rv (UreftypeXtermhhXhttpU refdomainXstdrw hz]h{]U refexplicith|]h}]h~]hhuhMhm]rx h)ry }rz (hrju hx}r{ (h|]h}]r| (hjw Xstd-termr} eh{]hz]h~]uhsjs hm]r~ hXHTTPr r }r (hrUhsjy ubahvhubaubhX and cookie authentication modes are more secure: the MySQL login information does not need to be set in the phpMyAdmin configuration file (except possibly for the r r }r (hrX and cookie authentication modes are more secure: the MySQL login information does not need to be set in the phpMyAdmin configuration file (except possibly for the hsjo ubj)r }r (hrUhx}r (hz]h{]h|]h}]h~]j]r ((jX"$cfg['Servers'][$i]['controluser']r Uindex-6r j tr (jX8configuration option; $cfg['Servers'][$i]['controluser']j j tr euhsjo hm]hvjubho)r }r (hrUhx}r (h|]h}]h{]hz]r j ah~]uhsjo hm]hvhwubh)r }r (hrX3:config:option:`$cfg['Servers'][$i]['controluser']`r hsjo hthuhvhhx}r (UreftypeXoptionhhj U refdomainXconfigr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r j )r }r (hrj hx}r (h|]h}]r (hj X config-optionr eh{]hz]h~]uhsj hm]r hX"$cfg['Servers'][$i]['controluser']r r }r (hrUhsj ubahvjubaubhX). However, keep in mind that the password travels in plain text, unless you are using the HTTPS protocol. In cookie mode, the password is stored, encrypted with the AES algorithm, in a temporary cookie.r r }r (hrX). However, keep in mind that the password travels in plain text, unless you are using the HTTPS protocol. In cookie mode, the password is stored, encrypted with the AES algorithm, in a temporary cookie.hsjo ubeubh)r }r (hrXfThen each of the *true* users should be granted a set of privileges on a set of particular databases. Normally you shouldn't give global privileges to an ordinary user, unless you understand the impact of those privileges (for example, you are creating a superuser). For example, to grant the user *real_user* with all privileges on the database *user_base*:hsj# hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhhhm]r (hXThen each of the r r }r (hrXThen each of the hsj ubh)r }r (hrX*true*hx}r (h|]h}]h{]hz]h~]uhsj hm]r hXtruer r }r (hrUhsj ubahvhubhX users should be granted a set of privileges on a set of particular databases. Normally you shouldn't give global privileges to an ordinary user, unless you understand the impact of those privileges (for example, you are creating a superuser). For example, to grant the user r r }r (hrX users should be granted a set of privileges on a set of particular databases. Normally you shouldn't give global privileges to an ordinary user, unless you understand the impact of those privileges (for example, you are creating a superuser). For example, to grant the user hsj ubh)r }r (hrX *real_user*hx}r (h|]h}]h{]hz]h~]uhsj hm]r hX real_userr r }r (hrUhsj ubahvhubhX% with all privileges on the database r r }r (hrX% with all privileges on the database hsj ubh)r }r (hrX *user_base*hx}r (h|]h}]h{]hz]h~]uhsj hm]r hX user_baser r }r (hrUhsj ubahvhubhX:r }r (hrX:hsj ubeubj)r }r (hrX[GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';hsj# hthuhvjhx}r (jjXmysqljjhz]h{]h|]h}]h~]uhMhhhm]r hX[GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';r r }r (hrUhsj ubaubh)r }r (hrXWhat the user may now do is controlled entirely by the MySQL user management system. With HTTP or cookie authentication mode, you don't need to fill the user/password fields inside the :config:option:`$cfg['Servers']`.hsj# hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhhhm]r (hXWhat the user may now do is controlled entirely by the MySQL user management system. With HTTP or cookie authentication mode, you don't need to fill the user/password fields inside the r r }r (hrXWhat the user may now do is controlled entirely by the MySQL user management system. With HTTP or cookie authentication mode, you don't need to fill the user/password fields inside the hsj ubj)r }r (hrUhx}r (hz]h{]h|]h}]h~]j]r ((jX$cfg['Servers']r Uindex-7r j tr (jX%configuration option; $cfg['Servers']j j tr euhsj hm]hvjubho)r }r (hrUhx}r (h|]h}]h{]hz]r j ah~]uhsj hm]hvhwubh)r }r (hrX :config:option:`$cfg['Servers']`r hsj hthuhvhhx}r (UreftypeXoptionhhj U refdomainXconfigr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r j )r }r (hrj hx}r (h|]h}]r (hj X config-optionr eh{]hz]h~]uhsj hm]r hX$cfg['Servers']r r }r (hrUhsj ubahvjubaubhX.r }r (hrX.hsj ubeubj)r }r (hrUhsj# hthuhvjhx}r (hz]h{]h|]h}]h~]j]r (Upairr XHTTP; Authentication modeUindex-8r Utr ajuhMhhhm]ubho)r }r (hrUhsj# hthuhvhwhx}r (hz]h{]h|]h}]h~]hj uhMhhhm]ubh)r }r (hrUhsj# hthuh}hvhhx}r (h|]h}]h{]hz]r (hTj eh~]r hauhMhhh}r j j shm]r (h)r }r (hrXHTTP authentication moder hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhhhm]r hXHTTP authentication moder r }r (hrj hsj ubaubj )r }r (hrUhsj hthuhvjhx}r (jX*hz]h{]h|]h}]h~]uhMhhhm]r (j)r }r (hrX_Uses :term:`HTTP` Basic authentication method and allows you to log in as any valid MySQL user.hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrX_Uses :term:`HTTP` Basic authentication method and allows you to log in as any valid MySQL user.hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhm]r (hXUses r r }r (hrXUses hsj ubh)r }r (hrX :term:`HTTP`r hsj hthuhvhhx}r (UreftypeXtermhhXhttpU refdomainXstdr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r h)r }r! (hrj hx}r" (h|]h}]r# (hj Xstd-termr$ eh{]hz]h~]uhsj hm]r% hXHTTPr& r' }r( (hrUhsj ubahvhubaubhXN Basic authentication method and allows you to log in as any valid MySQL user.r) r* }r+ (hrXN Basic authentication method and allows you to log in as any valid MySQL user.hsj ubeubaubj)r, }r- (hrXIs supported with most PHP configurations. For :term:`IIS` (:term:`ISAPI`) support using :term:`CGI` PHP see :ref:`faq1_32`, for using with Apache :term:`CGI` see :ref:`faq1_35`.hsj hthuhvjhx}r. (h|]h}]h{]hz]h~]uhNhhhm]r/ h)r0 }r1 (hrXIs supported with most PHP configurations. For :term:`IIS` (:term:`ISAPI`) support using :term:`CGI` PHP see :ref:`faq1_32`, for using with Apache :term:`CGI` see :ref:`faq1_35`.hsj, hthuhvhhx}r2 (h|]h}]h{]hz]h~]uhMhm]r3 (hX/Is supported with most PHP configurations. For r4 r5 }r6 (hrX/Is supported with most PHP configurations. For hsj0 ubh)r7 }r8 (hrX :term:`IIS`r9 hsj0 hthuhvhhx}r: (UreftypeXtermhhXiisU refdomainXstdr; hz]h{]U refexplicith|]h}]h~]hhuhMhm]r< h)r= }r> (hrj9 hx}r? (h|]h}]r@ (hj; Xstd-termrA eh{]hz]h~]uhsj7 hm]rB hXIISrC rD }rE (hrUhsj= ubahvhubaubhX (rF rG }rH (hrX (hsj0 ubh)rI }rJ (hrX :term:`ISAPI`rK hsj0 hthuhvhhx}rL (UreftypeXtermhhXisapiU refdomainXstdrM hz]h{]U refexplicith|]h}]h~]hhuhMhm]rN h)rO }rP (hrjK hx}rQ (h|]h}]rR (hjM Xstd-termrS eh{]hz]h~]uhsjI hm]rT hXISAPIrU rV }rW (hrUhsjO ubahvhubaubhX) support using rX rY }rZ (hrX) support using hsj0 ubh)r[ }r\ (hrX :term:`CGI`r] hsj0 hthuhvhhx}r^ (UreftypeXtermhhXcgiU refdomainXstdr_ hz]h{]U refexplicith|]h}]h~]hhuhMhm]r` h)ra }rb (hrj] hx}rc (h|]h}]rd (hj_ Xstd-termre eh{]hz]h~]uhsj[ hm]rf hXCGIrg rh }ri (hrUhsja ubahvhubaubhX PHP see rj rk }rl (hrX PHP see hsj0 ubh)rm }rn (hrX:ref:`faq1_32`ro hsj0 hthuhvhhx}rp (UreftypeXrefhhXfaq1_32U refdomainXstdrq hz]h{]U refexplicith|]h}]h~]hhuhMhm]rr h)rs }rt (hrjo hx}ru (h|]h}]rv (hjq Xstd-refrw eh{]hz]h~]uhsjm hm]rx hXfaq1_32ry rz }r{ (hrUhsjs ubahvhubaubhX, for using with Apache r| r} }r~ (hrX, for using with Apache hsj0 ubh)r }r (hrX :term:`CGI`r hsj0 hthuhvhhx}r (UreftypeXtermhhXcgiU refdomainXstdr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r h)r }r (hrj hx}r (h|]h}]r (hj Xstd-termr eh{]hz]h~]uhsj hm]r hXCGIr r }r (hrUhsj ubahvhubaubhX see r r }r (hrX see hsj0 ubh)r }r (hrX:ref:`faq1_35`r hsj0 hthuhvhhx}r (UreftypeXrefhhXfaq1_35U refdomainXstdr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r h)r }r (hrj hx}r (h|]h}]r (hj Xstd-refr eh{]hz]h~]uhsj hm]r hXfaq1_35r r }r (hrUhsj ubahvhubaubhX.r }r (hrX.hsj0 ubeubaubj)r }r (hrXvSee also :ref:`faq4_4` about not using the :term:`.htaccess` mechanism along with ':term:`HTTP`' authentication mode. hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrXuSee also :ref:`faq4_4` about not using the :term:`.htaccess` mechanism along with ':term:`HTTP`' authentication mode.hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhm]r (hX See also r r }r (hrX See also hsj ubh)r }r (hrX :ref:`faq4_4`r hsj hthuhvhhx}r (UreftypeXrefhhXfaq4_4U refdomainXstdr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r h)r }r (hrj hx}r (h|]h}]r (hj Xstd-refr eh{]hz]h~]uhsj hm]r hXfaq4_4r r }r (hrUhsj ubahvhubaubhX about not using the r r }r (hrX about not using the hsj ubh)r }r (hrX:term:`.htaccess`r hsj hthuhvhhx}r (UreftypeXtermhhX .htaccessU refdomainXstdr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r h)r }r (hrj hx}r (h|]h}]r (hj Xstd-termr eh{]hz]h~]uhsj hm]r hX .htaccessr r }r (hrUhsj ubahvhubaubhX mechanism along with 'r r }r (hrX mechanism along with 'hsj ubh)r }r (hrX :term:`HTTP`r hsj hthuhvhhx}r (UreftypeXtermhhXhttpU refdomainXstdr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r h)r }r (hrj hx}r (h|]h}]r (hj Xstd-termr eh{]hz]h~]uhsj hm]r hXHTTPr r }r (hrUhsj ubahvhubaubhX' authentication mode.r r }r (hrX' authentication mode.hsj ubeubaubeubj)r }r (hrUhsj hthuhvjhx}r (hz]h{]h|]h}]h~]j]r (j XCookie; Authentication modeUindex-9r Utr ajuhMhhhm]ubho)r }r (hrUhsj hthuhvhwhx}r (hz]h{]h|]h}]h~]hj uhMhhhm]ubho)r }r (hrX .. _cookie:hsj hthuh}hvhwhx}r (hz]h{]h|]h}]h~]hhWuhMhhh}r j j shm]ubeubh)r }r (hrUhsj# hthuh}r hj shvhhx}r (h|]h}]h{]hz]r (hShWj eh~]r (hheuhMhhh}r (hWj j j uhm]r (h)r }r (hrXCookie authentication moder hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhhhm]r hXCookie authentication moder r }r (hrj hsj ubaubj )r }r (hrUhsj hthuhvjhx}r (jX*hz]h{]h|]h}]h~]uhMhhhm]r (j)r }r (hrXdUsername and password are stored in cookies during the session and password is deleted when it ends.hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrXdUsername and password are stored in cookies during the session and password is deleted when it ends.r hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhm]r hXdUsername and password are stored in cookies during the session and password is deleted when it ends.r r }r (hrj hsj ubaubaubj)r }r (hrX`With this mode, the user can truly log out of phpMyAdmin and log back in with the same username.hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrX`With this mode, the user can truly log out of phpMyAdmin and log back in with the same username.r hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhm]r hX`With this mode, the user can truly log out of phpMyAdmin and log back in with the same username.r r }r (hrj hsj ubaubaubj)r }r (hrXIf you want to allow users to enter any hostname to connect (rather than only servers that are configured in :file:`config.inc.php`), see the :config:option:`$cfg['AllowArbitraryServer']` directive.hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r! (hrXIf you want to allow users to enter any hostname to connect (rather than only servers that are configured in :file:`config.inc.php`), see the :config:option:`$cfg['AllowArbitraryServer']` directive.hsj hthuhvhhx}r" (h|]h}]h{]hz]h~]uhMhm]r# (hXmIf you want to allow users to enter any hostname to connect (rather than only servers that are configured in r$ r% }r& (hrXmIf you want to allow users to enter any hostname to connect (rather than only servers that are configured in hsj ubj )r' }r( (hrUhx}r) (hz]h{]h|]h}]r* Xfiler+ aUrolej+ h~]uhsj hm]r, hXconfig.inc.phpr- r. }r/ (hrXconfig.inc.phphsj' ubahvjubhX ), see the r0 r1 }r2 (hrX ), see the hsj ubj)r3 }r4 (hrUhx}r5 (hz]h{]h|]h}]h~]j]r6 ((jX$cfg['AllowArbitraryServer']r7 Uindex-10r8 j7 tr9 (jX2configuration option; $cfg['AllowArbitraryServer']j8 j7 tr: euhsj hm]hvjubho)r; }r< (hrUhx}r= (h|]h}]h{]hz]r> j8 ah~]uhsj hm]hvhwubh)r? }r@ (hrX-:config:option:`$cfg['AllowArbitraryServer']`rA hsj hthuhvhhx}rB (UreftypeXoptionhhj7 U refdomainXconfigrC hz]h{]U refexplicith|]h}]h~]hhuhMhm]rD j )rE }rF (hrjA hx}rG (h|]h}]rH (hjC X config-optionrI eh{]hz]h~]uhsj? hm]rJ hX$cfg['AllowArbitraryServer']rK rL }rM (hrUhsjE ubahvjubaubhX directive.rN rO }rP (hrX directive.hsj ubeubaubj)rQ }rR (hrXAs mentioned in the :ref:`require` section, having the ``mcrypt`` extension will speed up access considerably, but is not required. hsj hthuhvjhx}rS (h|]h}]h{]hz]h~]uhNhhhm]rT h)rU }rV (hrXAs mentioned in the :ref:`require` section, having the ``mcrypt`` extension will speed up access considerably, but is not required.hsjQ hthuhvhhx}rW (h|]h}]h{]hz]h~]uhMhm]rX (hXAs mentioned in the rY rZ }r[ (hrXAs mentioned in the hsjU ubh)r\ }r] (hrX:ref:`require`r^ hsjU hthuhvhhx}r_ (UreftypeXrefhhXrequireU refdomainXstdr` hz]h{]U refexplicith|]h}]h~]hhuhMhm]ra h)rb }rc (hrj^ hx}rd (h|]h}]re (hj` Xstd-refrf eh{]hz]h~]uhsj\ hm]rg hXrequirerh ri }rj (hrUhsjb ubahvhubaubhX section, having the rk rl }rm (hrX section, having the hsjU ubj )rn }ro (hrX ``mcrypt``hx}rp (h|]h}]h{]hz]h~]uhsjU hm]rq hXmcryptrr rs }rt (hrUhsjn ubahvjubhXB extension will speed up access considerably, but is not required.ru rv }rw (hrXB extension will speed up access considerably, but is not required.hsjU ubeubaubeubj)rx }ry (hrUhsj hthuhvjhx}rz (hz]h{]h|]h}]h~]j]r{ (j XSignon; Authentication modeUindex-11r| Utr} ajuhMhhhm]ubho)r~ }r (hrUhsj hthuhvhwhx}r (hz]h{]h|]h}]h~]hj| uhMhhhm]ubho)r }r (hrX.. _auth_signon:hsj hthuh}hvhwhx}r (hz]h{]h|]h}]h~]hhQuhMhhh}r j| j~ shm]ubeubh)r }r (hrUhsj# hthuh}r hj shvhhx}r (h|]h}]h{]hz]r (hDhQj| eh~]r (h heuhM hhh}r (hQj j| j~ uhm]r (h)r }r (hrXSignon authentication moder hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhM hhhm]r hXSignon authentication moder r }r (hrj hsj ubaubj )r }r (hrUhsj hthuhvjhx}r (jX*hz]h{]h|]h}]h~]uhM hhhm]r (j)r }r (hrXThis mode is a convenient way of using credentials from another application to authenticate to phpMyAdmin to implement single signon solution.hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrXThis mode is a convenient way of using credentials from another application to authenticate to phpMyAdmin to implement single signon solution.r hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhM hm]r hXThis mode is a convenient way of using credentials from another application to authenticate to phpMyAdmin to implement single signon solution.r r }r (hrj hsj ubaubaubj)r }r (hrXThe other application has to store login information into session data (see :config:option:`$cfg['Servers'][$i]['SignonSession']`) or you need to implement script to return the credentials (see :config:option:`$cfg['Servers'][$i]['SignonScript']`).hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrXThe other application has to store login information into session data (see :config:option:`$cfg['Servers'][$i]['SignonSession']`) or you need to implement script to return the credentials (see :config:option:`$cfg['Servers'][$i]['SignonScript']`).hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhm]r (hXLThe other application has to store login information into session data (see r r }r (hrXLThe other application has to store login information into session data (see hsj ubj)r }r (hrUhx}r (hz]h{]h|]h}]h~]j]r ((jX$$cfg['Servers'][$i]['SignonSession']r Uindex-12r j tr (jX:configuration option; $cfg['Servers'][$i]['SignonSession']j j tr euhsj hm]hvjubho)r }r (hrUhx}r (h|]h}]h{]hz]r j ah~]uhsj hm]hvhwubh)r }r (hrX5:config:option:`$cfg['Servers'][$i]['SignonSession']`r hsj hthuhvhhx}r (UreftypeXoptionhhj U refdomainXconfigr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r j )r }r (hrj hx}r (h|]h}]r (hj X config-optionr eh{]hz]h~]uhsj hm]r hX$$cfg['Servers'][$i]['SignonSession']r r }r (hrUhsj ubahvjubaubhXA) or you need to implement script to return the credentials (see r r }r (hrXA) or you need to implement script to return the credentials (see hsj ubj)r }r (hrUhx}r (hz]h{]h|]h}]h~]j]r ((jX#$cfg['Servers'][$i]['SignonScript']r Uindex-13r j tr (jX9configuration option; $cfg['Servers'][$i]['SignonScript']j j tr euhsj hm]hvjubho)r }r (hrUhx}r (h|]h}]h{]hz]r j ah~]uhsj hm]hvhwubh)r }r (hrX4:config:option:`$cfg['Servers'][$i]['SignonScript']`r hsj hthuhvhhx}r (UreftypeXoptionhhj U refdomainXconfigr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r j )r }r (hrj hx}r (h|]h}]r (hj X config-optionr eh{]hz]h~]uhsj hm]r hX#$cfg['Servers'][$i]['SignonScript']r r }r (hrUhsj ubahvjubaubhX).r r }r (hrX).hsj ubeubaubj)r }r (hrXWhen no credentials are available, the user is being redirected to :config:option:`$cfg['Servers'][$i]['SignonURL']`, where you should handle the login process. hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrXWhen no credentials are available, the user is being redirected to :config:option:`$cfg['Servers'][$i]['SignonURL']`, where you should handle the login process.hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhm]r (hXCWhen no credentials are available, the user is being redirected to r r }r (hrXCWhen no credentials are available, the user is being redirected to hsj ubj)r }r (hrUhx}r (hz]h{]h|]h}]h~]j]r ((jX $cfg['Servers'][$i]['SignonURL']r Uindex-14r j tr (jX6configuration option; $cfg['Servers'][$i]['SignonURL']j j tr euhsj hm]hvjubho)r }r (hrUhx}r (h|]h}]h{]hz]r j ah~]uhsj hm]hvhwubh)r }r (hrX1:config:option:`$cfg['Servers'][$i]['SignonURL']`r hsj hthuhvhhx}r (UreftypeXoptionhhj U refdomainXconfigr hz]h{]U refexplicith|]h}]h~]hhuhMhm]r j )r }r (hrj hx}r (h|]h}]r (hj X config-optionr eh{]hz]h~]uhsj hm]r hX $cfg['Servers'][$i]['SignonURL']r r }r (hrUhsj ubahvjubaubhX,, where you should handle the login process.r r }r (hrX,, where you should handle the login process.hsj ubeubaubeubh)r }r (hrXfThe very basic example of saving credentials in a session is available as :file:`examples/signon.php`:hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMhhhm]r (hXJThe very basic example of saving credentials in a session is available as r r }r (hrXJThe very basic example of saving credentials in a session is available as hsj ubj )r }r (hrUhx}r (hz]h{]h|]h}]r Xfiler aUrolej h~]uhsj hm]r! hXexamples/signon.phpr" r# }r$ (hrXexamples/signon.phphsj ubahvjubhX:r% }r& (hrX:hsj ubeubj)r' }r( (hrX~ 'Signon test'); $id = session_id(); /* Close that session */ session_write_close(); /* Redirect to phpMyAdmin (should use absolute URL here!) */ header('Location: ../index.php'); } else { /* Show simple form */ header('Content-Type: text/html; charset=utf-8'); echo '' . "\n"; ?> phpMyAdmin single signon example '; echo $_SESSION['PMA_single_signon_error_message']; echo '

'; } ?>
Username:
Password:
Host: (will use the one from config.inc.php by default)
Port: (will use the one from config.inc.php by default)
hsj hthuhvjhx}r) (jcdocutils.nodes reprunicode r* Xphpr+ r, }r- bh|]jjhz]h{]UsourceXI/mnt/autrexfs/phpmyadmin/release/phpMyAdmin-4.5.0-rc1/examples/signon.phph}]h~]uhMhhhm]r. hX~ 'Signon test'); $id = session_id(); /* Close that session */ session_write_close(); /* Redirect to phpMyAdmin (should use absolute URL here!) */ header('Location: ../index.php'); } else { /* Show simple form */ header('Content-Type: text/html; charset=utf-8'); echo '' . "\n"; ?> phpMyAdmin single signon example '; echo $_SESSION['PMA_single_signon_error_message']; echo '

'; } ?>
Username:
Password:
Host: (will use the one from config.inc.php by default)
Port: (will use the one from config.inc.php by default)
r/ r0 }r1 (hrUhsj' ubaubh)r2 }r3 (hrXiAlternatively you can also use this way to integrate with OpenID as shown in :file:`examples/openid.php`:hsj hthuhvhhx}r4 (h|]h}]h{]hz]h~]uhMhhhm]r5 (hXMAlternatively you can also use this way to integrate with OpenID as shown in r6 r7 }r8 (hrXMAlternatively you can also use this way to integrate with OpenID as shown in hsj2 ubj )r9 }r: (hrUhx}r; (hz]h{]h|]h}]r< Xfiler= aUrolej= h~]uhsj2 hm]r> hXexamples/openid.phpr? r@ }rA (hrXexamples/openid.phphsj9 ubahvjubhX:rB }rC (hrX:hsj2 ubeubj)rD }rE (hrX array( 'user' => 'root', 'password' => '', ), ); /** * Simple function to show HTML page with given content. * * @param string $contents Content to include in page * * @return void */ function Show_page($contents) { header('Content-Type: text/html; charset=utf-8'); echo '' . "\n"; ?> phpMyAdmin OpenID signon example ' . $_SESSION['PMA_single_signon_message'] . '

'; unset($_SESSION['PMA_single_signon_message']); } echo $contents; ?> OpenID:
'; Show_page($content); exit; } /* Grab identifier */ if (isset($_POST['identifier'])) { $identifier = $_POST['identifier']; } else if (isset($_SESSION['identifier'])) { $identifier = $_SESSION['identifier']; } else { $identifier = null; } /* Create OpenID object */ try { $o = new OpenID_RelyingParty($returnTo, $realm, $identifier); } catch (OpenID_Exception $e) { $contents = "
\n"; $contents .= "
" . $e->getMessage() . "
\n"; $contents .= "
"; Show_page($contents); exit; } /* Redirect to OpenID provider */ if (isset($_POST['start'])) { try { $authRequest = $o->prepare(); } catch (OpenID_Exception $e) { $contents = "
\n"; $contents .= "
" . $e->getMessage() . "
\n"; $contents .= "
"; Show_page($contents); exit; } $url = $authRequest->getAuthorizeURL(); header("Location: $url"); exit; } else { /* Grab query string */ if (!count($_POST)) { list(, $queryString) = explode('?', $_SERVER['REQUEST_URI']); } else { // I hate php sometimes $queryString = file_get_contents('php://input'); } /* Check reply */ $message = new OpenID_Message($queryString, OpenID_Message::FORMAT_HTTP); $id = $message->get('openid.claimed_id'); if (!empty($id) && isset($AUTH_MAP[$id])) { $_SESSION['PMA_single_signon_user'] = $AUTH_MAP[$id]['user']; $_SESSION['PMA_single_signon_password'] = $AUTH_MAP[$id]['password']; session_write_close(); /* Redirect to phpMyAdmin (should use absolute URL here!) */ header('Location: ../index.php'); } else { Show_page('

User not allowed!

'); exit; } } hsj hthuhvjhx}rF (jj* XphprG rH }rI bh|]jjhz]h{]UsourceXI/mnt/autrexfs/phpmyadmin/release/phpMyAdmin-4.5.0-rc1/examples/openid.phph}]h~]uhM!hhhm]rJ hX array( 'user' => 'root', 'password' => '', ), ); /** * Simple function to show HTML page with given content. * * @param string $contents Content to include in page * * @return void */ function Show_page($contents) { header('Content-Type: text/html; charset=utf-8'); echo '' . "\n"; ?> phpMyAdmin OpenID signon example ' . $_SESSION['PMA_single_signon_message'] . '

'; unset($_SESSION['PMA_single_signon_message']); } echo $contents; ?> OpenID:
'; Show_page($content); exit; } /* Grab identifier */ if (isset($_POST['identifier'])) { $identifier = $_POST['identifier']; } else if (isset($_SESSION['identifier'])) { $identifier = $_SESSION['identifier']; } else { $identifier = null; } /* Create OpenID object */ try { $o = new OpenID_RelyingParty($returnTo, $realm, $identifier); } catch (OpenID_Exception $e) { $contents = "
\n"; $contents .= "
" . $e->getMessage() . "
\n"; $contents .= "
"; Show_page($contents); exit; } /* Redirect to OpenID provider */ if (isset($_POST['start'])) { try { $authRequest = $o->prepare(); } catch (OpenID_Exception $e) { $contents = "
\n"; $contents .= "
" . $e->getMessage() . "
\n"; $contents .= "
"; Show_page($contents); exit; } $url = $authRequest->getAuthorizeURL(); header("Location: $url"); exit; } else { /* Grab query string */ if (!count($_POST)) { list(, $queryString) = explode('?', $_SERVER['REQUEST_URI']); } else { // I hate php sometimes $queryString = file_get_contents('php://input'); } /* Check reply */ $message = new OpenID_Message($queryString, OpenID_Message::FORMAT_HTTP); $id = $message->get('openid.claimed_id'); if (!empty($id) && isset($AUTH_MAP[$id])) { $_SESSION['PMA_single_signon_user'] = $AUTH_MAP[$id]['user']; $_SESSION['PMA_single_signon_password'] = $AUTH_MAP[$id]['password']; session_write_close(); /* Redirect to phpMyAdmin (should use absolute URL here!) */ header('Location: ../index.php'); } else { Show_page('

User not allowed!

'); exit; } } rK rL }rM (hrUhsjD ubaubh)rN }rO (hrXIf you intend to pass the credentials using some other means than, you have to implement wrapper in PHP to get that data and set it to :config:option:`$cfg['Servers'][$i]['SignonScript']`. There is very minimal example in :file:`examples/signon-script.php`:hsj hthuhvhhx}rP (h|]h}]h{]hz]h~]uhM$hhhm]rQ (hXIf you intend to pass the credentials using some other means than, you have to implement wrapper in PHP to get that data and set it to rR rS }rT (hrXIf you intend to pass the credentials using some other means than, you have to implement wrapper in PHP to get that data and set it to hsjN ubj)rU }rV (hrUhx}rW (hz]h{]h|]h}]h~]j]rX ((jX#$cfg['Servers'][$i]['SignonScript']rY Uindex-15rZ jY tr[ (jX9configuration option; $cfg['Servers'][$i]['SignonScript']jZ jY tr\ euhsjN hm]hvjubho)r] }r^ (hrUhx}r_ (h|]h}]h{]hz]r` jZ ah~]uhsjN hm]hvhwubh)ra }rb (hrX4:config:option:`$cfg['Servers'][$i]['SignonScript']`rc hsjN hthuhvhhx}rd (UreftypeXoptionhhjY U refdomainXconfigre hz]h{]U refexplicith|]h}]h~]hhuhM$hm]rf j )rg }rh (hrjc hx}ri (h|]h}]rj (hje X config-optionrk eh{]hz]h~]uhsja hm]rl hX#$cfg['Servers'][$i]['SignonScript']rm rn }ro (hrUhsjg ubahvjubaubhX#. There is very minimal example in rp rq }rr (hrX#. There is very minimal example in hsjN ubj )rs }rt (hrUhx}ru (hz]h{]h|]h}]rv Xfilerw aUrolejw h~]uhsjN hm]rx hXexamples/signon-script.phpry rz }r{ (hrXexamples/signon-script.phphsjs ubahvjubhX:r| }r} (hrX:hsjN ubeubj)r~ }r (hrX! hz]h{]U refexplicith|]h}]h~]hhuhM8hm]r? j )r@ }rA (hrj< hx}rB (h|]h}]rC (hj> X config-optionrD eh{]hz]h~]uhsj: hm]rE hX$cfg['Servers'][$i]['user']rF rG }rH (hrUhsj@ ubahvjubaubhX and rI rJ }rK (hrX and hsj' ubj)rL }rM (hrUhx}rN (hz]h{]h|]h}]h~]j]rO ((jX$cfg['Servers'][$i]['password']rP Uindex-22rQ jP trR (jX5configuration option; $cfg['Servers'][$i]['password']jQ jP trS euhsj' hm]hvjubho)rT }rU (hrUhx}rV (h|]h}]h{]hz]rW jQ ah~]uhsj' hm]hvhwubh)rX }rY (hrX0:config:option:`$cfg['Servers'][$i]['password']`rZ hsj' hthuhvhhx}r[ (UreftypeXoptionhhjP U refdomainXconfigr\ hz]h{]U refexplicith|]h}]h~]hhuhM8hm]r] j )r^ }r_ (hrjZ hx}r` (h|]h}]ra (hj\ X config-optionrb eh{]hz]h~]uhsjX hm]rc hX$cfg['Servers'][$i]['password']rd re }rf (hrUhsj^ ubahvjubaubhX3 fields (and as a result, anyone who can read your rg rh }ri (hrX3 fields (and as a result, anyone who can read your hsj' ubj )rj }rk (hrUhx}rl (hz]h{]h|]h}]rm Xfilern aUrolejn h~]uhsj' hm]ro hXconfig.inc.phprp rq }rr (hrXconfig.inc.phphsjj ubahvjubhX* can discover your username and password).rs rt }ru (hrX* can discover your username and password).hsj' ubeubaubj)rv }rw (hrXhIn the :ref:`faqmultiuser` section, there is an entry explaining how to protect your configuration file.hsj hthuhvjhx}rx (h|]h}]h{]hz]h~]uhNhhhm]ry h)rz }r{ (hrXhIn the :ref:`faqmultiuser` section, there is an entry explaining how to protect your configuration file.hsjv hthuhvhhx}r| (h|]h}]h{]hz]h~]uhM=hm]r} (hXIn the r~ r }r (hrXIn the hsjz ubh)r }r (hrX:ref:`faqmultiuser`r hsjz hthuhvhhx}r (UreftypeXrefhhX faqmultiuserU refdomainXstdr hz]h{]U refexplicith|]h}]h~]hhuhM=hm]r h)r }r (hrj hx}r (h|]h}]r (hj Xstd-refr eh{]hz]h~]uhsj hm]r hX faqmultiuserr r }r (hrUhsj ubahvhubaubhXN section, there is an entry explaining how to protect your configuration file.r r }r (hrXN section, there is an entry explaining how to protect your configuration file.hsjz ubeubaubj)r }r (hrXFor additional security in this mode, you may wish to consider the Host authentication :config:option:`$cfg['Servers'][$i]['AllowDeny']['order']` and :config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']` configuration directives.hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrXFor additional security in this mode, you may wish to consider the Host authentication :config:option:`$cfg['Servers'][$i]['AllowDeny']['order']` and :config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']` configuration directives.hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhM?hm]r (hXWFor additional security in this mode, you may wish to consider the Host authentication r r }r (hrXWFor additional security in this mode, you may wish to consider the Host authentication hsj ubj)r }r (hrUhx}r (hz]h{]h|]h}]h~]j]r ((jX)$cfg['Servers'][$i]['AllowDeny']['order']r Uindex-23r j tr (jX?configuration option; $cfg['Servers'][$i]['AllowDeny']['order']j j tr euhsj hm]hvjubho)r }r (hrUhx}r (h|]h}]h{]hz]r j ah~]uhsj hm]hvhwubh)r }r (hrX::config:option:`$cfg['Servers'][$i]['AllowDeny']['order']`r hsj hthuhvhhx}r (UreftypeXoptionhhj U refdomainXconfigr hz]h{]U refexplicith|]h}]h~]hhuhM?hm]r j )r }r (hrj hx}r (h|]h}]r (hj X config-optionr eh{]hz]h~]uhsj hm]r hX)$cfg['Servers'][$i]['AllowDeny']['order']r r }r (hrUhsj ubahvjubaubhX and r r }r (hrX and hsj ubj)r }r (hrUhx}r (hz]h{]h|]h}]h~]j]r ((jX)$cfg['Servers'][$i]['AllowDeny']['rules']r Uindex-24r j tr (jX?configuration option; $cfg['Servers'][$i]['AllowDeny']['rules']j j tr euhsj hm]hvjubho)r }r (hrUhx}r (h|]h}]h{]hz]r j ah~]uhsj hm]hvhwubh)r }r (hrX::config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']`r hsj hthuhvhhx}r (UreftypeXoptionhhj U refdomainXconfigr hz]h{]U refexplicith|]h}]h~]hhuhM?hm]r j )r }r (hrj hx}r (h|]h}]r (hj X config-optionr eh{]hz]h~]uhsj hm]r hX)$cfg['Servers'][$i]['AllowDeny']['rules']r r }r (hrUhsj ubahvjubaubhX configuration directives.r r }r (hrX configuration directives.hsj ubeubaubj)r }r (hrXUnlike cookie and http, does not require a user to log in when first loading the phpMyAdmin site. This is by design but could allow any user to access your installation. Use of some restriction method is suggested, perhaps a :term:`.htaccess` file with the HTTP-AUTH directive or disallowing incoming HTTP requests at one’s router or firewall will suffice (both of which are beyond the scope of this manual but easily searchable with Google). hsj hthuhvjhx}r (h|]h}]h{]hz]h~]uhNhhhm]r h)r }r (hrXUnlike cookie and http, does not require a user to log in when first loading the phpMyAdmin site. This is by design but could allow any user to access your installation. Use of some restriction method is suggested, perhaps a :term:`.htaccess` file with the HTTP-AUTH directive or disallowing incoming HTTP requests at one’s router or firewall will suffice (both of which are beyond the scope of this manual but easily searchable with Google).hsj hthuhvhhx}r (h|]h}]h{]hz]h~]uhMBhm]r (hXUnlike cookie and http, does not require a user to log in when first loading the phpMyAdmin site. This is by design but could allow any user to access your installation. Use of some restriction method is suggested, perhaps a r r }r (hrXUnlike cookie and http, does not require a user to log in when first loading the phpMyAdmin site. This is by design but could allow any user to access your installation. Use of some restriction method is suggested, perhaps a hsj ubh)r }r (hrX:term:`.htaccess`r hsj hthuhvhhx}r (UreftypeXtermhhX .htaccessU refdomainXstdr hz]h{]U refexplicith|]h}]h~]hhuhMBhm]r h)r }r (hrj hx}r (h|]h}]r (hj Xstd-termr eh{]hz]h~]uhsj hm]r hX .htaccessr r }r (hrUhsj ubahvhubaubhX file with the HTTP-AUTH directive or disallowing incoming HTTP requests at one’s router or firewall will suffice (both of which are beyond the scope of this manual but easily searchable with Google).r r }r (hrX file with the HTTP-AUTH directive or disallowing incoming HTTP requests at one’s router or firewall will suffice (both of which are beyond the scope of this manual but easily searchable with Google).hsj ubeubaubeubj)r }r (hrUhsj hthuhvjhx}r (hz]h{]h|]h}]h~]j]r (j XSwekey; Authentication modeUindex-25r Utr ajuhMJhhhm]ubho)r }r (hrUhsj hthuhvhwhx}r (hz]h{]h|]h}]h~]hj uhMKhhhm]ubho)r}r(hrX .. _swekey:hsj hthuh}hvhwhx}r(hz]h{]h|]h}]h~]hhkuhMLhhh}rj j shm]ubeubh)r}r(hrUhsj# hthuh}rh3jshvhhx}r(h|]h}]h{]hz]r(hdhkj eh~]r (h,h3euhMOhhh}r (hkjj j uhm]r (h)r }r (hrXSwekey authentication moderhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMOhhhm]rhXSwekey authentication moderr}r(hrjhsj ubaubh)r}r(hrX{The Swekey is a low cost authentication USB key that can be used in web applications. When Swekey authentication is activated, phpMyAdmin requires the users's Swekey to be plugged before entering the login page (currently supported for cookie authentication mode only). Swekey Authentication is disabled by default. To enable it, add the following line to :file:`config.inc.php`:hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMQhhhm]r(hXdThe Swekey is a low cost authentication USB key that can be used in web applications. When Swekey authentication is activated, phpMyAdmin requires the users's Swekey to be plugged before entering the login page (currently supported for cookie authentication mode only). Swekey Authentication is disabled by default. To enable it, add the following line to rr}r(hrXdThe Swekey is a low cost authentication USB key that can be used in web applications. When Swekey authentication is activated, phpMyAdmin requires the users's Swekey to be plugged before entering the login page (currently supported for cookie authentication mode only). Swekey Authentication is disabled by default. To enable it, add the following line to hsjubj )r}r(hrUhx}r(hz]h{]h|]h}]rXfileraUrolejh~]uhsjhm]r hXconfig.inc.phpr!r"}r#(hrXconfig.inc.phphsjubahvjubhX:r$}r%(hrX:hsjubeubj)r&}r'(hrX?$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey.conf';hsjhthuhvjhx}r((jjXphpjjhz]h{]h|]h}]h~]uhMXhhhm]r)hX?$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey.conf';r*r+}r,(hrUhsj&ubaubh)r-}r.(hrXYou then have to create the ``swekey.conf`` file that will associate each user with their Swekey Id. It is important to place this file outside of your web server's document root (in the example, it is located in ``/etc``). Feel free to use it with your own users' information. If you want to purchase a Swekey please visit `https://www.phpmyadmin.net/auth\_key/ `_ since this link provides funding for phpMyAdmin.hsjhthuhvhhx}r/(h|]h}]h{]hz]h~]uhM\hhhm]r0(hXYou then have to create the r1r2}r3(hrXYou then have to create the hsj-ubj )r4}r5(hrX``swekey.conf``hx}r6(h|]h}]h{]hz]h~]uhsj-hm]r7hX swekey.confr8r9}r:(hrUhsj4ubahvjubhX file that will associate each user with their Swekey Id. It is important to place this file outside of your web server's document root (in the example, it is located in r;r<}r=(hrX file that will associate each user with their Swekey Id. It is important to place this file outside of your web server's document root (in the example, it is located in hsj-ubj )r>}r?(hrX``/etc``hx}r@(h|]h}]h{]hz]h~]uhsj-hm]rAhX/etcrBrC}rD(hrUhsj>ubahvjubhXg). Feel free to use it with your own users' information. If you want to purchase a Swekey please visit rErF}rG(hrXg). Feel free to use it with your own users' information. If you want to purchase a Swekey please visit hsj-ubj_)rH}rI(hrXO`https://www.phpmyadmin.net/auth\_key/ `_hx}rJ(UnamehjcX$https://www.phpmyadmin.net/auth_key/rKhz]h{]h|]h}]h~]uhsj-hm]rLhX$https://www.phpmyadmin.net/auth_key/rMrN}rO(hrUhsjHubahvjiubho)rP}rQ(hrX' jlKhsj-hvhwhx}rR(UrefurijKhz]rSh@ah{]h|]h}]h~]rThauhm]ubhX1 since this link provides funding for phpMyAdmin.rUrV}rW(hrX1 since this link provides funding for phpMyAdmin.hsj-ubeubh)rX}rY(hrXZA self documented sample file is provided in the file :file:`examples/swekey.sample.conf`:hsjhthuhvhhx}rZ(h|]h}]h{]hz]h~]uhMdhhhm]r[(hX6A self documented sample file is provided in the file r\r]}r^(hrX6A self documented sample file is provided in the file hsjXubj )r_}r`(hrUhx}ra(hz]h{]h|]h}]rbXfilercaUrolejch~]uhsjXhm]rdhXexamples/swekey.sample.confrerf}rg(hrXexamples/swekey.sample.confhsj_ubahvjubhX:rh}ri(hrX:hsjXubeubj)rj}rk(hrX# This is a typical file used to enable Swekey hardware authentication. # # To activate the Swekey authentication add the following line to your config.inc.php file. # $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf'; # Then rename this file "swekey-pma.conf" and copy it to the /etc directory. # Add all the Swekey ids you want to grant access to in the file. # After each Swekey id put the corresponding user name. # # If you don't know the id of a Swekey just visit http://www.swekey.com?sel=support # while your Swekey is connected. # # If you need to purchase a Swekey please visit https://www.phpmyadmin.net/auth_key/ # since this link provides funding to PhpMyAdmin. # 0000000000000000000000000000763A:root 000000000000000000000000000089E4:steve 0000000000000000000000000000231E:scott # # It is recommended to include the following lines to contact the # authentication servers in SSL mode. # SERVER_CHECK=https://auth-check-ssl.musbe.net SERVER_RNDTOKEN=https://auth-rnd-gen-ssl.musbe.net SERVER_STATUS=https://auth-status-ssl.musbe.net # # The path of the root certificate file used to ensure a secure # communication with the authentication servers in SSL mode. # If not specified, will use musbe-ca.crt found in your # phpMyAdmin/libraries/auth/swekey. # #CA_FILE=/var/http-root/phpmyadmin/libraries/auth/swekey/musbe-ca.crt # # If your server receives many login requests, you can enable the random # token caching to accelerate the authentication process. # Token caching is enabled by default. # #ENABLE_TOKEN_CACHE=0 hsjhthuhvjhx}rl(jj* Xshrmrn}robh|]jjhz]h{]UsourceXQ/mnt/autrexfs/phpmyadmin/release/phpMyAdmin-4.5.0-rc1/examples/swekey.sample.confh}]h~]uhMghhhm]rphX# This is a typical file used to enable Swekey hardware authentication. # # To activate the Swekey authentication add the following line to your config.inc.php file. # $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf'; # Then rename this file "swekey-pma.conf" and copy it to the /etc directory. # Add all the Swekey ids you want to grant access to in the file. # After each Swekey id put the corresponding user name. # # If you don't know the id of a Swekey just visit http://www.swekey.com?sel=support # while your Swekey is connected. # # If you need to purchase a Swekey please visit https://www.phpmyadmin.net/auth_key/ # since this link provides funding to PhpMyAdmin. # 0000000000000000000000000000763A:root 000000000000000000000000000089E4:steve 0000000000000000000000000000231E:scott # # It is recommended to include the following lines to contact the # authentication servers in SSL mode. # SERVER_CHECK=https://auth-check-ssl.musbe.net SERVER_RNDTOKEN=https://auth-rnd-gen-ssl.musbe.net SERVER_STATUS=https://auth-status-ssl.musbe.net # # The path of the root certificate file used to ensure a secure # communication with the authentication servers in SSL mode. # If not specified, will use musbe-ca.crt found in your # phpMyAdmin/libraries/auth/swekey. # #CA_FILE=/var/http-root/phpmyadmin/libraries/auth/swekey/musbe-ca.crt # # If your server receives many login requests, you can enable the random # token caching to accelerate the authentication process. # Token caching is enabled by default. # #ENABLE_TOKEN_CACHE=0 rqrr}rs(hrUhsjjubaubj )rt}ru(hrX::config:option:`$cfg['Servers'][$i]['auth_swekey_config']`rvhsjhthuhvj hx}rw(h|]h}]h{]hz]h~]uhNhhhm]rxh)ry}rz(hrjvhsjththuhvhhx}r{(h|]h}]h{]hz]h~]uhMjhm]r|(j)r}}r~(hrUhx}r(hz]h{]h|]h}]h~]j]r((jX)$cfg['Servers'][$i]['auth_swekey_config']rUindex-26rjtr(jX?configuration option; $cfg['Servers'][$i]['auth_swekey_config']jjtreuhsjyhm]hvjubho)r}r(hrUhx}r(h|]h}]h{]hz]rjah~]uhsjyhm]hvhwubh)r}r(hrjvhsjyhthuhvhhx}r(UreftypeXoptionhhjU refdomainXconfigrhz]h{]U refexplicith|]h}]h~]hhuhMjhm]rj )r}r(hrjvhx}r(h|]h}]r(hjX config-optionreh{]hz]h~]uhsjhm]rhX)$cfg['Servers'][$i]['auth_swekey_config']rr}r(hrUhsjubahvjubaubeubaubeubeubh)r}r(hrUhshhthuhvhhx}r(h|]h}]h{]hz]rh\ah~]rh$auhMnhhhm]r(h)r}r(hrX%Securing your phpMyAdmin installationrhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMnhhhm]rhX%Securing your phpMyAdmin installationrr}r(hrjhsjubaubh)r}r(hrXThe phpMyAdmin team tries hard to make the application secure, however there are always ways to make your installation more secure:rhsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMphhhm]rhXThe phpMyAdmin team tries hard to make the application secure, however there are always ways to make your installation more secure:rr}r(hrjhsjubaubj )r}r(hrUhsjhthuhvjhx}r(jX*hz]h{]h|]h}]h~]uhMshhhm]r(j)r}r(hrXeRemove the ``setup`` directory from phpMyAdmin, you will probably not use it after the initial setup.hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXeRemove the ``setup`` directory from phpMyAdmin, you will probably not use it after the initial setup.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMshm]r(hX Remove the rr}r(hrX Remove the hsjubj )r}r(hrX ``setup``hx}r(h|]h}]h{]hz]h~]uhsjhm]rhXsetuprr}r(hrUhsjubahvjubhXQ directory from phpMyAdmin, you will probably not use it after the initial setup.rr}r(hrXQ directory from phpMyAdmin, you will probably not use it after the initial setup.hsjubeubaubj)r}r(hrXhProperly choose an authentication method - :ref:`cookie` is probably the best choice for shared hosting.hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXhProperly choose an authentication method - :ref:`cookie` is probably the best choice for shared hosting.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMuhm]r(hX+Properly choose an authentication method - rr}r(hrX+Properly choose an authentication method - hsjubh)r}r(hrX :ref:`cookie`rhsjhthuhvhhx}r(UreftypeXrefhhXcookieU refdomainXstdrhz]h{]U refexplicith|]h}]h~]hhuhMuhm]rh)r}r(hrjhx}r(h|]h}]r(hjXstd-refreh{]hz]h~]uhsjhm]rhXcookierr}r(hrUhsjubahvhubaubhX0 is probably the best choice for shared hosting.rr}r(hrX0 is probably the best choice for shared hosting.hsjubeubaubj)r}r(hrXIn case you don't want all MySQL users to be able to access phpMyAdmin, you can use :config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']` to limit them.hsjhthuhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]rh)r}r(hrXIn case you don't want all MySQL users to be able to access phpMyAdmin, you can use :config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']` to limit them.hsjhthuhvhhx}r(h|]h}]h{]hz]h~]uhMwhm]r(hXTIn case you don't want all MySQL users to be able to access phpMyAdmin, you can use rr}r(hrXTIn case you don't want all MySQL users to be able to access phpMyAdmin, you can use hsjubj)r}r(hrUhx}r(hz]h{]h|]h}]h~]j]r((jX)$cfg['Servers'][$i]['AllowDeny']['rules']rUindex-27rjtr(jX?configuration option; $cfg['Servers'][$i]['AllowDeny']['rules']jjtreuhsjhm]hvjubho)r}r(hrUhx}r(h|]h}]h{]hz]rjah~]uhsjhm]hvhwubh)r}r(hrX::config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']`rhsjhthuhvhhx}r(UreftypeXoptionhhjU refdomainXconfigrhz]h{]U refexplicith|]h}]h~]hhuhMwhm]rj )r}r(hrjhx}r(h|]h}]r(hjX config-optionreh{]hz]h~]uhsjhm]rhX)$cfg['Servers'][$i]['AllowDeny']['rules']rr}r(hrUhsjubahvjubaubhX to limit them.r r }r (hrX to limit them.hsjubeubaubj)r }r (hrXConsider hiding phpMyAdmin behind an authentication proxy, so that users need to authenticate prior to providing MySQL credentials to phpMyAdmin. You can achieve this by configuring your web server to request HTTP authentication. For example in Apache this can be done with: .. code-block:: apache AuthType Basic AuthName "Restricted Access" AuthUserFile /usr/share/phpmyadmin/passwd Require valid-user Once you have changed configuration, you need to create list of users which can authenticate. This can be done using the :program:`htpasswd` utility: .. code-block:: sh htpasswd -c /usr/share/phpmyadmin/passwd username hsjhtNhvjhx}r(h|]h}]h{]hz]h~]uhNhhhm]r(h)r}r(hrXConsider hiding phpMyAdmin behind an authentication proxy, so that users need to authenticate prior to providing MySQL credentials to phpMyAdmin. You can achieve this by configuring your web server to request HTTP authentication. For example in Apache this can be done with:rhsj hthuhvhhx}r(h|]h}]h{]hz]h~]uhMyhm]rhXConsider hiding phpMyAdmin behind an authentication proxy, so that users need to authenticate prior to providing MySQL credentials to phpMyAdmin. You can achieve this by configuring your web server to request HTTP authentication. For example in Apache this can be done with:rr}r(hrjhsjubaubj)r}r(hrXhAuthType Basic AuthName "Restricted Access" AuthUserFile /usr/share/phpmyadmin/passwd Require valid-userhsj hthuhvjhx}r(jjXapachejjhz]h{]h|]h}]h~]uhM~hm]rhXhAuthType Basic AuthName "Restricted Access" AuthUserFile /usr/share/phpmyadmin/passwd Require valid-userrr}r(hrUhsjubaubh)r}r (hrXOnce you have changed configuration, you need to create list of users which can authenticate. This can be done using the :program:`htpasswd` utility:hsj hthuhvhhx}r!(h|]h}]h{]hz]h~]uhMhm]r"(hXyOnce you have changed configuration, you need to create list of users which can authenticate. This can be done using the r#r$}r%(hrXyOnce you have changed configuration, you need to create list of users which can authenticate. This can be done using the hsjubj")r&}r'(hrX:program:`htpasswd`hx}r((h|]h}]r)j'ah{]hz]h~]uhsjhm]r*hXhtpasswdr+r,}r-(hrUhsj&ubahvj,ubhX utility:r.r/}r0(hrX utility:hsjubeubj)r1}r2(hrX1htpasswd -c /usr/share/phpmyadmin/passwd usernamehsj hthuhvjhx}r3(jjXshjjhz]h{]h|]h}]h~]uhMhm]r4hX1htpasswd -c /usr/share/phpmyadmin/passwd usernamer5r6}r7(hrUhsj1ubaubeubj)r8}r9(hrXIf you are afraid of automated attacks, enabling Captcha by :config:option:`$cfg['CaptchaLoginPublicKey']` and :config:option:`$cfg['CaptchaLoginPrivateKey']` might be an option.hsjhthuhvjhx}r:(h|]h}]h{]hz]h~]uhNhhhm]r;h)r<}r=(hrXIf you are afraid of automated attacks, enabling Captcha by :config:option:`$cfg['CaptchaLoginPublicKey']` and :config:option:`$cfg['CaptchaLoginPrivateKey']` might be an option.hsj8hthuhvhhx}r>(h|]h}]h{]hz]h~]uhMhm]r?(hX<If you are afraid of automated attacks, enabling Captcha by r@rA}rB(hrX<If you are afraid of automated attacks, enabling Captcha by hsj<ubj)rC}rD(hrUhx}rE(hz]h{]h|]h}]h~]j]rF((jX$cfg['CaptchaLoginPublicKey']rGUindex-28rHjGtrI(jX3configuration option; $cfg['CaptchaLoginPublicKey']jHjGtrJeuhsj<hm]hvjubho)rK}rL(hrUhx}rM(h|]h}]h{]hz]rNjHah~]uhsj<hm]hvhwubh)rO}rP(hrX.:config:option:`$cfg['CaptchaLoginPublicKey']`rQhsj<hthuhvhhx}rR(UreftypeXoptionhhjGU refdomainXconfigrShz]h{]U refexplicith|]h}]h~]hhuhMhm]rTj )rU}rV(hrjQhx}rW(h|]h}]rX(hjSX config-optionrYeh{]hz]h~]uhsjOhm]rZhX$cfg['CaptchaLoginPublicKey']r[r\}r](hrUhsjUubahvjubaubhX and r^r_}r`(hrX and hsj<ubj)ra}rb(hrUhx}rc(hz]h{]h|]h}]h~]j]rd((jX$cfg['CaptchaLoginPrivateKey']reUindex-29rfjetrg(jX4configuration option; $cfg['CaptchaLoginPrivateKey']jfjetrheuhsj<hm]hvjubho)ri}rj(hrUhx}rk(h|]h}]h{]hz]rljfah~]uhsj<hm]hvhwubh)rm}rn(hrX/:config:option:`$cfg['CaptchaLoginPrivateKey']`rohsj<hthuhvhhx}rp(UreftypeXoptionhhjeU refdomainXconfigrqhz]h{]U refexplicith|]h}]h~]hhuhMhm]rrj )rs}rt(hrjohx}ru(h|]h}]rv(hjqX config-optionrweh{]hz]h~]uhsjmhm]rxhX$cfg['CaptchaLoginPrivateKey']ryrz}r{(hrUhsjsubahvjubaubhX might be an option.r|r}}r~(hrX might be an option.hsj<ubeubaubeubeubeubehrUU transformerrNU footnote_refsr}rUrefnamesr}r(X,validating other keys on your public keyring]rjaaXmarc's key links to linus's key]rjmauUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhhU current_linerNUtransform_messagesr]r(cdocutils.nodes system_message r)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineKUtypeUINFOruhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX+Hyperlink target "setup" is not referenced.rr}r(hrUhsjubahvhubahvUsystem_messagerubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineKZUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX3Hyperlink target "quick-install" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineKUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX-Hyperlink target "index-0" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineKUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX2Hyperlink target "setup-script" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineKUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX,Hyperlink target "verify" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMXUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX-Hyperlink target "index-1" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMYUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX3Hyperlink target "linked-tables" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMhUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX-Hyperlink target "index-2" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX-Hyperlink target "index-3" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX-Hyperlink target "index-4" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]r hX/Hyperlink target "upgrading" is not referenced.r r }r (hrUhsjubahvhubahvjubj)r }r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsj hm]rhX-Hyperlink target "index-5" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX:Hyperlink target "authentication-modes" is not referenced.r r!}r"(hrUhsjubahvhubahvjubj)r#}r$(hrUhx}r%(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]r&h)r'}r((hrUhx}r)(h|]h}]h{]hz]h~]uhsj#hm]r*hX-Hyperlink target "index-6" is not referenced.r+r,}r-(hrUhsj'ubahvhubahvjubj)r.}r/(hrUhx}r0(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]r1h)r2}r3(hrUhx}r4(h|]h}]h{]hz]h~]uhsj.hm]r5hX-Hyperlink target "index-7" is not referenced.r6r7}r8(hrUhsj2ubahvhubahvjubj)r9}r:(hrUhx}r;(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]r<h)r=}r>(hrUhx}r?(h|]h}]h{]hz]h~]uhsj9hm]r@hX-Hyperlink target "index-8" is not referenced.rArB}rC(hrUhsj=ubahvhubahvjubj)rD}rE(hrUhx}rF(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rGh)rH}rI(hrUhx}rJ(h|]h}]h{]hz]h~]uhsjDhm]rKhX-Hyperlink target "index-9" is not referenced.rLrM}rN(hrUhsjHubahvhubahvjubj)rO}rP(hrUhx}rQ(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rRh)rS}rT(hrUhx}rU(h|]h}]h{]hz]h~]uhsjOhm]rVhX,Hyperlink target "cookie" is not referenced.rWrX}rY(hrUhsjSubahvhubahvjubj)rZ}r[(hrUhx}r\(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]r]h)r^}r_(hrUhx}r`(h|]h}]h{]hz]h~]uhsjZhm]rahX.Hyperlink target "index-10" is not referenced.rbrc}rd(hrUhsj^ubahvhubahvjubj)re}rf(hrUhx}rg(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rhh)ri}rj(hrUhx}rk(h|]h}]h{]hz]h~]uhsjehm]rlhX.Hyperlink target "index-11" is not referenced.rmrn}ro(hrUhsjiubahvhubahvjubj)rp}rq(hrUhx}rr(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rsh)rt}ru(hrUhx}rv(h|]h}]h{]hz]h~]uhsjphm]rwhX1Hyperlink target "auth-signon" is not referenced.rxry}rz(hrUhsjtubahvhubahvjubj)r{}r|(hrUhx}r}(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]r~h)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsj{hm]rhX.Hyperlink target "index-12" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-13" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-14" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM$Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-15" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM-Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-16" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM-Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-17" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM-Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-18" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM-Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-19" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM4Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-20" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM8Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-21" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM8Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-22" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM?Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-23" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineM?Utypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX.Hyperlink target "index-24" is not referenced.rr}r (hrUhsjubahvhubahvjubj)r }r (hrUhx}r (h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMKUtypejuhm]r h)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsj hm]rhX.Hyperlink target "index-25" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r}r(hrUhx}r(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMLUtypejuhm]rh)r}r(hrUhx}r(h|]h}]h{]hz]h~]uhsjhm]rhX,Hyperlink target "swekey" is not referenced.rr}r(hrUhsjubahvhubahvjubj)r }r!(hrUhx}r"(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMjUtypejuhm]r#h)r$}r%(hrUhx}r&(h|]h}]h{]hz]h~]uhsj hm]r'hX.Hyperlink target "index-26" is not referenced.r(r)}r*(hrUhsj$ubahvhubahvjubj)r+}r,(hrUhx}r-(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMwUtypejuhm]r.h)r/}r0(hrUhx}r1(h|]h}]h{]hz]h~]uhsj+hm]r2hX.Hyperlink target "index-27" is not referenced.r3r4}r5(hrUhsj/ubahvhubahvjubj)r6}r7(hrUhx}r8(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]r9h)r:}r;(hrUhx}r<(h|]h}]h{]hz]h~]uhsj6hm]r=hX.Hyperlink target "index-28" is not referenced.r>r?}r@(hrUhsj:ubahvhubahvjubj)rA}rB(hrUhx}rC(h|]UlevelKhz]h{]Usourcehuh}]h~]UlineMUtypejuhm]rDh)rE}rF(hrUhx}rG(h|]h}]h{]hz]h~]uhsjAhm]rHhX.Hyperlink target "index-29" is not referenced.rIrJ}rK(hrUhsjEubahvhubahvjubeUreporterrLNUid_startrMKU autofootnotesrN]rOU citation_refsrP}rQUindirect_targetsrR]rSUsettingsrT(cdocutils.frontend Values rUorV}rW(Ufootnote_backlinksrXKUrecord_dependenciesrYNU rfc_base_urlrZUhttp://tools.ietf.org/html/r[U tracebackr\Upep_referencesr]NUstrip_commentsr^NU toc_backlinksr_Uentryr`U language_coderaUenrbU datestamprcNU report_levelrdKU _destinationreNU halt_levelrfKU strip_classesrgNhNUerror_encoding_error_handlerrhUbackslashreplaceriUdebugrjNUembed_stylesheetrkUoutput_encoding_error_handlerrlUstrictrmU sectnum_xformrnKUdump_transformsroNU docinfo_xformrpKUwarning_streamrqNUpep_file_url_templaterrUpep-%04drsUexit_status_levelrtKUconfigruNUstrict_visitorrvNUcloak_email_addressesrwUtrim_footnote_reference_spacerxUenvryNUdump_pseudo_xmlrzNUexpose_internalsr{NUsectsubtitle_xformr|U source_linkr}NUrfc_referencesr~NUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUANSI_X3.4-1968rU_sourcerhuUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjmUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hQj hljh>jYhfjhGjhAjbjHjKhEj<j j j j h[j# hSj j| j hgjjj?jBhNjWhHjhJjj j hVjj j hLjj j hTj hMjpj j j8 j; hCjzh^j.j j# h_j%j j jjjjjjj!j$j j j j hXjh?jj j hdjhRjjjhajhBjhZjhUjJhOj# hWj hFjj3 j6 hYjrh@jPhIjzh]j+hPjjfjihbj h`hjZ j] jQ jT hchhjjbhej*jjj jj j j j hKjj j j j hijh\jhkjhhjAhDj uUsubstitution_namesr}rhvhhx}r(h|]hz]h{]Usourcehuh}]h~]uU footnotesr]rUrefidsr}r(hQ]rj ahk]rjahH]rjahL]rjahc]rhpaj ]rj ahA]rj_ahB]rjaj ]rj aj| ]rj~ aj ]rj ahO]rj aj]rjaj]rjahW]rj ahI]rjwaj ]rj aj ]rj auub.