Дозаливка

This commit is contained in:
2022-12-19 22:22:19 +02:00
parent 73d69cb0ae
commit 2f6517f5b3
22083 changed files with 494007 additions and 0 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,30 @@
.. _copyright:
Copyright
=========
.. code-block:: none
Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
Copyright (C) 2001-2013 Marc Delisle <marc_at_infomarc.info>
Olivier Müller <om_at_omnis.ch>
Robin Johnson <robbat2_at_users.sourceforge.net>
Alexander M. Turek <me_at_derrabus.de>
Michal Čihař <michal_at_cihar.com>
Garvin Hicking <me_at_supergarv.de>
Michael Keck <mkkeck_at_users.sourceforge.net>
Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
[check credits for more details]
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2, as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see `http://www.gnu.org/licenses/
<http://www.gnu.org/licenses/>`_.
+626
View File
@@ -0,0 +1,626 @@
.. _credits:
Credits
=======
Credits, in chronological order
+++++++++++++++++++++++++++++++
* Tobias Ratschiller <tobias\_at\_ratschiller.com>
* creator of the phpmyadmin project
* maintainer from 1998 to summer 2000
* Marc Delisle <marc\_at\_infomarc.info>
* multi-language version in December 1998
* various fixes and improvements
* :term:`SQL` analyser (most of it)
* current project maintainer
* maintains content on our website
* Olivier Müller <om\_at\_omnis.ch>
* started SourceForge phpMyAdmin project in March 2001
* sync'ed different existing CVS trees with new features and bugfixes
* multi-language improvements, dynamic language selection
* many bugfixes and improvements
* Loïc Chapeaux <lolo\_at\_phpheaven.net>
* rewrote and optimized javascript, DHTML and DOM stuff
* rewrote the scripts so they fit the :term:`PEAR` coding standards and
generate XHTML1.0 and CSS2 compliant codes
* improved the language detection system
* many bugfixes and improvements
* Robin Johnson <robbat2\_at\_users.sourceforge.net>
* database maintenance controls
* table type code
* Host authentication :term:`IP` Allow/Deny
* DB-based configuration (Not completed)
* :term:`SQL` parser and pretty-printer
* :term:`SQL` validator
* many bugfixes and improvements
* Armel Fauveau <armel.fauveau\_at\_globalis-ms.com>
* bookmarks feature
* multiple dump feature
* gzip dump feature
* zip dump feature
* Geert Lund <glund\_at\_silversoft.dk>
* various fixes
* moderator of the phpMyAdmin former users forum at phpwizard.net
* Korakot Chaovavanich <korakot\_at\_iname.com>
* "insert as new row" feature
* Pete Kelly <webmaster\_at\_trafficg.com>
* rewrote and fix dump code
* bugfixes
* Steve Alberty <alberty\_at\_neptunlabs.de>
* rewrote dump code for PHP4
* mySQL table statistics
* bugfixes
* Benjamin Gandon <gandon\_at\_isia.cma.fr>
* main author of the version 2.1.0.1
* bugfixes
* Alexander M. Turek <me\_at\_derrabus.de>
* MySQL 4.0 / 4.1 / 5.0 compatibility
* abstract database interface (PMA\_DBI) with MySQLi support
* privileges administration
* :term:`XML` exports
* various features and fixes
* German language file updates
* Mike Beck <mike.beck\_at\_web.de>
* automatic joins in QBE
* links column in printview
* Relation view
* Michal Čihař <michal\_at\_cihar.com>
* enhanced index creation/display feature
* feature to use a different charset for HTML than for MySQL
* improvements of export feature
* various features and fixes
* Czech language file updates
* created current website for phpMyAdmin
* Christophe Gesché from the "MySQL Form Generator for PHPMyAdmin"
(http://sf.net/projects/phpmysqlformgen/)
* suggested the patch for multiple table printviews
* Garvin Hicking <me\_at\_supergarv.de>
* built the patch for vertical display of table rows
* built the Javascript based Query window + :term:`SQL` history
* Improvement of column/db comments
* (MIME)-Transformations for columns
* Use custom alias names for Databases in left frame
* hierarchical/nested table display
* :term:`PDF`-scratchboard for WYSIWYG-
distribution of :term:`PDF` relations
* new icon sets
* vertical display of column properties page
* some bugfixes, features, support, German language additions
* Yukihiro Kawada <kawada\_at\_den.fujifilm.co.jp>
* japanese kanji encoding conversion feature
* Piotr Roszatycki <d3xter\_at\_users.sourceforge.net> and Dan Wilson
* the Cookie authentication mode
* Axel Sander <n8falke\_at\_users.sourceforge.net>
* table relation-links feature
* Maxime Delorme <delorme.maxime\_at\_free.fr>
* :term:`PDF` schema output, thanks also to
Olivier Plathey for the "FPDF" library (see <http://www.fpdf.org/>), Steven
Wittens for the "UFPDF" library (see <http://www.acko.net/node/56>) and
Nicola Asuni for the "TCPDF" library (see <http://www.tcpdf.org/>).
* Olof Edlund <olof.edlund\_at\_upright.se>
* :term:`SQL` validator server
* Ivan R. Lanin <ivanlanin\_at\_users.sourceforge.net>
* phpMyAdmin logo (until June 2004)
* Mike Cochrane <mike\_at\_graftonhall.co.nz>
* blowfish library from the Horde project (withdrawn in release 4.0)
* Marcel Tschopp <ne0x\_at\_users.sourceforge.net>
* mysqli support
* many bugfixes and improvements
* Nicola Asuni (Tecnick.com)
* TCPDF library (`http://www.tcpdf.org <http://www.tcpdf.org>`_)
* Michael Keck <mkkeck\_at\_users.sourceforge.net>
* redesign for 2.6.0
* phpMyAdmin sailboat logo (June 2004)
* Mathias Landhäußer
* Representation at conferences
* Sebastian Mendel <cybot\_tm\_at\_users.sourceforge.net>
* interface improvements
* various bugfixes
* Ivan A Kirillov
* new relations Designer
* Raj Kissu Rajandran (Google Summer of Code 2008)
* BLOBstreaming support (withdrawn in release 4.0)
* Piotr Przybylski (Google Summer of Code 2008, 2010 and 2011)
* improved setup script
* user preferences
* Drizzle support
* Derek Schaefer (Google Summer of Code 2009)
* Improved the import system
* Alexander Rutkowski (Google Summer of Code 2009)
* Tracking mechanism
* Zahra Naeem (Google Summer of Code 2009)
* Synchronization feature (removed in release 4.0)
* Tomáš Srnka (Google Summer of Code 2009)
* Replication support
* Muhammad Adnan (Google Summer of Code 2010)
* Relation schema export to multiple formats
* Lori Lee (Google Summer of Code 2010)
* User interface improvements
* ENUM/SET editor
* Simplified interface for export/import
* Ninad Pundalik (Google Summer of Code 2010)
* AJAXifying the interface
* Martynas Mickevičius (Google Summer of Code 2010)
* Charts
* Barrie Leslie
* BLOBstreaming support with PBMS PHP extension (withdrawn in release
4.0)
* Ankit Gupta (Google Summer of Code 2010)
* Visual query builder
* Madhura Jayaratne (Google Summer of Code 2011)
* OpenGIS support
* Ammar Yasir (Google Summer of Code 2011)
* Zoom search
* Aris Feryanto (Google Summer of Code 2011)
* Browse-mode improvements
* Thilanka Kaushalya (Google Summer of Code 2011)
* AJAXification
* Tyron Madlener (Google Summer of Code 2011)
* Query statistics and charts for the status page
* Zarubin Stas (Google Summer of Code 2011)
* Automated testing
* Rouslan Placella (Google Summer of Code 2011 and 2012)
* Improved support for Stored Routines, Triggers and Events
* Italian translation updates
* Removal of frames, new navigation
* Dieter Adriaenssens
* Various bugfixes
* Dutch translation updates
* Alex Marin (Google Summer of Code 2012)
* New plugins and properties system
* Thilina Buddika Abeyrathna (Google Summer of Code 2012)
* Refactoring
* Atul Pratap Singh (Google Summer of Code 2012)
* Refactoring
* Chanaka Indrajith (Google Summer of Code 2012)
* Refactoring
* Yasitha Pandithawatta (Google Summer of Code 2012)
* Automated testing
* Jim Wigginton (phpseclib.sourceforge.net)
* phpseclib
* Bin Zu (Google Summer of Code 2013)
* Refactoring
* Supun Nakandala (Google Summer of Code 2013)
* Refactoring
* Mohamed Ashraf (Google Summer of Code 2013)
* AJAX error reporting
* Adam Kang (Google Summer of Code 2013)
* Automated testing
* Ayush Chaudhary (Google Summer of Code 2013)
* Automated testing
* Kasun Chathuranga (Google Summer of Code 2013)
* Interface improvements
And also to the following people who have contributed minor changes,
enhancements, bugfixes or support for a new language since version
2.1.0:
Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow, Mats
Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger,
Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg,
Andreas Pauley, Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval
Sarna, www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun,
Peter Svec, Michael Tacelosky, Rachim Tamsjadi, Kositer Uros, Luís V.,
Martijn W. van der Lee, Algis Vainauskas, Daniel Villanueva, Vinay,
Ignacio Vazquez-Abrams, Chee Wai, Jakub Wilk, Thomas Michael
Winningham, Vilius Zigmantas, "Manuzhai".
Translators
+++++++++++
Following people have contributed to translation of phpMyAdmin:
* Arabic
* Abdullah Al-Saedi <abdullah.10\_at\_windowslive.com>
* Bulgarian
* stoyanster <stoyanster\_at\_gmail.com>
* Catalan
* Xavier Navarro <xvnavarro\_at\_gmail.com>
* Czech
* Michal Čihař <michal\_at\_cihar.com>
* Danish
* opensource <opensource\_at\_jth.net>
* Jørgen Thomsen <opensource\_at\_jth.net>
* German
* mrbendig <mrbendig\_at\_mrbendig.com>
* torsten.funck <torsten.funck\_at\_googlemail.com>
* Sven Strickroth <email\_at\_cs-ware.de>
* typo3 <typo3\_at\_dirk-weise.de>
* Jo Michael <me\_at\_mynetx.net>
* Greek
* Panagiotis Papazoglou <papaz_p\_at\_yahoo.com>
* English (United Kingdom)
* Robert Readman <robert_readman\_at\_hotmail.com>
* Spanish
* Matías Bellone <matiasbellone\_at\_gmail.com>
* French
* Marc Delisle <marc\_at\_infomarc.info>
* Hindi
* u4663530 <u4663530\_at\_anu.edu.au>
* rsedwardian <rsedwardian\_at\_gmail.com>
* Hungarian
* gergo314 <gergo314\_at\_gmail.com>
* Italian
* Rouslan Placella <rouslan\_at\_placella.com>
* Japanese
* Yuichiro <yuichiro\_at\_pop07.odn.ne.jp>
* Lithuanian
* Kęstutis <forkik\_at\_gmail.com>
* Norwegian Bokmål
* Sven-Erik Andersen <sven.erik.andersen\_at\_gmail.com>
* Dutch
* Dieter Adriaenssens <ruleant\_at\_users.sourceforge.net>
* Herman van Rink <rink\_at\_initfour.nl>
* Polish
* Stanisław Krukowski <stankruk\_at\_neostrada.pl>
* Marcin Kozioł <lord_dark\_at\_wp.pl>
* Portuguese
* JoaoTMDias <contacto\_at\_joaodias.me>
* Portuguese (Brazil)
* wiltave <wiltave\_at\_gmail.com>
* emerson4br <emerson4br\_at\_gmail.com>
* Romanian
* alexukf <alex.ukf\_at\_gmail.com>
* Russian
* Victor Volkov <hanut\_at\_php-myadmin.ru>
* Sinhala
* Madhura Jayaratne <madhura.cj\_at\_gmail.com>
* Slovak
* Martin Lacina <martin\_at\_whistler.sk>
* Slovenian
* Domen <dbc334\_at\_gmail.com>
* Swedish
* stefan <stefan\_at\_inkopsforum.se>
* Tamil
* ysajeepan <ysajeepan\_at\_live.com>
* Telugu
* veeven <veeven\_at\_gmail.com>
* Thai
* kanitchet <kanichet\_at\_hotmail.com>
* Turkish
* Burak Yavuz <hitowerdigit\_at\_hotmail.com>
* Uighur
* gheni <gheni\_at\_yahoo.cn>
* Ukrainian
* typim <duke3d\_at\_ukr.net>
* oleg-ilnytskyi <ukraine.oleg\_at\_gmail.com>
* Urdu
* Mehbooob Khan <mehboobbugti\_at\_gmail.com>
* Simplified Chinese
* shanyan baishui <Siramizu\_at\_gmail.com>
* Traditional Chinese
* star <star\_at\_origin.club.tw>
Documentation translators
+++++++++++++++++++++++++
Following people have contributed to translation of phpMyAdmin documentation:
* Czech
* Michal Čihař <michal\_at\_cihar.com>
* Greek
* Panagiotis Papazoglou <papaz_p\_at\_yahoo.com>
* English (United Kingdom)
* Robert Readman <robert_readman\_at\_hotmail.com>
* French
* Cédric Corazza <cedric.corazza\_at\_wanadoo.fr>
* Japanese
* Yuichiro Takahashi <yuichiro\_at\_pop07.odn.ne.jp>
* Polish
* Stanisław Krukowski <stankruk\_at\_neostrada.pl>
* Portuguese (Brazil)
* mjaning <mjaning\_at\_gmail.com>
* Slovenian
* Domen <dbc334\_at\_gmail.com>
Original Credits of Version 2.1.0
+++++++++++++++++++++++++++++++++
This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his
idea to create a web-based interface to MySQL using PHP3. Although I
have not used any of his source-code, there are some concepts I've
borrowed from him. phpMyAdmin was created because Peter told me he
wasn't going to further develop his (great) tool.
Thanks go to
* Amalesh Kempf <ak-lsml\_at\_living-source.com> who contributed the
code for the check when dropping a table or database. He also
suggested that you should be able to specify the primary key on
tbl\_create.php3. To version 1.1.1 he contributed the ldi\_\*.php3-set
(Import text-files) as well as a bug-report. Plus many smaller
improvements.
* Jan Legenhausen <jan\_at\_nrw.net>: He made many of the changes that
were introduced in 1.3.0 (including quite significant ones like the
authentication). For 1.4.1 he enhanced the table-dump feature. Plus
bug-fixes and help.
* Marc Delisle <DelislMa\_at\_CollegeSherbrooke.qc.ca> made phpMyAdmin
language-independent by outsourcing the strings to a separate file. He
also contributed the French translation.
* Alexandr Bravo <abravo\_at\_hq.admiral.ru> who contributed
tbl\_select.php3, a feature to display only some columns from a table.
* Chris Jackson <chrisj\_at\_ctel.net> added support for MySQL functions
in tbl\_change.php3. He also added the "Query by Example" feature in
2.0.
* Dave Walton <walton\_at\_nordicdms.com> added support for multiple
servers and is a regular contributor for bug-fixes.
* Gabriel Ash <ga244\_at\_is8.nyu.edu> contributed the random access
features for 2.0.6.
The following people have contributed minor changes, enhancements,
bugfixes or support for a new language:
Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas
Kleemann, Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel
Piankov, Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein,
Jannis Hermanns, G. Wieggers.
And thanks to everyone else who sent me email with suggestions, bug-
reports and or just some feedback.
@@ -0,0 +1,12 @@
.. _developers:
Developers Information
======================
phpMyAdmin is Open Source, so you're invited to contribute to it. Many
great features have been written by other people and you too can help
to make phpMyAdmin a useful tool.
You can check out all the possibilities to contribute in the
`contribute section on our website
<http://www.phpmyadmin.net/home_page/improve.php>`_.
File diff suppressed because it is too large Load Diff
+406
View File
@@ -0,0 +1,406 @@
.. _glossary:
Glossary
========
From Wikipedia, the free encyclopedia
.. glossary::
.htaccess
the default name of Apache's directory-level configuration file.
.. seealso:: <http://www.wikipedia.org/wiki/.htaccess>
ACL
Access Contol List
Blowfish
a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier.
.. seealso:: <http://www.wikipedia.org/wiki/Blowfish_(cipher)>
Browser
a software application that enables a user to display and interact with text, images, and other information typically located on a web page at a website on the World Wide Web.
.. seealso:: <http://en.wikipedia.org/wiki/Web_browser>
bzip2
a free software/open source data compression algorithm and program developed by Julian Seward.
.. seealso:: <http://www.wikipedia.org/wiki/Bzip2>
CGI
Common Gateway Interface is an important World Wide Web technology that
enables a client web browser to request data from a program executed on
the Web server.
.. seealso:: <http://www.wikipedia.org/wiki/CGI>
Changelog
a log or record of changes made to a project.
.. seealso:: <http://www.wikipedia.org/wiki/Changelog>
Client
a computer system that accesses a (remote) service on another computer by some kind of network.
.. seealso:: <http://www.wikipedia.org/wiki/Client_(computing)>
column
a set of data values of a particular simple type, one for each row of the table.
.. seealso:: <http://www.wikipedia.org/wiki/Column_(database)>
Cookie
a packet of information sent by a server to a World Wide Web browser and then sent back by the browser each time it accesses that server.
.. seealso:: <http://www.wikipedia.org/wiki/HTTP_cookie>
CSV
Comma- separated values
.. seealso:: <http://www.wikipedia.org/wiki/Comma-separated_values>
DB
look at :term:`database`
database
an organized collection of data.
.. seealso:: <http://www.wikipedia.org/wiki/Database>
Engine
look at :term:`storage engines`
extension
a PHP module that extends PHP with additional functionality.
.. seealso:: <http://www.wikipedia.org/wiki/extension>
FAQ
Frequently Asked Questions is a list of commonly asked question and there
answers.
.. seealso:: <http://www.wikipedia.org/wiki/FAQ>
Field
one part of divided data/columns.
.. seealso:: <http://www.wikipedia.org/wiki/Field_(computer_science)>
foreign key
a column or group of columns in a database row that point to a key column
or group of columns forming a key of another database row in some
(usually different) table.
.. seealso:: <http://www.wikipedia.org/wiki/Foreign_key>
FPDF
the free :term:`PDF` library
.. seealso:: <http://www.fpdf.org/>
GD
Graphics Library by Thomas Boutell and others for dynamically manipulating images.
.. seealso:: <http://www.wikipedia.org/wiki/GD_Graphics_Library>
GD2
look at :term:`gd`
gzip
gzip is short for GNU zip, a GNU free software file compression program.
.. seealso:: <http://www.wikipedia.org/wiki/Gzip>
host
any machine connected to a computer network, a node that has a hostname.
.. seealso:: <http://www.wikipedia.org/wiki/Host>
hostname
the unique name by which a network attached device is known on a network.
.. seealso:: <http://www.wikipedia.org/wiki/Hostname>
HTTP
HyperText Transfer Protocol is the primary method used to transfer or
convey information on the World Wide Web.
.. seealso:: <http://www.wikipedia.org/wiki/HyperText_Transfer_Protocol>
https
a :term:`HTTP`-connection with additional security measures.
.. seealso:: <http://www.wikipedia.org/wiki/Https:_URI_scheme>
IEC
International Electrotechnical Commission
IIS
Internet Information Services is a set of Internet-based services for
servers using Microsoft Windows.
.. seealso:: <http://www.wikipedia.org/wiki/Internet_Information_Services>
Index
a feature that allows quick access to the rows in a table.
.. seealso:: <http://www.wikipedia.org/wiki/Index_(database)>
IP
Internet Protocol is a data-oriented protocol used by source and
destination hosts for communicating data across a packet-switched
internetwork.
.. seealso:: <http://www.wikipedia.org/wiki/Internet_Protocol>
IP Address
a unique number that devices use in order to identify and communicate with each other on a network utilizing the Internet Protocol standard.
.. seealso:: <http://www.wikipedia.org/wiki/IP_Address>
IPv6
IPv6 (Internet Protocol version 6) is the latest revision of the
Internet Protocol (:term:`IP`), designed to deal with the
long-anticipated problem of its precedessor IPv4 running out of addresses.
.. seealso:: <http://www.wikipedia.org/wiki/IPv6>
ISAPI
Internet Server Application Programming Interface is the API of Internet Information Services (IIS).
.. seealso:: <http://www.wikipedia.org/wiki/ISAPI>
ISP
Internet service provider is a business or organization that offers users
access to the Internet and related services.
.. seealso:: <http://www.wikipedia.org/wiki/ISP>
ISO
International Standards Organisation
JPEG
a most commonly used standard method of lossy compression for photographic images.
.. seealso:: <http://www.wikipedia.org/wiki/JPEG>
JPG
look at :term:`jpeg`
Key
look at :term:`index`
LATEX
a document preparation system for the TEX typesetting program.
.. seealso:: <http://www.wikipedia.org/wiki/LaTeX>
Mac
Apple Macintosh is line of personal computers is designed, developed, manufactured, and marketed by Apple Computer.
.. seealso:: <http://www.wikipedia.org/wiki/Mac>
Mac OS X
the operating system which is included with all currently shipping Apple Macintosh computers in the consumer and professional markets.
.. seealso:: <http://www.wikipedia.org/wiki/Mac_OS_X>
MCrypt
a cryptographic library.
.. seealso:: <http://www.wikipedia.org/wiki/MCrypt>
mcrypt
the MCrypt PHP extension.
.. seealso:: <http://php.net/mcrypt>
MIME
Multipurpose Internet Mail Extensions is
an Internet Standard for the format of e-mail.
.. seealso:: <http://www.wikipedia.org/wiki/MIME>
module
some sort of extension for the Apache Webserver.
.. seealso:: <http://www.wikipedia.org/wiki/module>
MySQL
a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS).
.. seealso:: <http://www.wikipedia.org/wiki/MySQL>
mysqli
the improved MySQL client PHP extension.
.. seealso:: <http://php.net/mysqli>
mysql
the MySQL client PHP extension.
.. seealso:: <http://php.net/mysql>
OpenDocument
open standard for office documents.
.. seealso:: <http://www.wikipedia.org/wiki/OpenDocument>
OS X
look at :term:`Mac OS X`.
.. seealso:: <http://www.wikipedia.org/wiki/OS_X>
PDF
Portable Document Format is a file format developed by Adobe Systems for
representing two dimensional documents in a device independent and
resolution independent format.
.. seealso:: <http://www.wikipedia.org/wiki/Portable_Document_Format>
PEAR
the PHP Extension and Application Repository.
.. seealso:: <http://pear.php.net/>
PCRE
Perl Compatible Regular Expressions is the perl-compatible regular
expression functions for PHP
.. seealso:: <http://php.net/pcre>
PHP
short for "PHP: Hypertext Preprocessor", is an open-source, reflective
programming language used mainly for developing server-side applications
and dynamic web content, and more recently, a broader range of software
applications.
.. seealso:: <http://www.wikipedia.org/wiki/PHP>
port
a connection through which data is sent and received.
.. seealso:: <http://www.wikipedia.org/wiki/Port_(computing)>
RFC
Request for Comments (RFC) documents are a series of memoranda
encompassing new research, innovations, and methodologies applicable to
Internet technologies.
.. seealso:: <http://www.wikipedia.org/wiki/Request_for_Comments>
RFC 1952
GZIP file format specification version 4.3
.. seealso:: :rfc:`1952`
Row (record, tuple)
represents a single, implicitly structured data item in a table.
.. seealso:: <http://www.wikipedia.org/wiki/Row_(database)>
Server
a computer system that provides services to other computing systems over a network.
.. seealso:: <http://www.wikipedia.org/wiki/Server_(computing)>
Storage Engines
handlers for different table types
.. seealso:: <http://dev.mysql.com/doc/en/storage-engines.html>
SOAP
Simple Object Access Protocol is a protocol specification for exchanging
structured information in the implementation of Web Services in computer
networks.
.. seealso:: <http://en.wikipedia.org/wiki/SOAP>
socket
a form of inter-process communication.
.. seealso:: <http://www.wikipedia.org/wiki/Socket#Computer_sockets>
SSL
Secure Sockets Layer is a cryptographic protocol which provides secure
communication on the Internet.
.. seealso:: <http://www.wikipedia.org/wiki/Secure_Sockets_Layer>
Stored procedure
a subroutine available to applications accessing a relational database system
.. seealso:: <http://en.wikipedia.org/wiki/Stored_procedure>
SQL
Structured Query Language
.. seealso:: <http://www.wikipedia.org/wiki/SQL>
table
a set of data elements (cells) that is organized, defined and stored as
horizontal rows and vertical columns where each item can be uniquely
identified by a label or key or by it?s position in relation to other
items.
.. seealso:: <http://www.wikipedia.org/wiki/Table_(database)>
tar
a type of archive file format: the Tape ARchive format.
.. seealso:: <http://www.wikipedia.org/wiki/Tar_(file_format)>
TCP
Transmission Control Protocol is one of the core protocols of the
Internet protocol suite.
.. seealso:: <http://www.wikipedia.org/wiki/TCP>
TCPDF
Rewrite of :term:`UFPDF` with various improvements.
.. seealso:: <http://www.tcpdf.org/>
trigger
a procedural code that is automatically executed in response to certain events on a particular table or view in a database
.. seealso:: <http://en.wikipedia.org/wiki/Database_trigger>
UFPDF
Unicode/UTF-8 extension for :term:`FPDF`
.. seealso:: <http://www.acko.net/node/56>
URL
Uniform Resource Locator is a sequence of characters, conforming to a
standardized format, that is used for referring to resources, such as
documents and images on the Internet, by their location.
.. seealso:: <http://www.wikipedia.org/wiki/URL>
Webserver
A computer (program) that is responsible for accepting HTTP requests from clients and serving them Web pages.
.. seealso:: <http://www.wikipedia.org/wiki/Webserver>
XML
Extensible Markup Language is a W3C-recommended general- purpose markup
language for creating special-purpose markup languages, capable of
describing many different kinds of data.
.. seealso:: <http://www.wikipedia.org/wiki/XML>
ZIP
a popular data compression and archival format.
.. seealso:: <http://www.wikipedia.org/wiki/ZIP_(file_format)>
zlib
an open-source, cross- platform data compression library by Jean-loup Gailly and Mark Adler.
.. seealso:: <http://www.wikipedia.org/wiki/Zlib>
+32
View File
@@ -0,0 +1,32 @@
.. phpMyAdmin documentation master file, created by
sphinx-quickstart on Wed Sep 26 14:04:48 2012.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to phpMyAdmin's documentation!
======================================
Contents:
.. toctree::
:maxdepth: 2
intro
require
setup
config
user
faq
developers
vendors
copyright
credits
glossary
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`
* :ref:`glossary`
+68
View File
@@ -0,0 +1,68 @@
.. _intro:
Introduction
============
phpMyAdmin can manage a whole MySQL server (needs a super-user) as
well as a single database. To accomplish the latter you'll need a
properly set up MySQL user who can read/write only the desired
database. It's up to you to look up the appropriate part in the MySQL
manual.
Supported features
------------------
Currently phpMyAdmin can:
* browse and drop databases, tables, views, columns and indexes
* display multiple results sets through stored procedures or queries
* create, copy, drop, rename and alter databases, tables, columns and
indexes
* maintenance server, databases and tables, with proposals on server
configuration
* execute, edit and bookmark any :term:`SQL`-statement, even batch-queries
* load text files into tables
* create [#f1]_ and read dumps of tables
* export [#f1]_ data to various formats: :term:`CSV`, :term:`XML`, :term:`PDF`,
:term:`ISO`/:term:`IEC` 26300 - :term:`OpenDocument` Text and Spreadsheet, Microsoft
Word 2000, and LATEX formats
* import data and :term:`MySQL` structures from :term:`OpenDocument` spreadsheets, as
well as :term:`XML`, :term:`CSV`, and :term:`SQL` files
* administer multiple servers
* manage MySQL users and privileges
* check referential integrity in MyISAM tables
* using Query-by-example (QBE), create complex queries automatically
connecting required tables
* create :term:`PDF` graphics of your
database layout
* search globally in a database or a subset of it
* transform stored data into any format using a set of predefined
functions, like displaying BLOB-data as image or download-link
* track changes on databases, tables and views
* support InnoDB tables and foreign keys see :ref:`faq3_6`
* support mysqli, the improved MySQL extension see :ref:`faq1_17`
* create, edit, call, export and drop stored procedures and functions
* create, edit, export and drop events and triggers
* communicate in `62 different languages
<http://www.phpmyadmin.net/home_page/translations.php>`_
A word about users
------------------
Many people have difficulty understanding the concept of user
management with regards to phpMyAdmin. When a user logs in to
phpMyAdmin, that username and password are passed directly to MySQL.
phpMyAdmin does no account management on its own (other than allowing
one to manipulate the MySQL user account information); all users must
be valid MySQL users.
.. rubric:: Footnotes
.. [#f1]
phpMyAdmin can compress (:term:`Zip`, :term:`GZip` or :term:`RFC 1952`
formats) dumps and :term:`CSV` exports if you use PHP with
:term:`Zlib` support (``--with-zlib``).
Proper support may also need changes in :file:`php.ini`.
+18
View File
@@ -0,0 +1,18 @@
Other sources of information
============================
Printed Book
------------
The definitive guide to using phpMyAdmin is the book Mastering phpMyAdmin for
Effective MySQL Management by Marc Delisle. You can get information on that
book and other officially endorsed `books at the phpMyAdmin site`_.
.. _books at the phpMyAdmin site: http://www.phpmyadmin.net/home_page/docs.php?books
Tutorials
---------
Third party tutorials and articles are listed on our `wiki page`_.
.. _wiki page: http://wiki.phpmyadmin.net/pma/Articles
@@ -0,0 +1,50 @@
User management
===============
User management is the process of controlling which users are allowed to
connect to the MySQL server and what permissions they have on each database.
phpMyAdmin does not handle user management, rather it passes the username and
password on to MySQL, which then determines whether a user is permitted to
perform a particular action. Within phpMyAdmin, administrators have full
control over creating users, viewing and editing privileges for existing users,
and removing users.
Within phpMyAdmin, user management is controlled via the :guilabel:`Users` link
from the main page. Users can be created, edited, and removed.
Creating a new user
-------------------
To create a new user, click the :guilabel:`Add a new user` link near the bottom
of the :guilabel:`Users` page (you must be a "superuser", e.g., user "root").
Use the textboxes and drop-downs to configure the user to your particular
needs. You can then select whether to create a database for that user and grant
specific global privileges. Once you've created the user (by clicking Go), you
can define that user's permissions on a specific database (don't grant global
privileges in that case). In general, users do not need any global privileges
(other than USAGE), only permissions for their specific database.
Editing an existing user
------------------------
To edit an existing user, simply click the pencil icon to the right of that
user in the :guilabel:`Users` page. You can then edit their global- and
database-specific privileges, change their password, or even copy those
privileges to a new user.
Deleting a user
---------------
From the :guilabel:`Users` page, check the checkbox for the user you wish to
remove, select whether or not to also remove any databases of the same name (if
they exist), and click Go.
Assigning privileges to user for a specific database
----------------------------------------------------
Users are assigned to databases by editing the user record (from the
:guilabel:`Users` link on the home page) not from within the :guilabel:`Users`
link under the table. If you are creating a user specifically for a given table
you will have to create the user first (with no global privileges) and then go
back and edit that user to add the table and privileges for the individual
table.
+53
View File
@@ -0,0 +1,53 @@
.. _require:
Requirements
============
Web server
----------
Since, phpMyAdmin's interface is based entirely in your browser, you'll need a
web server (such as Apache, :term:`IIS`) to install phpMyAdmin's files into.
PHP
---
* You need PHP 5.3.0 or newer, with ``session`` support, the Standard PHP Library
(SPL) extension, JSON support, and the ``mbstring`` extension.
* To support uploading of ZIP files, you need the PHP ``zip`` extension.
* You need GD2 support in PHP to display inline thumbnails of JPEGs
("image/jpeg: inline") with their original aspect ratio.
* When using the cookie authentication (the default), the `mcrypt
<http://www.php.net/mcrypt>`_ extension is strongly suggested for most
users and is **required** for 64bit machines. Not using mcrypt will
cause phpMyAdmin to load pages significantly slower.
* To support upload progress bars, see :ref:`faq2_9`.
* To support XML and Open Document Spreadsheet importing, you need the
`libxml <http://www.php.net/libxml>`_ extension.
* Performance suggestion: install the ``ctype`` extension.
.. seealso:: :ref:`faq1_31`, :ref:`authentication_modes`
Database
--------
phpMyAdmin supports MySQL-compatible databases.
* MySQL 5.5 or newer
* MariaDB 5.5 or newer
* Drizzle
.. seealso:: :ref:`faq1_17`
Web browser
-----------
To access phpMyAdmin you need a web browser with cookies and javascript
enabled.
+493
View File
@@ -0,0 +1,493 @@
.. _setup:
Installation
============
phpMyAdmin 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.
.. warning::
: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``").
Linux distributions
+++++++++++++++++++
phpMyAdmin 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.
Debian
------
Debian'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.
OpenSUSE
--------
OpenSUSE already comes with phpMyAdmin package, just install packages from
the `openSUSE Build Service <http://software.opensuse.org/package/phpMyAdmin>`_.
Ubuntu
------
Ubuntu ships phpMyAdmin package, however if you want to use recent version, you
can use packages from
`PPA for Michal Čihař <https://launchpad.net/~nijel/+archive/phpmyadmin>`_.
Gentoo
------
Gentoo 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.
Mandriva
--------
Mandriva ships the phpMyAdmin package in their ``contrib`` branch and can be
installed via the usual Control Center.
Fedora
------
Fedora 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.
Red Hat Enterprise Linux
------------------------
Red Hat Enterprise Linux itself and thus derivatives like CentOS don't
ship phpMyAdmin, but the Fedora-driven repository
`Extra Packages for Enterprise Linux (EPEL) <http://fedoraproject.org/wiki/EPEL>`_
is doing so, if it's
`enabled <http://fedoraproject.org/wiki/EPEL/FAQ#howtouse>`_.
But be aware that the configuration file is maintained in
``/etc/phpMyAdmin/`` and may differ in some ways from the
official phpMyAdmin documentation.
Installing on Windows
+++++++++++++++++++++
The 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 <http://www.apachefriends.org/en/xampp.html>`_.
You can find more of such options at `Wikipedia <https://en.wikipedia.org/wiki/List_of_AMP_packages>`_.
.. _quick_install:
Quick Install
+++++++++++++
#. Choose 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``.
#. 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.
#. Ensure 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.
#. Now 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.
Manually creating the file
--------------------------
To 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
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 need a few directives to get going, a
simple configuration may look like this:
.. code-block:: xml+php
<?php
$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
?>
Or, if you prefer to not be prompted every time you log in:
.. code-block:: xml+php
<?php
$i=0;
$i++;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password
$cfg['Servers'][$i]['auth_type'] = 'config';
?>
For a full explanation of possible configuration values, see the
:ref:`config` of this document.
.. index:: Setup script
.. _setup_script:
Using Setup script
------------------
Instead of manually editing :file:`config.inc.php`, you can use the `Setup
Script <setup/>`_. 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:
.. code-block:: sh
cd phpMyAdmin
mkdir config # create directory for saving
chmod o+rw config # give it world writable permissions
And to edit an existing configuration, copy it over first:
.. code-block:: sh
cp config.inc.php config/ # copy current configuration for editing
chmod o+w config/config.inc.php # give it world writable permissions
On 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.
Next, open ``setup/`` in your browser. 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 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.
Once 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:
.. code-block:: sh
mv 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 directory
Now 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.
#. If 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 HTTPAUTH 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`.
#. Open the `main phpMyAdmin directory <index.php>`_ 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.
#. You should deny access to the ``./libraries`` and ``./setup/lib``
subfolders in your webserver configuration. For Apache you can use
supplied :term:`.htaccess` file in that folder, for other webservers, you should
configure this yourself. Such configuration prevents from possible
path exposure and cross side scripting vulnerabilities that might
happen to be found in that code.
#. It is generally good idea to protect 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`.
.. index::
single: Configuration storage
single: phpMyAdmin configuration storage
single: pmadb
.. _linked-tables:
phpMyAdmin configuration storage
++++++++++++++++++++++++++++++++
For a whole set of new 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).
Please look at your ``./examples/`` 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`).
If you already had this infrastructure and upgraded to MySQL 4.1.2 or
newer, please use :file:`examples/upgrade_tables_mysql_4_1_2+.sql`
and then create new tables by importing
:file:`examples/create_tables.sql`.
You 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.
After having imported the :file:`examples/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`. You will also need to
have a controluser with the proper rights to those tables (see section
:ref:`authentication_modes` below).
.. _upgrading:
Upgrading from an older version
+++++++++++++++++++++++++++++++
Simply 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 6, remove a
``set_magic_quotes_runtime(0);`` statement that you might find near
the end of your configuration file.
You should **not** copy :file:`libraries/config.default.php` over
:file:`config.inc.php` because the default configuration file is version-
specific.
If 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:`examples/upgrade_tables_mysql_4_1_2+.sql`.
.. index:: Authentication mode
.. _authentication_modes:
Using authentication modes
++++++++++++++++++++++++++
: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.
: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 blowfish algorithm, in a temporary cookie.
.. note:
This section is only applicable if your MySQL server is running
with ``--skip-show-database``.
For ':term:`HTTP`' and 'cookie' modes, phpMyAdmin needs a controluser that has
**only** the ``SELECT`` privilege on the *`mysql`.`user` (all columns except
`Password`)*, *`mysql`.`db` (all columns)*, *`mysql`.`host` (all columns)* and
*`mysql`.`tables\_priv` (all columns except `Grantor` and `Timestamp`)* tables.
You must specify the details for the controluser in the :file:`config.inc.php`
file under the :config:option:`$cfg['Servers'][$i]['controluser']` and
:config:option:`$cfg['Servers'][$i]['controlpass']` settings. The following
example assumes you want to use ``pma`` as the controluser and ``pmapass`` as
the controlpass, but **this is only an example: use something else in your
file!** Input these statements from the phpMyAdmin :term:`SQL` Query window or
mysql commandline client. Of course you have to replace ``localhost`` with the
webserver's host if it's not the same as the MySQL server's one.
.. code-block:: mysql
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO 'pma'@'localhost';
If you want to use the many new relation and bookmark features:
.. code-block:: mysql
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
(this of course requires that your :ref:`linked-tables` be set up).
Then 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*:
.. code-block:: mysql
GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';
What 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']`.
.. index:: pair: HTTP; Authentication mode
HTTP authentication mode
------------------------
* Uses :term:`HTTP` Basic authentication
method and allows you to log in as any valid MySQL user.
* Is 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`.
* See also :ref:`faq4_4` about not using the :term:`.htaccess` mechanism along with
':term:`HTTP`' authentication mode.
.. index:: pair: Cookie; Authentication mode
.. _cookie:
Cookie authentication mode
--------------------------
* You can use this method as a replacement for the :term:`HTTP` authentication
(for example, if you're running :term:`IIS`).
* Obviously, the user must enable cookies in the browser, but this is
now a requirement for all authentication modes.
* With this mode, the user can truly log out of phpMyAdmin and log in
back with the same username.
* If you want to log in to arbitrary server see :config:option:`$cfg['AllowArbitraryServer']` directive.
* As mentioned in the :ref:`require` section, having the ``mcrypt`` extension will
speed up access considerably, but is not required.
.. index:: pair: Signon; Authentication mode
Signon authentication mode
--------------------------
* This mode is a convenient way of using credentials from another
application to authenticate to phpMyAdmin.
* The other application has to store login information into session
data.
.. seealso::
:config:option:`$cfg['Servers'][$i]['auth_type']`,
:config:option:`$cfg['Servers'][$i]['SignonSession']`,
:config:option:`$cfg['Servers'][$i]['SignonScript']`,
:config:option:`$cfg['Servers'][$i]['SignonURL']`
.. index:: pair: Config; Authentication mode
Config authentication mode
--------------------------
* This mode is the less secure one because it requires you to fill the
:config:option:`$cfg['Servers'][$i]['user']` and
:config:option:`$cfg['Servers'][$i]['password']`
fields (and as a result, anyone who can read your :file:`config.inc.php`
can discover your username and password). But you don't need to setup
a "controluser" here: using the :config:option:`$cfg['Servers'][$i]['only_db']` might be enough.
* In the :ref:`faqmultiuser` section, there is an entry explaining how
to protect your configuration file.
* For 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.
* Unlike 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 ones router or firewall will suffice (both
of which are beyond the scope of this manual but easily searchable
with Google).
.. index:: pair: Swekey; Authentication mode
.. _swekey:
Swekey authentication mode
--------------------------
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`:
.. code-block:: php
$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey.conf';
You 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``). A self documented sample file is provided in the
``examples`` directory. Feel free to use it with your own users'
information. If you want to purchase a Swekey please visit
`http://phpmyadmin.net/auth\_key <http://phpmyadmin.net/auth_key>`_
since this link provides funding for phpMyAdmin.
.. seealso:: :config:option:`$cfg['Servers'][$i]['auth_swekey_config']`
Securing your phpMyAdmin installation
+++++++++++++++++++++++++++++++++++++
The phpMyAdmin team tries hardly to make the application secure, however there
are always ways to make your installation more secure:
* remove ``setup`` directory from phpMyAdmin, you will probably not
use it after initial setup
* properly choose authentication method - :ref:`cookie`
is probably the best choice for shared hosting
* in 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
* consider hiding phpMyAdmin behind authentication proxy, so that
MySQL credentials are not all users need to login
* if you are afraid of automated attacks, enabling Captcha by
:config:option:`$cfg['CaptchaLoginPublicKey']` and
:config:option:`$cfg['CaptchaLoginPrivateKey']` might be an option.
@@ -0,0 +1,138 @@
.. _transformations:
Transformations
===============
.. _transformationsintro:
Introduction
++++++++++++
To enable transformations, you have to setup the ``column_info``
table and the proper directives. Please see the :ref:`config` on how to do so.
You can apply different transformations to the contents of each
column. The transformation will take the content of each column and
transform it with certain rules defined in the selected
transformation.
Say you have a column 'filename' which contains a filename. Normally
you would see in phpMyAdmin only this filename. Using transformations
you can transform that filename into a HTML link, so you can click
inside of the phpMyAdmin structure on the column's link and will see
the file displayed in a new browser window. Using transformation
options you can also specify strings to append/prepend to a string or
the format you want the output stored in.
For a general overview of all available transformations and their
options, you can consult your *<www.your-host.com>/<your-install-
dir>/transformation\_overview.php* installation.
For a tutorial on how to effectively use transformations, see our
`Link section <http://www.phpmyadmin.net/home_page/docs.php>`_ on the
official phpMyAdmin homepage.
.. _transformationshowto:
Usage
+++++
Go to your *tbl\_structure.php* page (i.e. reached through clicking on
the 'Structure' link for a table). There click on "Change" (or change
icon) and there you will see three new fields at the end of the line.
They are called 'MIME-type', 'Browser transformation' and
'Transformation options'.
* The field 'MIME-type' is a drop-down field. Select the MIME-type that
corresponds to the column's contents. Please note that transformations
are inactive as long as no MIME-type is selected.
* The field 'Browser transformation' is a drop-down field. You can
choose from a hopefully growing amount of pre-defined transformations.
See below for information on how to build your own transformation.
There are global transformations and mimetype-bound transformations.
Global transformations can be used for any mimetype. They will take
the mimetype, if necessary, into regard. Mimetype-bound
transformations usually only operate on a certain mimetype. There are
transformations which operate on the main mimetype (like 'image'),
which will most likely take the subtype into regard, and those who
only operate on a specific subtype (like 'image/jpeg'). You can use
transformations on mimetypes for which the function was not defined
for. There is no security check for you selected the right
transformation, so take care of what the output will be like.
* The field 'Transformation options' is a free-type textfield. You have
to enter transform-function specific options here. Usually the
transforms can operate with default options, but it is generally a
good idea to look up the overview to see which options are necessary.
Much like the ENUM/SET-Fields, you have to split up several options
using the format 'a','b','c',...(NOTE THE MISSING BLANKS). This is
because internally the options will be parsed as an array, leaving the
first value the first element in the array, and so forth. If you want
to specify a MIME character set you can define it in the
transformation\_options. You have to put that outside of the pre-
defined options of the specific mime-transform, as the last value of
the set. Use the format "'; charset=XXX'". If you use a transform, for
which you can specify 2 options and you want to append a character
set, enter "'first parameter','second parameter','charset=us-ascii'".
You can, however use the defaults for the parameters: "'','','charset
=us-ascii'".
.. _transformationsfiles:
File structure
++++++++++++++
All specific transformations for mimetypes are defined through class
files in the directory 'libraries/plugins/transformations/'. Each of
them extends a certain transformation abstract class declared in
libraries/plugins/transformations/abstract.
They are stored in files to ease up customization and easy adding of
new transformations.
Because the user cannot enter own mimetypes, it is kept sure that
transformations always work. It makes no sense to apply a
transformation to a mimetype the transform-function doesn't know to
handle.
There is a file called '*transformations.lib.php*' that provides some
basic functions which can be included by any other transform function.
The file name convention is ``[Mimetype]_[Subtype]_[Transformation
Name].class.php``, while the abtract class that it extends has the
name ``[Transformation Name]TransformationsPlugin``. All of the
methods that have to be implemented by a transformations plug-in are:
#. getMIMEType() and getMIMESubtype() in the main class;
#. getName(), getInfo() and applyTransformation() in the abstract class
it extends.
The getMIMEType(), getMIMESubtype() and getName() methods return the
name of the MIME type, MIME Subtype and transformation accordingly.
getInfo() returns the transformation's description and possible
options it may receive and applyTransformation() is the method that
does the actual work of the transformation plug-in.
Please see the libraries/plugins/transformations/TEMPLATE and
libraries/plugins/transformations/TEMPLATE\_ABSTRACT files for adding
your own transformation plug-in. You can also generate a new
transformation plug-in (with or without the abstract transformation
class), by using
:file:`libraries/plugins/transformations/generator_plugin.sh` or
:file:`libraries/plugins/transformations/generator_main_class.sh`.
The applyTransformation() method always gets passed three variables:
#. **$buffer** - Contains the text inside of the column. This is the
text, you want to transform.
#. **$options** - Contains any user-passed options to a transform
function as an array.
#. **$meta** - Contains an object with information about your column. The
data is drawn from the output of the `mysql\_fetch\_field()
<http://www.php.net/mysql_fetch_field>`_ function. This means, all
object properties described on the `manual page
<http://www.php.net/mysql_fetch_field>`_ are available in this
variable and can be used to transform a column accordingly to
unsigned/zerofill/not\_null/... properties. The $meta->mimetype
variable contains the original MIME-type of the column (i.e.
'text/plain', 'image/jpeg' etc.)
+9
View File
@@ -0,0 +1,9 @@
User Guide
==========
.. toctree::
:maxdepth: 2
transformations
privileges
other
+34
View File
@@ -0,0 +1,34 @@
Distributing and packaging phpMyAdmin
=====================================
This document is intended to give advices to people who want to
redistribute phpMyAdmin inside other software package such as Linux
distribution or some all in one package including web server and MySQL
server.
Generally you can customize some basic aspects (paths to some files and
behavior) in :file:`libraries/vendor_config.php`.
For example if you want setup script to generate config file in var, change
``SETUP_CONFIG_FILE`` to :file:`/var/lib/phpmyadmin/config.inc.php` and you
will also probably want to skip directory writable check, so set
``SETUP_DIR_WRITABLE`` to false.
External libraries
------------------
phpMyAdmin includes several external libraries, you might want to
replace them with system ones if they are available, but please note
that you should test whether version you provide is compatible with the
one we ship.
Currently known list of external libraries:
js/jquery
jQuery js framework and various jQuery based libraries.
libraries/php-gettext
php-gettext library
libraries/tcpdf
tcpdf library, stripped down of not needed files