Initial commit
197
#pma/doc/Makefile
Normal file
@ -0,0 +1,197 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = .
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
-rm -rf $(BUILDDIR)/doctrees
|
||||
-rm -rf $(BUILDDIR)/html
|
||||
-rm -rf $(BUILDDIR)/dirhtml
|
||||
-rm -rf $(BUILDDIR)/singlehtml
|
||||
-rm -rf $(BUILDDIR)/pickle
|
||||
-rm -rf $(BUILDDIR)/json
|
||||
-rm -rf $(BUILDDIR)/htmlhelp
|
||||
-rm -rf $(BUILDDIR)/qthelp
|
||||
-rm -rf $(BUILDDIR)/devhelp
|
||||
-rm -rf $(BUILDDIR)/epub
|
||||
-rm -rf $(BUILDDIR)/latex
|
||||
-rm -rf $(BUILDDIR)/text
|
||||
-rm -rf $(BUILDDIR)/man
|
||||
-rm -rf $(BUILDDIR)/texinfo
|
||||
-rm -rf $(BUILDDIR)/info
|
||||
-rm -rf $(BUILDDIR)/gettext
|
||||
-rm -rf $(BUILDDIR)/changes
|
||||
-rm -rf $(BUILDDIR)/linkcheck
|
||||
-rm -rf $(BUILDDIR)/doctest
|
||||
-rm -rf $(BUILDDIR)/xml
|
||||
-rm -rf $(BUILDDIR)/pseudoxml
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/phpMyAdmin.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/phpMyAdmin.qhc"
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/phpMyAdmin"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/phpMyAdmin"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
188
#pma/doc/_ext/configext.py
Normal file
@ -0,0 +1,188 @@
|
||||
from sphinx.domains import Domain, ObjType
|
||||
from sphinx.roles import XRefRole
|
||||
from sphinx.domains.std import GenericObject, StandardDomain
|
||||
from sphinx.directives import ObjectDescription
|
||||
from sphinx.util.nodes import clean_astext, make_refnode
|
||||
from sphinx.util import ws_re
|
||||
from sphinx import addnodes
|
||||
from sphinx.util.docfields import Field
|
||||
from docutils import nodes
|
||||
|
||||
def get_id_from_cfg(text):
|
||||
'''
|
||||
Formats anchor ID from config option.
|
||||
'''
|
||||
if text[:6] == '$cfg[\'':
|
||||
text = text[6:]
|
||||
if text[-2:] == '\']':
|
||||
text = text[:-2]
|
||||
text = text.replace('[$i]', '')
|
||||
parts = text.split("']['")
|
||||
return parts
|
||||
|
||||
|
||||
class ConfigOption(ObjectDescription):
|
||||
indextemplate = 'configuration option; %s'
|
||||
parse_node = None
|
||||
|
||||
has_arguments = True
|
||||
|
||||
doc_field_types = [
|
||||
Field('default', label='Default value', has_arg=False,
|
||||
names=('default', )),
|
||||
Field('type', label='Type', has_arg=False,
|
||||
names=('type',)),
|
||||
]
|
||||
|
||||
|
||||
def handle_signature(self, sig, signode):
|
||||
signode.clear()
|
||||
signode += addnodes.desc_name(sig, sig)
|
||||
# normalize whitespace like XRefRole does
|
||||
name = ws_re.sub('', sig)
|
||||
return name
|
||||
|
||||
def add_target_and_index(self, name, sig, signode):
|
||||
targetparts = get_id_from_cfg(name)
|
||||
targetname = 'cfg_%s' % '_'.join(targetparts)
|
||||
signode['ids'].append(targetname)
|
||||
self.state.document.note_explicit_target(signode)
|
||||
indextype = 'single'
|
||||
|
||||
# Generic index entries
|
||||
indexentry = self.indextemplate % (name,)
|
||||
self.indexnode['entries'].append((indextype, indexentry,
|
||||
targetname, targetname))
|
||||
self.indexnode['entries'].append((indextype, name,
|
||||
targetname, targetname))
|
||||
|
||||
# Server section
|
||||
if targetparts[0] == 'Servers' and len(targetparts) > 1:
|
||||
indexname = ', '.join(targetparts[1:])
|
||||
self.indexnode['entries'].append((indextype, 'server configuration; %s' % indexname,
|
||||
targetname, targetname))
|
||||
self.indexnode['entries'].append((indextype, indexname,
|
||||
targetname, targetname))
|
||||
else:
|
||||
indexname = ', '.join(targetparts)
|
||||
self.indexnode['entries'].append((indextype, indexname,
|
||||
targetname, targetname))
|
||||
|
||||
self.env.domaindata['config']['objects'][self.objtype, name] = \
|
||||
self.env.docname, targetname
|
||||
|
||||
|
||||
class ConfigSectionXRefRole(XRefRole):
|
||||
"""
|
||||
Cross-referencing role for configuration sections (adds an index entry).
|
||||
"""
|
||||
|
||||
def result_nodes(self, document, env, node, is_ref):
|
||||
if not is_ref:
|
||||
return [node], []
|
||||
varname = node['reftarget']
|
||||
tgtid = 'index-%s' % env.new_serialno('index')
|
||||
indexnode = addnodes.index()
|
||||
indexnode['entries'] = [
|
||||
('single', varname, tgtid, varname),
|
||||
('single', 'configuration section; %s' % varname, tgtid, varname)
|
||||
]
|
||||
targetnode = nodes.target('', '', ids=[tgtid])
|
||||
document.note_explicit_target(targetnode)
|
||||
return [indexnode, targetnode, node], []
|
||||
|
||||
class ConfigSection(ObjectDescription):
|
||||
indextemplate = 'configuration section; %s'
|
||||
parse_node = None
|
||||
|
||||
def handle_signature(self, sig, signode):
|
||||
if self.parse_node:
|
||||
name = self.parse_node(self.env, sig, signode)
|
||||
else:
|
||||
signode.clear()
|
||||
signode += addnodes.desc_name(sig, sig)
|
||||
# normalize whitespace like XRefRole does
|
||||
name = ws_re.sub('', sig)
|
||||
return name
|
||||
|
||||
def add_target_and_index(self, name, sig, signode):
|
||||
targetname = '%s-%s' % (self.objtype, name)
|
||||
signode['ids'].append(targetname)
|
||||
self.state.document.note_explicit_target(signode)
|
||||
if self.indextemplate:
|
||||
colon = self.indextemplate.find(':')
|
||||
if colon != -1:
|
||||
indextype = self.indextemplate[:colon].strip()
|
||||
indexentry = self.indextemplate[colon+1:].strip() % (name,)
|
||||
else:
|
||||
indextype = 'single'
|
||||
indexentry = self.indextemplate % (name,)
|
||||
self.indexnode['entries'].append((indextype, indexentry,
|
||||
targetname, targetname))
|
||||
self.env.domaindata['config']['objects'][self.objtype, name] = \
|
||||
self.env.docname, targetname
|
||||
|
||||
|
||||
class ConfigOptionXRefRole(XRefRole):
|
||||
"""
|
||||
Cross-referencing role for configuration options (adds an index entry).
|
||||
"""
|
||||
|
||||
def result_nodes(self, document, env, node, is_ref):
|
||||
if not is_ref:
|
||||
return [node], []
|
||||
varname = node['reftarget']
|
||||
tgtid = 'index-%s' % env.new_serialno('index')
|
||||
indexnode = addnodes.index()
|
||||
indexnode['entries'] = [
|
||||
('single', varname, tgtid, varname),
|
||||
('single', 'configuration option; %s' % varname, tgtid, varname)
|
||||
]
|
||||
targetnode = nodes.target('', '', ids=[tgtid])
|
||||
document.note_explicit_target(targetnode)
|
||||
return [indexnode, targetnode, node], []
|
||||
|
||||
|
||||
class ConfigFileDomain(Domain):
|
||||
name = 'config'
|
||||
label = 'Config'
|
||||
|
||||
object_types = {
|
||||
'option': ObjType('config option', 'option'),
|
||||
'section': ObjType('config section', 'section'),
|
||||
}
|
||||
directives = {
|
||||
'option': ConfigOption,
|
||||
'section': ConfigSection,
|
||||
}
|
||||
roles = {
|
||||
'option': ConfigOptionXRefRole(),
|
||||
'section': ConfigSectionXRefRole(),
|
||||
}
|
||||
|
||||
initial_data = {
|
||||
'objects': {}, # (type, name) -> docname, labelid
|
||||
}
|
||||
|
||||
def clear_doc(self, docname):
|
||||
for key, (fn, _) in self.data['objects'].items():
|
||||
if fn == docname:
|
||||
del self.data['objects'][key]
|
||||
|
||||
def resolve_xref(self, env, fromdocname, builder,
|
||||
typ, target, node, contnode):
|
||||
docname, labelid = self.data['objects'].get((typ, target), ('', ''))
|
||||
if not docname:
|
||||
return None
|
||||
else:
|
||||
return make_refnode(builder, fromdocname, docname,
|
||||
labelid, contnode)
|
||||
|
||||
def get_objects(self):
|
||||
for (type, name), info in self.data['objects'].items():
|
||||
yield (name, name, type, info[0], info[1],
|
||||
self.object_types[type].attrs['searchprio'])
|
||||
|
||||
def setup(app):
|
||||
app.add_domain(ConfigFileDomain)
|
||||
|
304
#pma/doc/conf.py
Normal file
@ -0,0 +1,304 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# phpMyAdmin documentation build configuration file, created by
|
||||
# sphinx-quickstart on Wed Sep 26 14:04:48 2012.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext")))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = ['configext']
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'phpMyAdmin'
|
||||
copyright = u'2012 - 2016, The phpMyAdmin devel team'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '4.6.5.2'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = version
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build', 'html', 'doctrees']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
#keep_warnings = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
#html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'phpMyAdmindoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
('index', 'phpMyAdmin.tex', u'phpMyAdmin Documentation',
|
||||
u'The phpMyAdmin devel team', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('index', 'phpmyadmin', u'phpMyAdmin Documentation',
|
||||
[u'The phpMyAdmin devel team'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'phpMyAdmin', u'phpMyAdmin Documentation',
|
||||
u'The phpMyAdmin devel team', 'phpMyAdmin', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
|
||||
|
||||
# -- Options for Epub output ---------------------------------------------------
|
||||
|
||||
# Bibliographic Dublin Core info.
|
||||
epub_title = u'phpMyAdmin'
|
||||
epub_author = u'The phpMyAdmin devel team'
|
||||
epub_publisher = u'The phpMyAdmin devel team'
|
||||
epub_copyright = copyright
|
||||
|
||||
# The language of the text. It defaults to the language option
|
||||
# or en if the language is not set.
|
||||
#epub_language = ''
|
||||
|
||||
# The scheme of the identifier. Typical schemes are ISBN or URL.
|
||||
#epub_scheme = ''
|
||||
|
||||
# The unique identifier of the text. This can be a ISBN number
|
||||
# or the project homepage.
|
||||
#epub_identifier = ''
|
||||
|
||||
# A unique identification for the text.
|
||||
#epub_uid = ''
|
||||
|
||||
# A tuple containing the cover image and cover page html template filenames.
|
||||
#epub_cover = ()
|
||||
|
||||
# HTML files that should be inserted before the pages created by sphinx.
|
||||
# The format is a list of tuples containing the path and title.
|
||||
#epub_pre_files = []
|
||||
|
||||
# HTML files shat should be inserted after the pages created by sphinx.
|
||||
# The format is a list of tuples containing the path and title.
|
||||
#epub_post_files = []
|
||||
|
||||
# A list of files that should not be packed into the epub file.
|
||||
#epub_exclude_files = []
|
||||
|
||||
# The depth of the table of contents in toc.ncx.
|
||||
#epub_tocdepth = 3
|
||||
|
||||
# Allow duplicate toc entries.
|
||||
#epub_tocdup = True
|
||||
|
||||
# Highlight PHP without starting <?php tag
|
||||
from sphinx.highlighting import lexers
|
||||
from pygments.lexers.web import PhpLexer
|
||||
|
||||
lexers['php'] = PhpLexer(startinline=True)
|
2979
#pma/doc/config.rst
Normal file
49
#pma/doc/copyright.rst
Normal file
@ -0,0 +1,49 @@
|
||||
.. _copyright:
|
||||
|
||||
Copyright
|
||||
=========
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
|
||||
Copyright (C) 2001-2014 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 <https://www.gnu.org/licenses/>.
|
||||
|
||||
Third party licenses
|
||||
++++++++++++++++++++
|
||||
|
||||
phpMyAdmin includes several third party libraries which come under their
|
||||
respective licenses.
|
||||
|
||||
jQuery's license, which is where we got the files under js/jquery/ is
|
||||
(MIT|GPL), a copy of each license is available in this repository (GPL
|
||||
is available as LICENSE, MIT as js/jquery/MIT-LICENSE.txt).
|
||||
|
||||
TCPDF which is located under libraries/tcpdf is released under GPL
|
||||
version 3 and the license is available as libraries/tcpdf/LICENSE.TXT.
|
||||
|
||||
DejaVu fonts which are located under libraries/tcpdf/fonts/ and their
|
||||
license is documented in
|
||||
libraries/tcpdf/fonts/dejavu-fonts-ttf-2.33/LICENSE.
|
||||
|
||||
PHP-gettext which is located under libraries/php-gettext/ is released
|
||||
under GPL version 2 license which is available in the LICENSE file.
|
1111
#pma/doc/credits.rst
Normal file
12
#pma/doc/developers.rst
Normal file
@ -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
|
||||
<https://www.phpmyadmin.net/contribute/>`_.
|
BIN
#pma/doc/doctrees/config.doctree
Normal file
BIN
#pma/doc/doctrees/copyright.doctree
Normal file
BIN
#pma/doc/doctrees/credits.doctree
Normal file
BIN
#pma/doc/doctrees/developers.doctree
Normal file
BIN
#pma/doc/doctrees/environment.pickle
Normal file
BIN
#pma/doc/doctrees/faq.doctree
Normal file
BIN
#pma/doc/doctrees/glossary.doctree
Normal file
BIN
#pma/doc/doctrees/import_export.doctree
Normal file
BIN
#pma/doc/doctrees/index.doctree
Normal file
BIN
#pma/doc/doctrees/intro.doctree
Normal file
BIN
#pma/doc/doctrees/other.doctree
Normal file
BIN
#pma/doc/doctrees/privileges.doctree
Normal file
BIN
#pma/doc/doctrees/require.doctree
Normal file
BIN
#pma/doc/doctrees/setup.doctree
Normal file
BIN
#pma/doc/doctrees/transformations.doctree
Normal file
BIN
#pma/doc/doctrees/user.doctree
Normal file
BIN
#pma/doc/doctrees/vendors.doctree
Normal file
2220
#pma/doc/faq.rst
Normal file
401
#pma/doc/glossary.rst
Normal file
@ -0,0 +1,401 @@
|
||||
.. _glossary:
|
||||
|
||||
Glossary
|
||||
========
|
||||
|
||||
From Wikipedia, the free encyclopedia
|
||||
|
||||
.. glossary::
|
||||
|
||||
.htaccess
|
||||
the default name of Apache's directory-level configuration file.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/.htaccess>
|
||||
|
||||
ACL
|
||||
Access Contol List
|
||||
|
||||
Blowfish
|
||||
a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier.
|
||||
|
||||
.. seealso:: <https://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:: <https://en.wikipedia.org/wiki/Web_browser>
|
||||
|
||||
bzip2
|
||||
a free software/open source data compression algorithm and program developed by Julian Seward.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/CGI>
|
||||
|
||||
Changelog
|
||||
a log or record of changes made to a project.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Changelog>
|
||||
|
||||
Client
|
||||
a computer system that accesses a (remote) service on another computer by some kind of network.
|
||||
|
||||
.. seealso:: <https://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:: <https://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:: <https://www.wikipedia.org/wiki/HTTP_cookie>
|
||||
|
||||
CSV
|
||||
Comma- separated values
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Comma-separated_values>
|
||||
|
||||
DB
|
||||
look at :term:`database`
|
||||
|
||||
database
|
||||
an organized collection of data.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Database>
|
||||
|
||||
Engine
|
||||
look at :term:`storage engines`
|
||||
|
||||
extension
|
||||
a PHP module that extends PHP with additional functionality.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/extension>
|
||||
|
||||
FAQ
|
||||
Frequently Asked Questions is a list of commonly asked question and there
|
||||
answers.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/FAQ>
|
||||
|
||||
Field
|
||||
one part of divided data/columns.
|
||||
|
||||
.. seealso:: <https://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:: <https://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:: <https://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:: <https://www.wikipedia.org/wiki/Gzip>
|
||||
|
||||
host
|
||||
any machine connected to a computer network, a node that has a hostname.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Host>
|
||||
|
||||
hostname
|
||||
the unique name by which a network attached device is known on a network.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/HyperText_Transfer_Protocol>
|
||||
|
||||
https
|
||||
a :term:`HTTP`-connection with additional security measures.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/Internet_Information_Services>
|
||||
|
||||
Index
|
||||
a feature that allows quick access to the rows in a table.
|
||||
|
||||
.. seealso:: <https://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:: <https://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:: <https://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:: <https://www.wikipedia.org/wiki/IPv6>
|
||||
|
||||
ISAPI
|
||||
Internet Server Application Programming Interface is the API of Internet Information Services (IIS).
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/ISP>
|
||||
|
||||
ISO
|
||||
International Standards Organisation
|
||||
|
||||
JPEG
|
||||
a most commonly used standard method of lossy compression for photographic images.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/LaTeX>
|
||||
|
||||
Mac
|
||||
Apple Macintosh is line of personal computers is designed, developed, manufactured, and marketed by Apple Computer.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/Mac_OS_X>
|
||||
|
||||
MCrypt
|
||||
a cryptographic library.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/MCrypt>
|
||||
|
||||
mcrypt
|
||||
the MCrypt PHP extension.
|
||||
|
||||
.. seealso:: <https://php.net/mcrypt>
|
||||
|
||||
MIME
|
||||
Multipurpose Internet Mail Extensions is
|
||||
an Internet Standard for the format of e-mail.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/MIME>
|
||||
|
||||
module
|
||||
some sort of extension for the Apache Webserver.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/module>
|
||||
|
||||
mod_proxy_fcgi
|
||||
an Apache module implmenting a Fast CGI interface; PHP can be run as a CGI module, FastCGI, or
|
||||
directly as an Apache module.
|
||||
|
||||
MySQL
|
||||
a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS).
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/MySQL>
|
||||
|
||||
mysqli
|
||||
the improved MySQL client PHP extension.
|
||||
|
||||
.. seealso:: <https://php.net/mysqli>
|
||||
|
||||
mysql
|
||||
the MySQL client PHP extension.
|
||||
|
||||
.. seealso:: <https://php.net/mysql>
|
||||
|
||||
OpenDocument
|
||||
open standard for office documents.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/OpenDocument>
|
||||
|
||||
OS X
|
||||
look at :term:`Mac OS X`.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/Portable_Document_Format>
|
||||
|
||||
PEAR
|
||||
the PHP Extension and Application Repository.
|
||||
|
||||
.. seealso:: <https://pear.php.net/>
|
||||
|
||||
PCRE
|
||||
Perl Compatible Regular Expressions is the perl-compatible regular
|
||||
expression functions for PHP
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/PHP>
|
||||
|
||||
port
|
||||
a connection through which data is sent and received.
|
||||
|
||||
.. seealso:: <https://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:: <https://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:: <https://www.wikipedia.org/wiki/Row_(database)>
|
||||
|
||||
Server
|
||||
a computer system that provides services to other computing systems over a network.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Server_(computing)>
|
||||
|
||||
Storage Engines
|
||||
handlers for different table types
|
||||
|
||||
.. seealso:: <https://dev.mysql.com/doc/en/storage-engines.html>
|
||||
|
||||
socket
|
||||
a form of inter-process communication.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Socket#Computer_sockets>
|
||||
|
||||
SSL
|
||||
Secure Sockets Layer is a cryptographic protocol which provides secure
|
||||
communication on the Internet.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Secure_Sockets_Layer>
|
||||
|
||||
Stored procedure
|
||||
a subroutine available to applications accessing a relational database system
|
||||
|
||||
.. seealso:: <https://en.wikipedia.org/wiki/Stored_procedure>
|
||||
|
||||
SQL
|
||||
Structured Query Language
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/Table_(database)>
|
||||
|
||||
tar
|
||||
a type of archive file format: the Tape ARchive format.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Tar_(file_format)>
|
||||
|
||||
TCP
|
||||
Transmission Control Protocol is one of the core protocols of the
|
||||
Internet protocol suite.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/TCP>
|
||||
|
||||
TCPDF
|
||||
Rewrite of :term:`UFPDF` with various improvements.
|
||||
|
||||
.. seealso:: <https://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:: <https://en.wikipedia.org/wiki/Database_trigger>
|
||||
|
||||
UFPDF
|
||||
Unicode/UTF-8 extension for :term:`FPDF`
|
||||
|
||||
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:: <https://www.wikipedia.org/wiki/URL>
|
||||
|
||||
Webserver
|
||||
A computer (program) that is responsible for accepting HTTP requests from clients and serving them Web pages.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/XML>
|
||||
|
||||
ZIP
|
||||
a popular data compression and archival format.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/ZIP_(file_format)>
|
||||
|
||||
zlib
|
||||
an open-source, cross- platform data compression library by Jean-loup Gailly and Mark Adler.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Zlib>
|
||||
|
||||
|
4
#pma/doc/html/.buildinfo
Normal file
@ -0,0 +1,4 @@
|
||||
# Sphinx build info version 1
|
||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||
config: 8141c5d2d73fe5923f589f1cf37a51a1
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
BIN
#pma/doc/html/_images/usergroups.png
Normal file
After Width: | Height: | Size: 16 KiB |
2979
#pma/doc/html/_sources/config.txt
Normal file
49
#pma/doc/html/_sources/copyright.txt
Normal file
@ -0,0 +1,49 @@
|
||||
.. _copyright:
|
||||
|
||||
Copyright
|
||||
=========
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
|
||||
Copyright (C) 2001-2014 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 <https://www.gnu.org/licenses/>.
|
||||
|
||||
Third party licenses
|
||||
++++++++++++++++++++
|
||||
|
||||
phpMyAdmin includes several third party libraries which come under their
|
||||
respective licenses.
|
||||
|
||||
jQuery's license, which is where we got the files under js/jquery/ is
|
||||
(MIT|GPL), a copy of each license is available in this repository (GPL
|
||||
is available as LICENSE, MIT as js/jquery/MIT-LICENSE.txt).
|
||||
|
||||
TCPDF which is located under libraries/tcpdf is released under GPL
|
||||
version 3 and the license is available as libraries/tcpdf/LICENSE.TXT.
|
||||
|
||||
DejaVu fonts which are located under libraries/tcpdf/fonts/ and their
|
||||
license is documented in
|
||||
libraries/tcpdf/fonts/dejavu-fonts-ttf-2.33/LICENSE.
|
||||
|
||||
PHP-gettext which is located under libraries/php-gettext/ is released
|
||||
under GPL version 2 license which is available in the LICENSE file.
|
1111
#pma/doc/html/_sources/credits.txt
Normal file
12
#pma/doc/html/_sources/developers.txt
Normal file
@ -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
|
||||
<https://www.phpmyadmin.net/contribute/>`_.
|
2220
#pma/doc/html/_sources/faq.txt
Normal file
401
#pma/doc/html/_sources/glossary.txt
Normal file
@ -0,0 +1,401 @@
|
||||
.. _glossary:
|
||||
|
||||
Glossary
|
||||
========
|
||||
|
||||
From Wikipedia, the free encyclopedia
|
||||
|
||||
.. glossary::
|
||||
|
||||
.htaccess
|
||||
the default name of Apache's directory-level configuration file.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/.htaccess>
|
||||
|
||||
ACL
|
||||
Access Contol List
|
||||
|
||||
Blowfish
|
||||
a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier.
|
||||
|
||||
.. seealso:: <https://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:: <https://en.wikipedia.org/wiki/Web_browser>
|
||||
|
||||
bzip2
|
||||
a free software/open source data compression algorithm and program developed by Julian Seward.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/CGI>
|
||||
|
||||
Changelog
|
||||
a log or record of changes made to a project.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Changelog>
|
||||
|
||||
Client
|
||||
a computer system that accesses a (remote) service on another computer by some kind of network.
|
||||
|
||||
.. seealso:: <https://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:: <https://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:: <https://www.wikipedia.org/wiki/HTTP_cookie>
|
||||
|
||||
CSV
|
||||
Comma- separated values
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Comma-separated_values>
|
||||
|
||||
DB
|
||||
look at :term:`database`
|
||||
|
||||
database
|
||||
an organized collection of data.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Database>
|
||||
|
||||
Engine
|
||||
look at :term:`storage engines`
|
||||
|
||||
extension
|
||||
a PHP module that extends PHP with additional functionality.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/extension>
|
||||
|
||||
FAQ
|
||||
Frequently Asked Questions is a list of commonly asked question and there
|
||||
answers.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/FAQ>
|
||||
|
||||
Field
|
||||
one part of divided data/columns.
|
||||
|
||||
.. seealso:: <https://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:: <https://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:: <https://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:: <https://www.wikipedia.org/wiki/Gzip>
|
||||
|
||||
host
|
||||
any machine connected to a computer network, a node that has a hostname.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Host>
|
||||
|
||||
hostname
|
||||
the unique name by which a network attached device is known on a network.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/HyperText_Transfer_Protocol>
|
||||
|
||||
https
|
||||
a :term:`HTTP`-connection with additional security measures.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/Internet_Information_Services>
|
||||
|
||||
Index
|
||||
a feature that allows quick access to the rows in a table.
|
||||
|
||||
.. seealso:: <https://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:: <https://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:: <https://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:: <https://www.wikipedia.org/wiki/IPv6>
|
||||
|
||||
ISAPI
|
||||
Internet Server Application Programming Interface is the API of Internet Information Services (IIS).
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/ISP>
|
||||
|
||||
ISO
|
||||
International Standards Organisation
|
||||
|
||||
JPEG
|
||||
a most commonly used standard method of lossy compression for photographic images.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/LaTeX>
|
||||
|
||||
Mac
|
||||
Apple Macintosh is line of personal computers is designed, developed, manufactured, and marketed by Apple Computer.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/Mac_OS_X>
|
||||
|
||||
MCrypt
|
||||
a cryptographic library.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/MCrypt>
|
||||
|
||||
mcrypt
|
||||
the MCrypt PHP extension.
|
||||
|
||||
.. seealso:: <https://php.net/mcrypt>
|
||||
|
||||
MIME
|
||||
Multipurpose Internet Mail Extensions is
|
||||
an Internet Standard for the format of e-mail.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/MIME>
|
||||
|
||||
module
|
||||
some sort of extension for the Apache Webserver.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/module>
|
||||
|
||||
mod_proxy_fcgi
|
||||
an Apache module implmenting a Fast CGI interface; PHP can be run as a CGI module, FastCGI, or
|
||||
directly as an Apache module.
|
||||
|
||||
MySQL
|
||||
a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS).
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/MySQL>
|
||||
|
||||
mysqli
|
||||
the improved MySQL client PHP extension.
|
||||
|
||||
.. seealso:: <https://php.net/mysqli>
|
||||
|
||||
mysql
|
||||
the MySQL client PHP extension.
|
||||
|
||||
.. seealso:: <https://php.net/mysql>
|
||||
|
||||
OpenDocument
|
||||
open standard for office documents.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/OpenDocument>
|
||||
|
||||
OS X
|
||||
look at :term:`Mac OS X`.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/Portable_Document_Format>
|
||||
|
||||
PEAR
|
||||
the PHP Extension and Application Repository.
|
||||
|
||||
.. seealso:: <https://pear.php.net/>
|
||||
|
||||
PCRE
|
||||
Perl Compatible Regular Expressions is the perl-compatible regular
|
||||
expression functions for PHP
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/PHP>
|
||||
|
||||
port
|
||||
a connection through which data is sent and received.
|
||||
|
||||
.. seealso:: <https://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:: <https://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:: <https://www.wikipedia.org/wiki/Row_(database)>
|
||||
|
||||
Server
|
||||
a computer system that provides services to other computing systems over a network.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Server_(computing)>
|
||||
|
||||
Storage Engines
|
||||
handlers for different table types
|
||||
|
||||
.. seealso:: <https://dev.mysql.com/doc/en/storage-engines.html>
|
||||
|
||||
socket
|
||||
a form of inter-process communication.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Socket#Computer_sockets>
|
||||
|
||||
SSL
|
||||
Secure Sockets Layer is a cryptographic protocol which provides secure
|
||||
communication on the Internet.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Secure_Sockets_Layer>
|
||||
|
||||
Stored procedure
|
||||
a subroutine available to applications accessing a relational database system
|
||||
|
||||
.. seealso:: <https://en.wikipedia.org/wiki/Stored_procedure>
|
||||
|
||||
SQL
|
||||
Structured Query Language
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/Table_(database)>
|
||||
|
||||
tar
|
||||
a type of archive file format: the Tape ARchive format.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Tar_(file_format)>
|
||||
|
||||
TCP
|
||||
Transmission Control Protocol is one of the core protocols of the
|
||||
Internet protocol suite.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/TCP>
|
||||
|
||||
TCPDF
|
||||
Rewrite of :term:`UFPDF` with various improvements.
|
||||
|
||||
.. seealso:: <https://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:: <https://en.wikipedia.org/wiki/Database_trigger>
|
||||
|
||||
UFPDF
|
||||
Unicode/UTF-8 extension for :term:`FPDF`
|
||||
|
||||
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:: <https://www.wikipedia.org/wiki/URL>
|
||||
|
||||
Webserver
|
||||
A computer (program) that is responsible for accepting HTTP requests from clients and serving them Web pages.
|
||||
|
||||
.. seealso:: <https://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:: <https://www.wikipedia.org/wiki/XML>
|
||||
|
||||
ZIP
|
||||
a popular data compression and archival format.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/ZIP_(file_format)>
|
||||
|
||||
zlib
|
||||
an open-source, cross- platform data compression library by Jean-loup Gailly and Mark Adler.
|
||||
|
||||
.. seealso:: <https://www.wikipedia.org/wiki/Zlib>
|
||||
|
||||
|
27
#pma/doc/html/_sources/import_export.txt
Normal file
@ -0,0 +1,27 @@
|
||||
Import and export
|
||||
=================
|
||||
|
||||
In addition to the standard Import and Export tab, you can also import an SQL file directly by dragging and dropping
|
||||
it from your local file manager to the phpMyAdmin interface in your web browser.
|
||||
|
||||
Open Document Spreadsheet
|
||||
-------------------------
|
||||
|
||||
When importing an ODS speadsheet, the spreadsheet must be named in a specific way in order to make the
|
||||
import as simple as possible.
|
||||
|
||||
Table name
|
||||
~~~~~~~~~~
|
||||
|
||||
During import, phpMyAdmin uses the sheet name as the table name; you should rename the
|
||||
sheet in your spreadsheet program in order to match your existing table name (or the table you wish to create,
|
||||
though this is less of a concern since you could quickly rename the new table from the Operations tab).
|
||||
|
||||
Column names
|
||||
~~~~~~~~~~~~
|
||||
|
||||
You should also make the first row of your spreadsheet a header with the names of the columns (this can be
|
||||
accomplished by inserting a new row at the top of your spreadsheet). When on the Import screen, select the
|
||||
checkbox for "The first line of the file contains the table column names;" this way your newly imported
|
||||
data will go to the proper columns.
|
||||
|
32
#pma/doc/html/_sources/index.txt
Normal 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
#pma/doc/html/_sources/intro.txt
Normal 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
|
||||
* 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 `80 different languages
|
||||
<https://www.phpmyadmin.net/translations/>`_
|
||||
|
||||
|
||||
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
#pma/doc/html/_sources/other.txt
Normal 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: https://www.phpmyadmin.net/docs/
|
||||
|
||||
Tutorials
|
||||
---------
|
||||
|
||||
Third party tutorials and articles are listed on our `wiki page`_.
|
||||
|
||||
.. _wiki page: https://wiki.phpmyadmin.net/pma/Articles
|
74
#pma/doc/html/_sources/privileges.txt
Normal file
@ -0,0 +1,74 @@
|
||||
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.
|
||||
|
||||
.. _configurablemenus:
|
||||
|
||||
Configurable menus and user groups
|
||||
----------------------------------
|
||||
|
||||
By enabling :config:option:`$cfg['Servers'][$i]['usergroups']` and
|
||||
:config:option:`$cfg['Servers'][$i]['usergroups']` you can customize what users
|
||||
will see in the phpMyAdmin navigation.
|
||||
|
||||
.. warning::
|
||||
|
||||
This feature only limits what a user sees, he is still able to use all the
|
||||
functions. So this can not be considered as a security limitation. Should
|
||||
you want to limit what users can do, use MySQL privileges to achieve that.
|
||||
|
||||
With this feature enabled, the :guilabel:`User accounts` management interface gains
|
||||
a second tab for managing :guilabel:`User groups`, where you can define what each
|
||||
group will view (see image below) and you can then assign each user to one of
|
||||
these groups. Users will be presented with a simplified user interface, which might be
|
||||
useful for inexperienced users who could be overwhelmed by all the features
|
||||
phpMyAdmin provides.
|
||||
|
||||
.. image:: images/usergroups.png
|
59
#pma/doc/html/_sources/require.txt
Normal file
@ -0,0 +1,59 @@
|
||||
.. _require:
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
Web server
|
||||
----------
|
||||
|
||||
Since phpMyAdmin's interface is based entirely in your browser, you'll need a
|
||||
web server (such as Apache, nginx, :term:`IIS`) to install phpMyAdmin's files into.
|
||||
|
||||
PHP
|
||||
---
|
||||
|
||||
* You need PHP 5.5.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 `openssl
|
||||
<https://www.php.net/openssl>`_ extension is strongly suggested.
|
||||
|
||||
* To support upload progress bars, see :ref:`faq2_9`.
|
||||
|
||||
* To support XML and Open Document Spreadsheet importing, you need the
|
||||
`libxml <https://www.php.net/libxml>`_ extension.
|
||||
|
||||
* To support reCAPTCHA on the login page, you need the
|
||||
`openssl <https://www.php.net/openssl>`_ extension.
|
||||
|
||||
* To support displaying phpMyAdmin's latest version, you need to enable
|
||||
``allow_url_open`` in your :file:`php.ini` or to have the
|
||||
`curl <https://www.php.net/curl>`_ 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
|
||||
|
||||
.. seealso:: :ref:`faq1_17`
|
||||
|
||||
Web browser
|
||||
-----------
|
||||
|
||||
To access phpMyAdmin you need a web browser with cookies and JavaScript
|
||||
enabled.
|
||||
|
||||
You need browser which is supported by jQuery 2.0, see
|
||||
<https://jquery.com/browser-support/>.
|
819
#pma/doc/html/_sources/setup.txt
Normal file
@ -0,0 +1,819 @@
|
||||
.. _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 <https://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) <https://fedoraproject.org/wiki/EPEL>`_
|
||||
is doing so, if it's
|
||||
`enabled <https://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 <https://www.apachefriends.org/>`_.
|
||||
|
||||
You can find more of such options at `Wikipedia <https://en.wikipedia.org/wiki/List_of_AMP_packages>`_.
|
||||
|
||||
|
||||
Installing using Composer
|
||||
+++++++++++++++++++++++++
|
||||
|
||||
You can install phpMyAdmin using `Composer <https://getcomposer.org/>`_,
|
||||
however it's currently not available in the default
|
||||
`Packagist <https://packagist.org/>`_ repository due to its technical
|
||||
limitations.
|
||||
|
||||
The installation is possible by adding our own repository
|
||||
<https://www.phpmyadmin.net/packages.json>:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev
|
||||
|
||||
Installing using Docker
|
||||
+++++++++++++++++++++++
|
||||
|
||||
phpMyAdmin comes with a Docker image, which you can easily deploy. You can
|
||||
download it using:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker pull phpmyadmin/phpmyadmin
|
||||
|
||||
The phpMyAdmin server will be executed on port 80. It supports several ways of
|
||||
configuring the link to the database server, which you can manage using
|
||||
environment variables:
|
||||
|
||||
.. envvar:: PMA_ARBITRARY
|
||||
|
||||
Allows you to enter database server hostname on login form (see
|
||||
:config:option:`$cfg['AllowArbitraryServer']`).
|
||||
|
||||
.. envvar:: PMA_HOST
|
||||
|
||||
Host name or IP address of the database server to use.
|
||||
|
||||
.. envvar:: PMA_HOSTS
|
||||
|
||||
Comma separated host names or IP addresses of the database servers to use.
|
||||
|
||||
.. envvar:: PMA_USER
|
||||
|
||||
User name to use for :ref:`auth_config`.
|
||||
|
||||
.. envvar:: PMA_PASSWORD
|
||||
|
||||
Password to use for :ref:`auth_config`.
|
||||
|
||||
.. envvar:: PMA_PORT
|
||||
|
||||
Port of the databse server to use.
|
||||
|
||||
.. envvar:: PMA_ABSOLUTE_URI
|
||||
|
||||
The fully-qualified path (``https://pma.example.net/``) where the reverse
|
||||
proxy makes phpMyAdmin available.
|
||||
|
||||
By default, :ref:`cookie` is used, but if :envvar:`PMA_USER` and
|
||||
:envvar:`PMA_PASSWORD` are set, it is switched to :ref:`auth_config`.
|
||||
|
||||
.. note::
|
||||
|
||||
The credentials you need to login are stored in the MySQL server, in case
|
||||
of Docker image there are various ways to set it (for example
|
||||
:envvar:`MYSQL_ROOT_PASSWORD` when starting MySQL container). Please check
|
||||
documentation for `MariaDB container <https://hub.docker.com/r/_/mariadb/>`_
|
||||
or `MySQL container <https://hub.docker.com/r/_/mysql/>`_.
|
||||
|
||||
Additionally configuration can be tweaked by :file:`/www/config.user.inc.php`. If
|
||||
this file exists, it will be loaded after configuration generated from above
|
||||
environment variables, so you can override any configuration variable. This
|
||||
configuraiton can be added as a volume when invoking docker using
|
||||
`-v /some/local/directory/config.user.inc.php:/www/config.user.inc.php` parameters.
|
||||
|
||||
.. seealso::
|
||||
|
||||
See :ref:`config` for detailed description of configuration options.
|
||||
|
||||
Docker Volumes
|
||||
--------------
|
||||
|
||||
You can use following volumes to customise image behavior:
|
||||
|
||||
:file:`/www/config.user.inc.php`
|
||||
|
||||
Can be used for additional settings, see previous chapter for more details.
|
||||
|
||||
:file:`/sessions/`
|
||||
|
||||
Directory where PHP sessions are stored. You might want to share this
|
||||
for example when uswing :ref:`auth_signon`.
|
||||
|
||||
Docker Examples
|
||||
---------------
|
||||
|
||||
To connect phpMyAdmin to given server use:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name myadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin/phpmyadmin
|
||||
|
||||
To connect phpMyAdmin to more servers use:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name myadmin -d -e PMA_HOSTS=dbhost1,dbhost2,dbhost3 -p 8080:80 phpmyadmin/phpmyadmin
|
||||
|
||||
To use arbitrary server option:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name myadmin -d --link mysql_db_server:db -p 8080:80 -e PMA_ARBITRARY=1 phpmyadmin/phpmyadmin
|
||||
|
||||
You can also link the database container using Docker:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin/phpmyadmin
|
||||
|
||||
Running with additional configration:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/config.user.inc.php:/config.user.inc.php phpmyadmin/phpmyadmin
|
||||
|
||||
Using docker-compose
|
||||
--------------------
|
||||
|
||||
Alternatively you can also use docker-compose with the docker-compose.yml from
|
||||
<https://github.com/phpmyadmin/docker>. This will run phpMyAdmin with
|
||||
arbitrary server - allowing you to specify MySQL/MariaDB server on login page.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker-compose up -d
|
||||
|
||||
.. _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``.
|
||||
#. Ensure you have downloaded a genuine archive, see :ref:`verify`.
|
||||
#. 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
|
||||
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:
|
||||
|
||||
.. code-block:: xml+php
|
||||
|
||||
|
||||
<?php
|
||||
// use here a value of your choice at least 32 chars long
|
||||
$cfg['blowfish_secret'] = '1{dd0`<Q),5XP_:R9UK%%8\"EEcyH#{o';
|
||||
|
||||
$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 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:
|
||||
|
||||
.. 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
|
||||
|
||||
.. note::
|
||||
|
||||
Debian and Ubuntu have simplified this setup and all you need to do is to
|
||||
execute :program:`/usr/sbin/pma-configure`.
|
||||
|
||||
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 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.
|
||||
|
||||
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
|
||||
|
||||
.. note::
|
||||
|
||||
Debian and Ubuntu have simplified this setup and all you need to do is to
|
||||
execute :program:`/usr/sbin/pma-secure`.
|
||||
|
||||
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 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`.
|
||||
#. 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.
|
||||
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.
|
||||
#. It 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`.
|
||||
|
||||
|
||||
.. _verify:
|
||||
|
||||
Verifying phpMyAdmin releases
|
||||
+++++++++++++++++++++++++++++
|
||||
|
||||
Since July 2015 all phpMyAdmin releases are cryptographically signed by the
|
||||
releasing developer, who through January 2016 was Marc Delisle. His key id is
|
||||
0xFEFC65D181AF644A, his PGP fingerprint is:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644A
|
||||
|
||||
and you can get more identification information from <https://keybase.io/lem9>.
|
||||
|
||||
Beginning in January 2016, the release manager is Isaac Bennetch. His key id is
|
||||
0xCE752F178259BD92, and his PGP fingerprint is:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
|
||||
|
||||
and you can get more identification information from <https://keybase.io/ibennetch>.
|
||||
|
||||
Some additional downloads (for example themes) might be signed by Michal Čihař. His key id is
|
||||
0x9C27B31342B7511D, and his PGP fingerprint is:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
63CB 1DF1 EF12 CF2A C0EE 5A32 9C27 B313 42B7 511D
|
||||
|
||||
and you can get more identification information from <https://keybase.io/nijel>.
|
||||
|
||||
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.
|
||||
|
||||
Each 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:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
|
||||
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
|
||||
gpg: Can't check signature: public key not found
|
||||
|
||||
As you can see gpg complains that it does not know the public key. At this
|
||||
point you should do one of the following steps:
|
||||
|
||||
* Download the keyring from `our download server <https://files.phpmyadmin.net/phpmyadmin.keyring>`_, then import it with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --import phpmyadmin.keyring
|
||||
|
||||
* Download and import the key from one of the key servers:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 3D06A59ECE730EB71B511C17CE752F178259BD92
|
||||
gpg: requesting key 8259BD92 from hkp server pgp.mit.edu
|
||||
gpg: key 8259BD92: public key "Isaac Bennetch <bennetch@gmail.com>" imported
|
||||
gpg: no ultimately trusted keys found
|
||||
gpg: Total number processed: 1
|
||||
gpg: imported: 1 (RSA: 1)
|
||||
|
||||
This 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:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
|
||||
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
|
||||
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>"
|
||||
gpg: aka "Isaac Bennetch <isaac@bennetch.org>"
|
||||
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: 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
|
||||
|
||||
The 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 `Isaac's key links to
|
||||
Linus's key`_.
|
||||
|
||||
Once the key is trusted, the warning will not occur:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
|
||||
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
|
||||
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>" [full]
|
||||
|
||||
Should 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:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
|
||||
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
|
||||
gpg: BAD signature from "Isaac Bennetch <bennetch@gmail.com>" [unknown]
|
||||
|
||||
.. _Validating other keys on your public keyring: https://www.gnupg.org/gph/en/manual.html#AEN335
|
||||
|
||||
.. _Isaac's key links to Linus's key: https://pgp.cs.uu.nl/mk_path.cgi?FROM=ABAF11C65A2970B130ABE3C479BE3E4300411886&TO=3D06A59ECE730EB71B511C17CE752F178259BD92
|
||||
|
||||
|
||||
.. index::
|
||||
single: Configuration storage
|
||||
single: phpMyAdmin configuration storage
|
||||
single: pmadb
|
||||
|
||||
.. _linked-tables:
|
||||
|
||||
phpMyAdmin configuration storage
|
||||
++++++++++++++++++++++++++++++++
|
||||
|
||||
For 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).
|
||||
|
||||
Zero configuration
|
||||
------------------
|
||||
|
||||
In 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.
|
||||
|
||||
The following three scenarios are covered by the Zero Configuration mode:
|
||||
|
||||
* When entering a database where the configuration storage tables are not
|
||||
present, phpMyAdmin offers to create them from the Operations tab.
|
||||
* When 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.
|
||||
* 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.
|
||||
|
||||
|
||||
Manual configuration
|
||||
--------------------
|
||||
|
||||
Please 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`).
|
||||
|
||||
If you already had this infrastructure and:
|
||||
|
||||
* upgraded to MySQL 4.1.2 or newer, please use
|
||||
:file:`sql/upgrade_tables_mysql_4_1_2+.sql`.
|
||||
* 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`.
|
||||
|
||||
and then create new tables by importing :file:`sql/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:`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`.
|
||||
|
||||
You 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:
|
||||
|
||||
.. code-block:: mysql
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
|
||||
|
||||
.. _upgrading:
|
||||
|
||||
Upgrading from an older version
|
||||
+++++++++++++++++++++++++++++++
|
||||
|
||||
.. warning::
|
||||
|
||||
**Never** extract the new version over an existing installation of
|
||||
phpMyAdmin, always first remove the old files keeping just the
|
||||
configuration.
|
||||
|
||||
This way you will not leave old no longer working code in the directory,
|
||||
which can have severe security implications or can cause various breakages.
|
||||
|
||||
|
||||
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 5.3 and later, 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:`sql/upgrade_tables_mysql_4_1_2+.sql`.
|
||||
|
||||
If 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`.
|
||||
|
||||
Do not forget to clear the browser cache and to empty the old session by
|
||||
logging out and logging in again.
|
||||
|
||||
.. 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 AES algorithm, in a temporary cookie.
|
||||
|
||||
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`.
|
||||
* When PHP is running under Apache's :term:`mod_proxy_fcgi` (e.g. with PHP-FPM),
|
||||
``Authorization`` headers are not passed to the underlying FCGI application,
|
||||
such that your credentials will not reach the application. In this case, you can
|
||||
add the following configuration directive:
|
||||
|
||||
.. code-block:: apache
|
||||
|
||||
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
|
||||
|
||||
* 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
|
||||
--------------------------
|
||||
|
||||
* Username and password are stored in cookies during the session and password
|
||||
is deleted when it ends.
|
||||
* With this mode, the user can truly log out of phpMyAdmin and log
|
||||
back in with the same username.
|
||||
* If 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.
|
||||
* 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
|
||||
|
||||
.. _auth_signon:
|
||||
|
||||
Signon authentication mode
|
||||
--------------------------
|
||||
|
||||
* This mode is a convenient way of using credentials from another
|
||||
application to authenticate to phpMyAdmin to implement single signon
|
||||
solution.
|
||||
* The 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']`).
|
||||
* When no credentials are available, the user is being redirected to
|
||||
:config:option:`$cfg['Servers'][$i]['SignonURL']`, where you should handle
|
||||
the login process.
|
||||
|
||||
The very basic example of saving credentials in a session is available as
|
||||
:file:`examples/signon.php`:
|
||||
|
||||
.. literalinclude:: ../examples/signon.php
|
||||
:language: php
|
||||
|
||||
Alternatively you can also use this way to integrate with OpenID as shown
|
||||
in :file:`examples/openid.php`:
|
||||
|
||||
.. literalinclude:: ../examples/openid.php
|
||||
:language: php
|
||||
|
||||
If 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`:
|
||||
|
||||
.. literalinclude:: ../examples/signon-script.php
|
||||
:language: php
|
||||
|
||||
.. 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
|
||||
|
||||
.. _auth_config:
|
||||
|
||||
Config authentication mode
|
||||
--------------------------
|
||||
|
||||
* This mode is sometimes 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).
|
||||
* 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 one’s router or firewall will suffice (both
|
||||
of which are beyond the scope of this manual but easily searchable
|
||||
with Google).
|
||||
|
||||
|
||||
Securing your phpMyAdmin installation
|
||||
+++++++++++++++++++++++++++++++++++++
|
||||
|
||||
The phpMyAdmin team tries hard to make the application secure, however there
|
||||
are always ways to make your installation more secure:
|
||||
|
||||
* Serve phpMyAdmin on HTTPS only. Preferably, you should use HSTS as well, so that
|
||||
you're protected from protocol downgrade attacks.
|
||||
* Remove the ``test`` directory from phpMyAdmin, unless you are developing and need test suite.
|
||||
* Remove the ``setup`` directory from phpMyAdmin, you will probably not
|
||||
use it after the initial setup.
|
||||
* Properly choose an 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 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 the configuration, you need to create a 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
|
||||
|
||||
* If you are afraid of automated attacks, enabling Captcha by
|
||||
:config:option:`$cfg['CaptchaLoginPublicKey']` and
|
||||
:config:option:`$cfg['CaptchaLoginPrivateKey']` might be an option.
|
||||
|
||||
Known issues
|
||||
++++++++++++
|
||||
|
||||
Users with column-specific privileges are unable to "Browse"
|
||||
------------------------------------------------------------
|
||||
|
||||
If a user has only column-specific privileges on some (but not all) columns in a table, "Browse"
|
||||
will fail with an error message.
|
||||
|
||||
As a workaround, a bookmarked query with the same name as the table can be created, this will
|
||||
run when using the "Browse" link instead. `Issue 11922 <https://github.com/phpmyadmin/phpmyadmin/issues/11922>`_.
|
||||
|
||||
Trouble logging back in after logging out using 'http' authentication
|
||||
----------------------------------------------------------------------
|
||||
|
||||
When using the 'http' ``auth_type``, it can be impossible to log back in (when the logout comes
|
||||
manually or after a period of inactivity). `Issue 11898 <https://github.com/phpmyadmin/phpmyadmin/issues/11898>`_.
|
138
#pma/doc/html/_sources/transformations.txt
Normal file
@ -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 <https://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:`scripts/transformations_generator_plugin.sh` or
|
||||
:file:`scripts/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()
|
||||
<https://www.php.net/mysql_fetch_field>`_ function. This means, all
|
||||
object properties described on the `manual page
|
||||
<https://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.)
|
||||
|
10
#pma/doc/html/_sources/user.txt
Normal file
@ -0,0 +1,10 @@
|
||||
User Guide
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
transformations
|
||||
privileges
|
||||
other
|
||||
import_export
|
35
#pma/doc/html/_sources/vendors.txt
Normal file
@ -0,0 +1,35 @@
|
||||
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
|
||||
libraries/phpseclib
|
||||
portions of phpseclib library
|
BIN
#pma/doc/html/_static/ajax-loader.gif
Normal file
After Width: | Height: | Size: 673 B |
604
#pma/doc/html/_static/basic.css
Normal file
@ -0,0 +1,604 @@
|
||||
/*
|
||||
* basic.css
|
||||
* ~~~~~~~~~
|
||||
*
|
||||
* Sphinx stylesheet -- basic theme.
|
||||
*
|
||||
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
/* -- main layout ----------------------------------------------------------- */
|
||||
|
||||
div.clearer {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* -- relbar ---------------------------------------------------------------- */
|
||||
|
||||
div.related {
|
||||
width: 100%;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
div.related h3 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.related ul {
|
||||
margin: 0;
|
||||
padding: 0 0 0 10px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
div.related li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.related li.right {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* -- sidebar --------------------------------------------------------------- */
|
||||
|
||||
div.sphinxsidebarwrapper {
|
||||
padding: 10px 5px 0 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
float: left;
|
||||
width: 230px;
|
||||
margin-left: -100%;
|
||||
font-size: 90%;
|
||||
word-wrap: break-word;
|
||||
overflow-wrap : break-word;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul ul,
|
||||
div.sphinxsidebar ul.want-points {
|
||||
margin-left: 20px;
|
||||
list-style: square;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar form {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input {
|
||||
border: 1px solid #98dbcc;
|
||||
font-family: sans-serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
div.sphinxsidebar #searchbox input[type="text"] {
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* -- search page ----------------------------------------------------------- */
|
||||
|
||||
ul.search {
|
||||
margin: 10px 0 0 20px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul.search li {
|
||||
padding: 5px 0 5px 20px;
|
||||
background-image: url(file.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 7px;
|
||||
}
|
||||
|
||||
ul.search li a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul.search li div.context {
|
||||
color: #888;
|
||||
margin: 2px 0 0 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
ul.keywordmatches li.goodmatch a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* -- index page ------------------------------------------------------------ */
|
||||
|
||||
table.contentstable {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
table.contentstable p.biglink {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
a.biglink {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
span.linkdescr {
|
||||
font-style: italic;
|
||||
padding-top: 5px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
/* -- general index --------------------------------------------------------- */
|
||||
|
||||
table.indextable {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
table.indextable td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.indextable dl, table.indextable dd {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
table.indextable tr.pcap {
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
table.indextable tr.cap {
|
||||
margin-top: 10px;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
img.toggler {
|
||||
margin-right: 3px;
|
||||
margin-top: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.modindex-jumpbox {
|
||||
border-top: 1px solid #ddd;
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin: 1em 0 1em 0;
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
div.genindex-jumpbox {
|
||||
border-top: 1px solid #ddd;
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin: 1em 0 1em 0;
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
/* -- general body styles --------------------------------------------------- */
|
||||
|
||||
div.body p, div.body dd, div.body li, div.body blockquote {
|
||||
-moz-hyphens: auto;
|
||||
-ms-hyphens: auto;
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
a.headerlink {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
h1:hover > a.headerlink,
|
||||
h2:hover > a.headerlink,
|
||||
h3:hover > a.headerlink,
|
||||
h4:hover > a.headerlink,
|
||||
h5:hover > a.headerlink,
|
||||
h6:hover > a.headerlink,
|
||||
dt:hover > a.headerlink,
|
||||
caption:hover > a.headerlink,
|
||||
p.caption:hover > a.headerlink,
|
||||
div.code-block-caption:hover > a.headerlink {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
div.body p.caption {
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
div.body td {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.field-list ul {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.first {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
p.rubric {
|
||||
margin-top: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
img.align-left, .figure.align-left, object.align-left {
|
||||
clear: left;
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
img.align-right, .figure.align-right, object.align-right {
|
||||
clear: right;
|
||||
float: right;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
img.align-center, .figure.align-center, object.align-center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* -- sidebars -------------------------------------------------------------- */
|
||||
|
||||
div.sidebar {
|
||||
margin: 0 0 0.5em 1em;
|
||||
border: 1px solid #ddb;
|
||||
padding: 7px 7px 0 7px;
|
||||
background-color: #ffe;
|
||||
width: 40%;
|
||||
float: right;
|
||||
}
|
||||
|
||||
p.sidebar-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* -- topics ---------------------------------------------------------------- */
|
||||
|
||||
div.topic {
|
||||
border: 1px solid #ccc;
|
||||
padding: 7px 7px 0 7px;
|
||||
margin: 10px 0 10px 0;
|
||||
}
|
||||
|
||||
p.topic-title {
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* -- admonitions ----------------------------------------------------------- */
|
||||
|
||||
div.admonition {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
div.admonition dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.admonition dl {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
p.admonition-title {
|
||||
margin: 0px 10px 5px 0px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.body p.centered {
|
||||
text-align: center;
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
/* -- tables ---------------------------------------------------------------- */
|
||||
|
||||
table.docutils {
|
||||
border: 0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table caption span.caption-number {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table caption span.caption-text {
|
||||
}
|
||||
|
||||
table.docutils td, table.docutils th {
|
||||
padding: 1px 8px 1px 5px;
|
||||
border-top: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
table.field-list td, table.field-list th {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
table.footnote td, table.footnote th {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
table.citation td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/* -- figures --------------------------------------------------------------- */
|
||||
|
||||
div.figure {
|
||||
margin: 0.5em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
div.figure p.caption {
|
||||
padding: 0.3em;
|
||||
}
|
||||
|
||||
div.figure p.caption span.caption-number {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.figure p.caption span.caption-text {
|
||||
}
|
||||
|
||||
|
||||
/* -- other body styles ----------------------------------------------------- */
|
||||
|
||||
ol.arabic {
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
ol.loweralpha {
|
||||
list-style: lower-alpha;
|
||||
}
|
||||
|
||||
ol.upperalpha {
|
||||
list-style: upper-alpha;
|
||||
}
|
||||
|
||||
ol.lowerroman {
|
||||
list-style: lower-roman;
|
||||
}
|
||||
|
||||
ol.upperroman {
|
||||
list-style: upper-roman;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
dd p {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
dd ul, dd table {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
dt:target, .highlighted {
|
||||
background-color: #fbe54e;
|
||||
}
|
||||
|
||||
dl.glossary dt {
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.field-list ul {
|
||||
margin: 0;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.field-list p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.optional {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.sig-paren {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
.versionmodified {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.system-message {
|
||||
background-color: #fda;
|
||||
padding: 5px;
|
||||
border: 3px solid red;
|
||||
}
|
||||
|
||||
.footnote:target {
|
||||
background-color: #ffa;
|
||||
}
|
||||
|
||||
.line-block {
|
||||
display: block;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.line-block .line-block {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 1.5em;
|
||||
}
|
||||
|
||||
.guilabel, .menuselection {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.accelerator {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.classifier {
|
||||
font-style: oblique;
|
||||
}
|
||||
|
||||
abbr, acronym {
|
||||
border-bottom: dotted 1px;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
/* -- code displays --------------------------------------------------------- */
|
||||
|
||||
pre {
|
||||
overflow: auto;
|
||||
overflow-y: hidden; /* fixes display issues on Chrome browsers */
|
||||
}
|
||||
|
||||
td.linenos pre {
|
||||
padding: 5px 0px;
|
||||
border: 0;
|
||||
background-color: transparent;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
table.highlighttable {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
table.highlighttable td {
|
||||
padding: 0 0.5em 0 0.5em;
|
||||
}
|
||||
|
||||
div.code-block-caption {
|
||||
padding: 2px 5px;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
div.code-block-caption code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
div.code-block-caption + div > div.highlight > pre {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
div.code-block-caption span.caption-number {
|
||||
padding: 0.1em 0.3em;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.code-block-caption span.caption-text {
|
||||
}
|
||||
|
||||
div.literal-block-wrapper {
|
||||
padding: 1em 1em 0;
|
||||
}
|
||||
|
||||
div.literal-block-wrapper div.highlight {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
code.descname {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
code.descclassname {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
code.xref, a code {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.viewcode-link {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.viewcode-back {
|
||||
float: right;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
div.viewcode-block:target {
|
||||
margin: -1px -10px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
/* -- math display ---------------------------------------------------------- */
|
||||
|
||||
img.math {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
div.body div.math p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
span.eqno {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* -- printout stylesheet --------------------------------------------------- */
|
||||
|
||||
@media print {
|
||||
div.document,
|
||||
div.documentwrapper,
|
||||
div.bodywrapper {
|
||||
margin: 0 !important;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.sphinxsidebar,
|
||||
div.related,
|
||||
div.footer,
|
||||
#top-link {
|
||||
display: none;
|
||||
}
|
||||
}
|
261
#pma/doc/html/_static/classic.css
Normal file
@ -0,0 +1,261 @@
|
||||
/*
|
||||
* default.css_t
|
||||
* ~~~~~~~~~~~~~
|
||||
*
|
||||
* Sphinx stylesheet -- default theme.
|
||||
*
|
||||
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
@import url("basic.css");
|
||||
|
||||
/* -- page layout ----------------------------------------------------------- */
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
background-color: #11303d;
|
||||
color: #000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.document {
|
||||
background-color: #1c4e63;
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0 0 0 230px;
|
||||
}
|
||||
|
||||
div.body {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
padding: 0 20px 30px 20px;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
color: #ffffff;
|
||||
width: 100%;
|
||||
padding: 9px 0 9px 0;
|
||||
text-align: center;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
div.footer a {
|
||||
color: #ffffff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.related {
|
||||
background-color: #133f52;
|
||||
line-height: 30px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.related a {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3 {
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
color: #ffffff;
|
||||
font-size: 1.4em;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h3 a {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h4 {
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
color: #ffffff;
|
||||
font-size: 1.3em;
|
||||
font-weight: normal;
|
||||
margin: 5px 0 0 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.topless {
|
||||
margin: 5px 10px 10px 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
margin: 10px;
|
||||
padding: 0;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a {
|
||||
color: #98dbcc;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input {
|
||||
border: 1px solid #98dbcc;
|
||||
font-family: sans-serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* -- hyperlink styles ------------------------------------------------------ */
|
||||
|
||||
a {
|
||||
color: #355f7c;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #355f7c;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* -- body styles ----------------------------------------------------------- */
|
||||
|
||||
div.body h1,
|
||||
div.body h2,
|
||||
div.body h3,
|
||||
div.body h4,
|
||||
div.body h5,
|
||||
div.body h6 {
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
background-color: #f2f2f2;
|
||||
font-weight: normal;
|
||||
color: #20435c;
|
||||
border-bottom: 1px solid #ccc;
|
||||
margin: 20px -20px 10px -20px;
|
||||
padding: 3px 0 3px 10px;
|
||||
}
|
||||
|
||||
div.body h1 { margin-top: 0; font-size: 200%; }
|
||||
div.body h2 { font-size: 160%; }
|
||||
div.body h3 { font-size: 140%; }
|
||||
div.body h4 { font-size: 120%; }
|
||||
div.body h5 { font-size: 110%; }
|
||||
div.body h6 { font-size: 100%; }
|
||||
|
||||
a.headerlink {
|
||||
color: #c60f0f;
|
||||
font-size: 0.8em;
|
||||
padding: 0 4px 0 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.headerlink:hover {
|
||||
background-color: #c60f0f;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.body p, div.body dd, div.body li, div.body blockquote {
|
||||
text-align: justify;
|
||||
line-height: 130%;
|
||||
}
|
||||
|
||||
div.admonition p.admonition-title + p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.admonition p {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
div.admonition pre {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
div.admonition ul, div.admonition ol {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
div.note {
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
div.seealso {
|
||||
background-color: #ffc;
|
||||
border: 1px solid #ff6;
|
||||
}
|
||||
|
||||
div.topic {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
div.warning {
|
||||
background-color: #ffe4e4;
|
||||
border: 1px solid #f66;
|
||||
}
|
||||
|
||||
p.admonition-title {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
p.admonition-title:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 5px;
|
||||
background-color: #eeffcc;
|
||||
color: #333333;
|
||||
line-height: 120%;
|
||||
border: 1px solid #ac9;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #ecf0f3;
|
||||
padding: 0 1px 0 1px;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #ede;
|
||||
}
|
||||
|
||||
.warning code {
|
||||
background: #efc2c2;
|
||||
}
|
||||
|
||||
.note code {
|
||||
background: #d6d6d6;
|
||||
}
|
||||
|
||||
.viewcode-back {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
div.viewcode-block:target {
|
||||
background-color: #f4debf;
|
||||
border-top: 1px solid #ac9;
|
||||
border-bottom: 1px solid #ac9;
|
||||
}
|
||||
|
||||
div.code-block-caption {
|
||||
color: #efefef;
|
||||
background-color: #1c4e63;
|
||||
}
|
BIN
#pma/doc/html/_static/comment-bright.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
#pma/doc/html/_static/comment-close.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
#pma/doc/html/_static/comment.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
1
#pma/doc/html/_static/default.css
Normal file
@ -0,0 +1 @@
|
||||
@import url("classic.css");
|
287
#pma/doc/html/_static/doctools.js
Normal file
@ -0,0 +1,287 @@
|
||||
/*
|
||||
* doctools.js
|
||||
* ~~~~~~~~~~~
|
||||
*
|
||||
* Sphinx JavaScript utilities for all documentation.
|
||||
*
|
||||
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* select a different prefix for underscore
|
||||
*/
|
||||
$u = _.noConflict();
|
||||
|
||||
/**
|
||||
* make the code below compatible with browsers without
|
||||
* an installed firebug like debugger
|
||||
if (!window.console || !console.firebug) {
|
||||
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
|
||||
"dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
|
||||
"profile", "profileEnd"];
|
||||
window.console = {};
|
||||
for (var i = 0; i < names.length; ++i)
|
||||
window.console[names[i]] = function() {};
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* small helper function to urldecode strings
|
||||
*/
|
||||
jQuery.urldecode = function(x) {
|
||||
return decodeURIComponent(x).replace(/\+/g, ' ');
|
||||
};
|
||||
|
||||
/**
|
||||
* small helper function to urlencode strings
|
||||
*/
|
||||
jQuery.urlencode = encodeURIComponent;
|
||||
|
||||
/**
|
||||
* This function returns the parsed url parameters of the
|
||||
* current request. Multiple values per key are supported,
|
||||
* it will always return arrays of strings for the value parts.
|
||||
*/
|
||||
jQuery.getQueryParameters = function(s) {
|
||||
if (typeof s == 'undefined')
|
||||
s = document.location.search;
|
||||
var parts = s.substr(s.indexOf('?') + 1).split('&');
|
||||
var result = {};
|
||||
for (var i = 0; i < parts.length; i++) {
|
||||
var tmp = parts[i].split('=', 2);
|
||||
var key = jQuery.urldecode(tmp[0]);
|
||||
var value = jQuery.urldecode(tmp[1]);
|
||||
if (key in result)
|
||||
result[key].push(value);
|
||||
else
|
||||
result[key] = [value];
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
* highlight a given string on a jquery object by wrapping it in
|
||||
* span elements with the given class name.
|
||||
*/
|
||||
jQuery.fn.highlightText = function(text, className) {
|
||||
function highlight(node) {
|
||||
if (node.nodeType == 3) {
|
||||
var val = node.nodeValue;
|
||||
var pos = val.toLowerCase().indexOf(text);
|
||||
if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
|
||||
var span = document.createElement("span");
|
||||
span.className = className;
|
||||
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
|
||||
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
|
||||
document.createTextNode(val.substr(pos + text.length)),
|
||||
node.nextSibling));
|
||||
node.nodeValue = val.substr(0, pos);
|
||||
}
|
||||
}
|
||||
else if (!jQuery(node).is("button, select, textarea")) {
|
||||
jQuery.each(node.childNodes, function() {
|
||||
highlight(this);
|
||||
});
|
||||
}
|
||||
}
|
||||
return this.each(function() {
|
||||
highlight(this);
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
* backward compatibility for jQuery.browser
|
||||
* This will be supported until firefox bug is fixed.
|
||||
*/
|
||||
if (!jQuery.browser) {
|
||||
jQuery.uaMatch = function(ua) {
|
||||
ua = ua.toLowerCase();
|
||||
|
||||
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(msie) ([\w.]+)/.exec(ua) ||
|
||||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
|
||||
[];
|
||||
|
||||
return {
|
||||
browser: match[ 1 ] || "",
|
||||
version: match[ 2 ] || "0"
|
||||
};
|
||||
};
|
||||
jQuery.browser = {};
|
||||
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Small JavaScript module for the documentation.
|
||||
*/
|
||||
var Documentation = {
|
||||
|
||||
init : function() {
|
||||
this.fixFirefoxAnchorBug();
|
||||
this.highlightSearchWords();
|
||||
this.initIndexTable();
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* i18n support
|
||||
*/
|
||||
TRANSLATIONS : {},
|
||||
PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
|
||||
LOCALE : 'unknown',
|
||||
|
||||
// gettext and ngettext don't access this so that the functions
|
||||
// can safely bound to a different name (_ = Documentation.gettext)
|
||||
gettext : function(string) {
|
||||
var translated = Documentation.TRANSLATIONS[string];
|
||||
if (typeof translated == 'undefined')
|
||||
return string;
|
||||
return (typeof translated == 'string') ? translated : translated[0];
|
||||
},
|
||||
|
||||
ngettext : function(singular, plural, n) {
|
||||
var translated = Documentation.TRANSLATIONS[singular];
|
||||
if (typeof translated == 'undefined')
|
||||
return (n == 1) ? singular : plural;
|
||||
return translated[Documentation.PLURALEXPR(n)];
|
||||
},
|
||||
|
||||
addTranslations : function(catalog) {
|
||||
for (var key in catalog.messages)
|
||||
this.TRANSLATIONS[key] = catalog.messages[key];
|
||||
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
|
||||
this.LOCALE = catalog.locale;
|
||||
},
|
||||
|
||||
/**
|
||||
* add context elements like header anchor links
|
||||
*/
|
||||
addContextElements : function() {
|
||||
$('div[id] > :header:first').each(function() {
|
||||
$('<a class="headerlink">\u00B6</a>').
|
||||
attr('href', '#' + this.id).
|
||||
attr('title', _('Permalink to this headline')).
|
||||
appendTo(this);
|
||||
});
|
||||
$('dt[id]').each(function() {
|
||||
$('<a class="headerlink">\u00B6</a>').
|
||||
attr('href', '#' + this.id).
|
||||
attr('title', _('Permalink to this definition')).
|
||||
appendTo(this);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* workaround a firefox stupidity
|
||||
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
|
||||
*/
|
||||
fixFirefoxAnchorBug : function() {
|
||||
if (document.location.hash)
|
||||
window.setTimeout(function() {
|
||||
document.location.href += '';
|
||||
}, 10);
|
||||
},
|
||||
|
||||
/**
|
||||
* highlight the search words provided in the url in the text
|
||||
*/
|
||||
highlightSearchWords : function() {
|
||||
var params = $.getQueryParameters();
|
||||
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
|
||||
if (terms.length) {
|
||||
var body = $('div.body');
|
||||
if (!body.length) {
|
||||
body = $('body');
|
||||
}
|
||||
window.setTimeout(function() {
|
||||
$.each(terms, function() {
|
||||
body.highlightText(this.toLowerCase(), 'highlighted');
|
||||
});
|
||||
}, 10);
|
||||
$('<p class="highlight-link"><a href="javascript:Documentation.' +
|
||||
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
|
||||
.appendTo($('#searchbox'));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* init the domain index toggle buttons
|
||||
*/
|
||||
initIndexTable : function() {
|
||||
var togglers = $('img.toggler').click(function() {
|
||||
var src = $(this).attr('src');
|
||||
var idnum = $(this).attr('id').substr(7);
|
||||
$('tr.cg-' + idnum).toggle();
|
||||
if (src.substr(-9) == 'minus.png')
|
||||
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
|
||||
else
|
||||
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
|
||||
}).css('display', '');
|
||||
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
|
||||
togglers.click();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* helper function to hide the search marks again
|
||||
*/
|
||||
hideSearchWords : function() {
|
||||
$('#searchbox .highlight-link').fadeOut(300);
|
||||
$('span.highlighted').removeClass('highlighted');
|
||||
},
|
||||
|
||||
/**
|
||||
* make the url absolute
|
||||
*/
|
||||
makeURL : function(relativeURL) {
|
||||
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
|
||||
},
|
||||
|
||||
/**
|
||||
* get the current relative url
|
||||
*/
|
||||
getCurrentURL : function() {
|
||||
var path = document.location.pathname;
|
||||
var parts = path.split(/\//);
|
||||
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
|
||||
if (this == '..')
|
||||
parts.pop();
|
||||
});
|
||||
var url = parts.join('/');
|
||||
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
|
||||
},
|
||||
|
||||
initOnKeyListeners: function() {
|
||||
$(document).keyup(function(event) {
|
||||
var activeElementType = document.activeElement.tagName;
|
||||
// don't navigate when in search box or textarea
|
||||
if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') {
|
||||
switch (event.keyCode) {
|
||||
case 37: // left
|
||||
var prevHref = $('link[rel="prev"]').prop('href');
|
||||
if (prevHref) {
|
||||
window.location.href = prevHref;
|
||||
return false;
|
||||
}
|
||||
case 39: // right
|
||||
var nextHref = $('link[rel="next"]').prop('href');
|
||||
if (nextHref) {
|
||||
window.location.href = nextHref;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// quick alias for translations
|
||||
_ = Documentation.gettext;
|
||||
|
||||
$(document).ready(function() {
|
||||
Documentation.init();
|
||||
});
|
BIN
#pma/doc/html/_static/down-pressed.png
Normal file
After Width: | Height: | Size: 347 B |
BIN
#pma/doc/html/_static/down.png
Normal file
After Width: | Height: | Size: 347 B |
BIN
#pma/doc/html/_static/file.png
Normal file
After Width: | Height: | Size: 358 B |
10351
#pma/doc/html/_static/jquery.js
vendored
Normal file
BIN
#pma/doc/html/_static/minus.png
Normal file
After Width: | Height: | Size: 173 B |
BIN
#pma/doc/html/_static/plus.png
Normal file
After Width: | Height: | Size: 173 B |
63
#pma/doc/html/_static/pygments.css
Normal file
@ -0,0 +1,63 @@
|
||||
.highlight .hll { background-color: #ffffcc }
|
||||
.highlight { background: #eeffcc; }
|
||||
.highlight .c { color: #408090; font-style: italic } /* Comment */
|
||||
.highlight .err { border: 1px solid #FF0000 } /* Error */
|
||||
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
|
||||
.highlight .o { color: #666666 } /* Operator */
|
||||
.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #007020 } /* Comment.Preproc */
|
||||
.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
|
||||
.highlight .gd { color: #A00000 } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #FF0000 } /* Generic.Error */
|
||||
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #00A000 } /* Generic.Inserted */
|
||||
.highlight .go { color: #333333 } /* Generic.Output */
|
||||
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.highlight .gt { color: #0044DD } /* Generic.Traceback */
|
||||
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #902000 } /* Keyword.Type */
|
||||
.highlight .m { color: #208050 } /* Literal.Number */
|
||||
.highlight .s { color: #4070a0 } /* Literal.String */
|
||||
.highlight .na { color: #4070a0 } /* Name.Attribute */
|
||||
.highlight .nb { color: #007020 } /* Name.Builtin */
|
||||
.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
|
||||
.highlight .no { color: #60add5 } /* Name.Constant */
|
||||
.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
|
||||
.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
|
||||
.highlight .ne { color: #007020 } /* Name.Exception */
|
||||
.highlight .nf { color: #06287e } /* Name.Function */
|
||||
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
|
||||
.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
|
||||
.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #bb60d5 } /* Name.Variable */
|
||||
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.highlight .mb { color: #208050 } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #208050 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #208050 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #208050 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #208050 } /* Literal.Number.Oct */
|
||||
.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #4070a0 } /* Literal.String.Char */
|
||||
.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
|
||||
.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #c65d09 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #235388 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #517918 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
|
||||
.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
|
||||
.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
|
651
#pma/doc/html/_static/searchtools.js
Normal file
@ -0,0 +1,651 @@
|
||||
/*
|
||||
* searchtools.js_t
|
||||
* ~~~~~~~~~~~~~~~~
|
||||
*
|
||||
* Sphinx JavaScript utilities for the full-text search.
|
||||
*
|
||||
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* Non-minified version JS is _stemmer.js if file is provided */
|
||||
/**
|
||||
* Porter Stemmer
|
||||
*/
|
||||
var Stemmer = function() {
|
||||
|
||||
var step2list = {
|
||||
ational: 'ate',
|
||||
tional: 'tion',
|
||||
enci: 'ence',
|
||||
anci: 'ance',
|
||||
izer: 'ize',
|
||||
bli: 'ble',
|
||||
alli: 'al',
|
||||
entli: 'ent',
|
||||
eli: 'e',
|
||||
ousli: 'ous',
|
||||
ization: 'ize',
|
||||
ation: 'ate',
|
||||
ator: 'ate',
|
||||
alism: 'al',
|
||||
iveness: 'ive',
|
||||
fulness: 'ful',
|
||||
ousness: 'ous',
|
||||
aliti: 'al',
|
||||
iviti: 'ive',
|
||||
biliti: 'ble',
|
||||
logi: 'log'
|
||||
};
|
||||
|
||||
var step3list = {
|
||||
icate: 'ic',
|
||||
ative: '',
|
||||
alize: 'al',
|
||||
iciti: 'ic',
|
||||
ical: 'ic',
|
||||
ful: '',
|
||||
ness: ''
|
||||
};
|
||||
|
||||
var c = "[^aeiou]"; // consonant
|
||||
var v = "[aeiouy]"; // vowel
|
||||
var C = c + "[^aeiouy]*"; // consonant sequence
|
||||
var V = v + "[aeiou]*"; // vowel sequence
|
||||
|
||||
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
|
||||
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
|
||||
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
|
||||
var s_v = "^(" + C + ")?" + v; // vowel in stem
|
||||
|
||||
this.stemWord = function (w) {
|
||||
var stem;
|
||||
var suffix;
|
||||
var firstch;
|
||||
var origword = w;
|
||||
|
||||
if (w.length < 3)
|
||||
return w;
|
||||
|
||||
var re;
|
||||
var re2;
|
||||
var re3;
|
||||
var re4;
|
||||
|
||||
firstch = w.substr(0,1);
|
||||
if (firstch == "y")
|
||||
w = firstch.toUpperCase() + w.substr(1);
|
||||
|
||||
// Step 1a
|
||||
re = /^(.+?)(ss|i)es$/;
|
||||
re2 = /^(.+?)([^s])s$/;
|
||||
|
||||
if (re.test(w))
|
||||
w = w.replace(re,"$1$2");
|
||||
else if (re2.test(w))
|
||||
w = w.replace(re2,"$1$2");
|
||||
|
||||
// Step 1b
|
||||
re = /^(.+?)eed$/;
|
||||
re2 = /^(.+?)(ed|ing)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(fp[1])) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
var fp = re2.exec(w);
|
||||
stem = fp[1];
|
||||
re2 = new RegExp(s_v);
|
||||
if (re2.test(stem)) {
|
||||
w = stem;
|
||||
re2 = /(at|bl|iz)$/;
|
||||
re3 = new RegExp("([^aeiouylsz])\\1$");
|
||||
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
||||
if (re2.test(w))
|
||||
w = w + "e";
|
||||
else if (re3.test(w)) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
else if (re4.test(w))
|
||||
w = w + "e";
|
||||
}
|
||||
}
|
||||
|
||||
// Step 1c
|
||||
re = /^(.+?)y$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(s_v);
|
||||
if (re.test(stem))
|
||||
w = stem + "i";
|
||||
}
|
||||
|
||||
// Step 2
|
||||
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
suffix = fp[2];
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(stem))
|
||||
w = stem + step2list[suffix];
|
||||
}
|
||||
|
||||
// Step 3
|
||||
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
suffix = fp[2];
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(stem))
|
||||
w = stem + step3list[suffix];
|
||||
}
|
||||
|
||||
// Step 4
|
||||
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
|
||||
re2 = /^(.+?)(s|t)(ion)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(mgr1);
|
||||
if (re.test(stem))
|
||||
w = stem;
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
var fp = re2.exec(w);
|
||||
stem = fp[1] + fp[2];
|
||||
re2 = new RegExp(mgr1);
|
||||
if (re2.test(stem))
|
||||
w = stem;
|
||||
}
|
||||
|
||||
// Step 5
|
||||
re = /^(.+?)e$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(mgr1);
|
||||
re2 = new RegExp(meq1);
|
||||
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
||||
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
|
||||
w = stem;
|
||||
}
|
||||
re = /ll$/;
|
||||
re2 = new RegExp(mgr1);
|
||||
if (re.test(w) && re2.test(w)) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
|
||||
// and turn initial Y back to y
|
||||
if (firstch == "y")
|
||||
w = firstch.toLowerCase() + w.substr(1);
|
||||
return w;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Simple result scoring code.
|
||||
*/
|
||||
var Scorer = {
|
||||
// Implement the following function to further tweak the score for each result
|
||||
// The function takes a result array [filename, title, anchor, descr, score]
|
||||
// and returns the new score.
|
||||
/*
|
||||
score: function(result) {
|
||||
return result[4];
|
||||
},
|
||||
*/
|
||||
|
||||
// query matches the full name of an object
|
||||
objNameMatch: 11,
|
||||
// or matches in the last dotted part of the object name
|
||||
objPartialMatch: 6,
|
||||
// Additive scores depending on the priority of the object
|
||||
objPrio: {0: 15, // used to be importantResults
|
||||
1: 5, // used to be objectResults
|
||||
2: -5}, // used to be unimportantResults
|
||||
// Used when the priority is not in the mapping.
|
||||
objPrioDefault: 0,
|
||||
|
||||
// query found in title
|
||||
title: 15,
|
||||
// query found in terms
|
||||
term: 5
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Search Module
|
||||
*/
|
||||
var Search = {
|
||||
|
||||
_index : null,
|
||||
_queued_query : null,
|
||||
_pulse_status : -1,
|
||||
|
||||
init : function() {
|
||||
var params = $.getQueryParameters();
|
||||
if (params.q) {
|
||||
var query = params.q[0];
|
||||
$('input[name="q"]')[0].value = query;
|
||||
this.performSearch(query);
|
||||
}
|
||||
},
|
||||
|
||||
loadIndex : function(url) {
|
||||
$.ajax({type: "GET", url: url, data: null,
|
||||
dataType: "script", cache: true,
|
||||
complete: function(jqxhr, textstatus) {
|
||||
if (textstatus != "success") {
|
||||
document.getElementById("searchindexloader").src = url;
|
||||
}
|
||||
}});
|
||||
},
|
||||
|
||||
setIndex : function(index) {
|
||||
var q;
|
||||
this._index = index;
|
||||
if ((q = this._queued_query) !== null) {
|
||||
this._queued_query = null;
|
||||
Search.query(q);
|
||||
}
|
||||
},
|
||||
|
||||
hasIndex : function() {
|
||||
return this._index !== null;
|
||||
},
|
||||
|
||||
deferQuery : function(query) {
|
||||
this._queued_query = query;
|
||||
},
|
||||
|
||||
stopPulse : function() {
|
||||
this._pulse_status = 0;
|
||||
},
|
||||
|
||||
startPulse : function() {
|
||||
if (this._pulse_status >= 0)
|
||||
return;
|
||||
function pulse() {
|
||||
var i;
|
||||
Search._pulse_status = (Search._pulse_status + 1) % 4;
|
||||
var dotString = '';
|
||||
for (i = 0; i < Search._pulse_status; i++)
|
||||
dotString += '.';
|
||||
Search.dots.text(dotString);
|
||||
if (Search._pulse_status > -1)
|
||||
window.setTimeout(pulse, 500);
|
||||
}
|
||||
pulse();
|
||||
},
|
||||
|
||||
/**
|
||||
* perform a search for something (or wait until index is loaded)
|
||||
*/
|
||||
performSearch : function(query) {
|
||||
// create the required interface elements
|
||||
this.out = $('#search-results');
|
||||
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
|
||||
this.dots = $('<span></span>').appendTo(this.title);
|
||||
this.status = $('<p style="display: none"></p>').appendTo(this.out);
|
||||
this.output = $('<ul class="search"/>').appendTo(this.out);
|
||||
|
||||
$('#search-progress').text(_('Preparing search...'));
|
||||
this.startPulse();
|
||||
|
||||
// index already loaded, the browser was quick!
|
||||
if (this.hasIndex())
|
||||
this.query(query);
|
||||
else
|
||||
this.deferQuery(query);
|
||||
},
|
||||
|
||||
/**
|
||||
* execute search (requires search index to be loaded)
|
||||
*/
|
||||
query : function(query) {
|
||||
var i;
|
||||
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
|
||||
|
||||
// stem the searchterms and add them to the correct list
|
||||
var stemmer = new Stemmer();
|
||||
var searchterms = [];
|
||||
var excluded = [];
|
||||
var hlterms = [];
|
||||
var tmp = query.split(/\s+/);
|
||||
var objectterms = [];
|
||||
for (i = 0; i < tmp.length; i++) {
|
||||
if (tmp[i] !== "") {
|
||||
objectterms.push(tmp[i].toLowerCase());
|
||||
}
|
||||
|
||||
if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
|
||||
tmp[i] === "") {
|
||||
// skip this "word"
|
||||
continue;
|
||||
}
|
||||
// stem the word
|
||||
var word = stemmer.stemWord(tmp[i].toLowerCase());
|
||||
var toAppend;
|
||||
// select the correct list
|
||||
if (word[0] == '-') {
|
||||
toAppend = excluded;
|
||||
word = word.substr(1);
|
||||
}
|
||||
else {
|
||||
toAppend = searchterms;
|
||||
hlterms.push(tmp[i].toLowerCase());
|
||||
}
|
||||
// only add if not already in the list
|
||||
if (!$u.contains(toAppend, word))
|
||||
toAppend.push(word);
|
||||
}
|
||||
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
|
||||
|
||||
// console.debug('SEARCH: searching for:');
|
||||
// console.info('required: ', searchterms);
|
||||
// console.info('excluded: ', excluded);
|
||||
|
||||
// prepare search
|
||||
var terms = this._index.terms;
|
||||
var titleterms = this._index.titleterms;
|
||||
|
||||
// array of [filename, title, anchor, descr, score]
|
||||
var results = [];
|
||||
$('#search-progress').empty();
|
||||
|
||||
// lookup as object
|
||||
for (i = 0; i < objectterms.length; i++) {
|
||||
var others = [].concat(objectterms.slice(0, i),
|
||||
objectterms.slice(i+1, objectterms.length));
|
||||
results = results.concat(this.performObjectSearch(objectterms[i], others));
|
||||
}
|
||||
|
||||
// lookup as search terms in fulltext
|
||||
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
|
||||
|
||||
// let the scorer override scores with a custom scoring function
|
||||
if (Scorer.score) {
|
||||
for (i = 0; i < results.length; i++)
|
||||
results[i][4] = Scorer.score(results[i]);
|
||||
}
|
||||
|
||||
// now sort the results by score (in opposite order of appearance, since the
|
||||
// display function below uses pop() to retrieve items) and then
|
||||
// alphabetically
|
||||
results.sort(function(a, b) {
|
||||
var left = a[4];
|
||||
var right = b[4];
|
||||
if (left > right) {
|
||||
return 1;
|
||||
} else if (left < right) {
|
||||
return -1;
|
||||
} else {
|
||||
// same score: sort alphabetically
|
||||
left = a[1].toLowerCase();
|
||||
right = b[1].toLowerCase();
|
||||
return (left > right) ? -1 : ((left < right) ? 1 : 0);
|
||||
}
|
||||
});
|
||||
|
||||
// for debugging
|
||||
//Search.lastresults = results.slice(); // a copy
|
||||
//console.info('search results:', Search.lastresults);
|
||||
|
||||
// print the results
|
||||
var resultCount = results.length;
|
||||
function displayNextItem() {
|
||||
// results left, load the summary and display it
|
||||
if (results.length) {
|
||||
var item = results.pop();
|
||||
var listItem = $('<li style="display:none"></li>');
|
||||
if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') {
|
||||
// dirhtml builder
|
||||
var dirname = item[0] + '/';
|
||||
if (dirname.match(/\/index\/$/)) {
|
||||
dirname = dirname.substring(0, dirname.length-6);
|
||||
} else if (dirname == 'index/') {
|
||||
dirname = '';
|
||||
}
|
||||
listItem.append($('<a/>').attr('href',
|
||||
DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
|
||||
highlightstring + item[2]).html(item[1]));
|
||||
} else {
|
||||
// normal html builders
|
||||
listItem.append($('<a/>').attr('href',
|
||||
item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
|
||||
highlightstring + item[2]).html(item[1]));
|
||||
}
|
||||
if (item[3]) {
|
||||
listItem.append($('<span> (' + item[3] + ')</span>'));
|
||||
Search.output.append(listItem);
|
||||
listItem.slideDown(5, function() {
|
||||
displayNextItem();
|
||||
});
|
||||
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
|
||||
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[0] + '.txt',
|
||||
dataType: "text",
|
||||
complete: function(jqxhr, textstatus) {
|
||||
var data = jqxhr.responseText;
|
||||
if (data !== '' && data !== undefined) {
|
||||
listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
|
||||
}
|
||||
Search.output.append(listItem);
|
||||
listItem.slideDown(5, function() {
|
||||
displayNextItem();
|
||||
});
|
||||
}});
|
||||
} else {
|
||||
// no source available, just display title
|
||||
Search.output.append(listItem);
|
||||
listItem.slideDown(5, function() {
|
||||
displayNextItem();
|
||||
});
|
||||
}
|
||||
}
|
||||
// search finished, update title and status message
|
||||
else {
|
||||
Search.stopPulse();
|
||||
Search.title.text(_('Search Results'));
|
||||
if (!resultCount)
|
||||
Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
|
||||
else
|
||||
Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
|
||||
Search.status.fadeIn(500);
|
||||
}
|
||||
}
|
||||
displayNextItem();
|
||||
},
|
||||
|
||||
/**
|
||||
* search for object names
|
||||
*/
|
||||
performObjectSearch : function(object, otherterms) {
|
||||
var filenames = this._index.filenames;
|
||||
var objects = this._index.objects;
|
||||
var objnames = this._index.objnames;
|
||||
var titles = this._index.titles;
|
||||
|
||||
var i;
|
||||
var results = [];
|
||||
|
||||
for (var prefix in objects) {
|
||||
for (var name in objects[prefix]) {
|
||||
var fullname = (prefix ? prefix + '.' : '') + name;
|
||||
if (fullname.toLowerCase().indexOf(object) > -1) {
|
||||
var score = 0;
|
||||
var parts = fullname.split('.');
|
||||
// check for different match types: exact matches of full name or
|
||||
// "last name" (i.e. last dotted part)
|
||||
if (fullname == object || parts[parts.length - 1] == object) {
|
||||
score += Scorer.objNameMatch;
|
||||
// matches in last name
|
||||
} else if (parts[parts.length - 1].indexOf(object) > -1) {
|
||||
score += Scorer.objPartialMatch;
|
||||
}
|
||||
var match = objects[prefix][name];
|
||||
var objname = objnames[match[1]][2];
|
||||
var title = titles[match[0]];
|
||||
// If more than one term searched for, we require other words to be
|
||||
// found in the name/title/description
|
||||
if (otherterms.length > 0) {
|
||||
var haystack = (prefix + ' ' + name + ' ' +
|
||||
objname + ' ' + title).toLowerCase();
|
||||
var allfound = true;
|
||||
for (i = 0; i < otherterms.length; i++) {
|
||||
if (haystack.indexOf(otherterms[i]) == -1) {
|
||||
allfound = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!allfound) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
var descr = objname + _(', in ') + title;
|
||||
|
||||
var anchor = match[3];
|
||||
if (anchor === '')
|
||||
anchor = fullname;
|
||||
else if (anchor == '-')
|
||||
anchor = objnames[match[1]][1] + '-' + fullname;
|
||||
// add custom score for some objects according to scorer
|
||||
if (Scorer.objPrio.hasOwnProperty(match[2])) {
|
||||
score += Scorer.objPrio[match[2]];
|
||||
} else {
|
||||
score += Scorer.objPrioDefault;
|
||||
}
|
||||
results.push([filenames[match[0]], fullname, '#'+anchor, descr, score]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
},
|
||||
|
||||
/**
|
||||
* search for full-text terms in the index
|
||||
*/
|
||||
performTermsSearch : function(searchterms, excluded, terms, titleterms) {
|
||||
var filenames = this._index.filenames;
|
||||
var titles = this._index.titles;
|
||||
|
||||
var i, j, file;
|
||||
var fileMap = {};
|
||||
var scoreMap = {};
|
||||
var results = [];
|
||||
|
||||
// perform the search on the required terms
|
||||
for (i = 0; i < searchterms.length; i++) {
|
||||
var word = searchterms[i];
|
||||
var files = [];
|
||||
var _o = [
|
||||
{files: terms[word], score: Scorer.term},
|
||||
{files: titleterms[word], score: Scorer.title}
|
||||
];
|
||||
|
||||
// no match but word was a required one
|
||||
if ($u.every(_o, function(o){return o.files === undefined;})) {
|
||||
break;
|
||||
}
|
||||
// found search word in contents
|
||||
$u.each(_o, function(o) {
|
||||
var _files = o.files;
|
||||
if (_files === undefined)
|
||||
return
|
||||
|
||||
if (_files.length === undefined)
|
||||
_files = [_files];
|
||||
files = files.concat(_files);
|
||||
|
||||
// set score for the word in each file to Scorer.term
|
||||
for (j = 0; j < _files.length; j++) {
|
||||
file = _files[j];
|
||||
if (!(file in scoreMap))
|
||||
scoreMap[file] = {}
|
||||
scoreMap[file][word] = o.score;
|
||||
}
|
||||
});
|
||||
|
||||
// create the mapping
|
||||
for (j = 0; j < files.length; j++) {
|
||||
file = files[j];
|
||||
if (file in fileMap)
|
||||
fileMap[file].push(word);
|
||||
else
|
||||
fileMap[file] = [word];
|
||||
}
|
||||
}
|
||||
|
||||
// now check if the files don't contain excluded terms
|
||||
for (file in fileMap) {
|
||||
var valid = true;
|
||||
|
||||
// check if all requirements are matched
|
||||
if (fileMap[file].length != searchterms.length)
|
||||
continue;
|
||||
|
||||
// ensure that none of the excluded terms is in the search result
|
||||
for (i = 0; i < excluded.length; i++) {
|
||||
if (terms[excluded[i]] == file ||
|
||||
titleterms[excluded[i]] == file ||
|
||||
$u.contains(terms[excluded[i]] || [], file) ||
|
||||
$u.contains(titleterms[excluded[i]] || [], file)) {
|
||||
valid = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// if we have still a valid result we can add it to the result list
|
||||
if (valid) {
|
||||
// select one (max) score for the file.
|
||||
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
|
||||
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
|
||||
results.push([filenames[file], titles[file], '', null, score]);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
},
|
||||
|
||||
/**
|
||||
* helper function to return a node containing the
|
||||
* search summary for a given text. keywords is a list
|
||||
* of stemmed words, hlwords is the list of normal, unstemmed
|
||||
* words. the first one is used to find the occurrence, the
|
||||
* latter for highlighting it.
|
||||
*/
|
||||
makeSearchSummary : function(text, keywords, hlwords) {
|
||||
var textLower = text.toLowerCase();
|
||||
var start = 0;
|
||||
$.each(keywords, function() {
|
||||
var i = textLower.indexOf(this.toLowerCase());
|
||||
if (i > -1)
|
||||
start = i;
|
||||
});
|
||||
start = Math.max(start - 120, 0);
|
||||
var excerpt = ((start > 0) ? '...' : '') +
|
||||
$.trim(text.substr(start, 240)) +
|
||||
((start + 240 - text.length) ? '...' : '');
|
||||
var rv = $('<div class="context"></div>').text(excerpt);
|
||||
$.each(hlwords, function() {
|
||||
rv = rv.highlightText(this, 'highlighted');
|
||||
});
|
||||
return rv;
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
Search.init();
|
||||
});
|
159
#pma/doc/html/_static/sidebar.js
Normal file
@ -0,0 +1,159 @@
|
||||
/*
|
||||
* sidebar.js
|
||||
* ~~~~~~~~~~
|
||||
*
|
||||
* This script makes the Sphinx sidebar collapsible.
|
||||
*
|
||||
* .sphinxsidebar contains .sphinxsidebarwrapper. This script adds
|
||||
* in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
|
||||
* used to collapse and expand the sidebar.
|
||||
*
|
||||
* When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
|
||||
* and the width of the sidebar and the margin-left of the document
|
||||
* are decreased. When the sidebar is expanded the opposite happens.
|
||||
* This script saves a per-browser/per-session cookie used to
|
||||
* remember the position of the sidebar among the pages.
|
||||
* Once the browser is closed the cookie is deleted and the position
|
||||
* reset to the default (expanded).
|
||||
*
|
||||
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
$(function() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// global elements used by the functions.
|
||||
// the 'sidebarbutton' element is defined as global after its
|
||||
// creation, in the add_sidebar_button function
|
||||
var bodywrapper = $('.bodywrapper');
|
||||
var sidebar = $('.sphinxsidebar');
|
||||
var sidebarwrapper = $('.sphinxsidebarwrapper');
|
||||
|
||||
// for some reason, the document has no sidebar; do not run into errors
|
||||
if (!sidebar.length) return;
|
||||
|
||||
// original margin-left of the bodywrapper and width of the sidebar
|
||||
// with the sidebar expanded
|
||||
var bw_margin_expanded = bodywrapper.css('margin-left');
|
||||
var ssb_width_expanded = sidebar.width();
|
||||
|
||||
// margin-left of the bodywrapper and width of the sidebar
|
||||
// with the sidebar collapsed
|
||||
var bw_margin_collapsed = '.8em';
|
||||
var ssb_width_collapsed = '.8em';
|
||||
|
||||
// colors used by the current theme
|
||||
var dark_color = $('.related').css('background-color');
|
||||
var light_color = $('.document').css('background-color');
|
||||
|
||||
function sidebar_is_collapsed() {
|
||||
return sidebarwrapper.is(':not(:visible)');
|
||||
}
|
||||
|
||||
function toggle_sidebar() {
|
||||
if (sidebar_is_collapsed())
|
||||
expand_sidebar();
|
||||
else
|
||||
collapse_sidebar();
|
||||
}
|
||||
|
||||
function collapse_sidebar() {
|
||||
sidebarwrapper.hide();
|
||||
sidebar.css('width', ssb_width_collapsed);
|
||||
bodywrapper.css('margin-left', bw_margin_collapsed);
|
||||
sidebarbutton.css({
|
||||
'margin-left': '0',
|
||||
'height': bodywrapper.height()
|
||||
});
|
||||
sidebarbutton.find('span').text('»');
|
||||
sidebarbutton.attr('title', _('Expand sidebar'));
|
||||
document.cookie = 'sidebar=collapsed';
|
||||
}
|
||||
|
||||
function expand_sidebar() {
|
||||
bodywrapper.css('margin-left', bw_margin_expanded);
|
||||
sidebar.css('width', ssb_width_expanded);
|
||||
sidebarwrapper.show();
|
||||
sidebarbutton.css({
|
||||
'margin-left': ssb_width_expanded-12,
|
||||
'height': bodywrapper.height()
|
||||
});
|
||||
sidebarbutton.find('span').text('«');
|
||||
sidebarbutton.attr('title', _('Collapse sidebar'));
|
||||
document.cookie = 'sidebar=expanded';
|
||||
}
|
||||
|
||||
function add_sidebar_button() {
|
||||
sidebarwrapper.css({
|
||||
'float': 'left',
|
||||
'margin-right': '0',
|
||||
'width': ssb_width_expanded - 28
|
||||
});
|
||||
// create the button
|
||||
sidebar.append(
|
||||
'<div id="sidebarbutton"><span>«</span></div>'
|
||||
);
|
||||
var sidebarbutton = $('#sidebarbutton');
|
||||
light_color = sidebarbutton.css('background-color');
|
||||
// find the height of the viewport to center the '<<' in the page
|
||||
var viewport_height;
|
||||
if (window.innerHeight)
|
||||
viewport_height = window.innerHeight;
|
||||
else
|
||||
viewport_height = $(window).height();
|
||||
sidebarbutton.find('span').css({
|
||||
'display': 'block',
|
||||
'margin-top': (viewport_height - sidebar.position().top - 20) / 2
|
||||
});
|
||||
|
||||
sidebarbutton.click(toggle_sidebar);
|
||||
sidebarbutton.attr('title', _('Collapse sidebar'));
|
||||
sidebarbutton.css({
|
||||
'color': '#FFFFFF',
|
||||
'border-left': '1px solid ' + dark_color,
|
||||
'font-size': '1.2em',
|
||||
'cursor': 'pointer',
|
||||
'height': bodywrapper.height(),
|
||||
'padding-top': '1px',
|
||||
'margin-left': ssb_width_expanded - 12
|
||||
});
|
||||
|
||||
sidebarbutton.hover(
|
||||
function () {
|
||||
$(this).css('background-color', dark_color);
|
||||
},
|
||||
function () {
|
||||
$(this).css('background-color', light_color);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function set_position_from_cookie() {
|
||||
if (!document.cookie)
|
||||
return;
|
||||
var items = document.cookie.split(';');
|
||||
for(var k=0; k<items.length; k++) {
|
||||
var key_val = items[k].split('=');
|
||||
var key = key_val[0].replace(/ /, ""); // strip leading spaces
|
||||
if (key == 'sidebar') {
|
||||
var value = key_val[1];
|
||||
if ((value == 'collapsed') && (!sidebar_is_collapsed()))
|
||||
collapse_sidebar();
|
||||
else if ((value == 'expanded') && (sidebar_is_collapsed()))
|
||||
expand_sidebar();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
add_sidebar_button();
|
||||
var sidebarbutton = $('#sidebarbutton');
|
||||
set_position_from_cookie();
|
||||
});
|
1415
#pma/doc/html/_static/underscore.js
Normal file
BIN
#pma/doc/html/_static/up-pressed.png
Normal file
After Width: | Height: | Size: 345 B |
BIN
#pma/doc/html/_static/up.png
Normal file
After Width: | Height: | Size: 345 B |
808
#pma/doc/html/_static/websupport.js
Normal file
@ -0,0 +1,808 @@
|
||||
/*
|
||||
* websupport.js
|
||||
* ~~~~~~~~~~~~~
|
||||
*
|
||||
* sphinx.websupport utilities for all documentation.
|
||||
*
|
||||
* :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
$.fn.autogrow = function() {
|
||||
return this.each(function() {
|
||||
var textarea = this;
|
||||
|
||||
$.fn.autogrow.resize(textarea);
|
||||
|
||||
$(textarea)
|
||||
.focus(function() {
|
||||
textarea.interval = setInterval(function() {
|
||||
$.fn.autogrow.resize(textarea);
|
||||
}, 500);
|
||||
})
|
||||
.blur(function() {
|
||||
clearInterval(textarea.interval);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.autogrow.resize = function(textarea) {
|
||||
var lineHeight = parseInt($(textarea).css('line-height'), 10);
|
||||
var lines = textarea.value.split('\n');
|
||||
var columns = textarea.cols;
|
||||
var lineCount = 0;
|
||||
$.each(lines, function() {
|
||||
lineCount += Math.ceil(this.length / columns) || 1;
|
||||
});
|
||||
var height = lineHeight * (lineCount + 1);
|
||||
$(textarea).css('height', height);
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
(function($) {
|
||||
var comp, by;
|
||||
|
||||
function init() {
|
||||
initEvents();
|
||||
initComparator();
|
||||
}
|
||||
|
||||
function initEvents() {
|
||||
$(document).on("click", 'a.comment-close', function(event) {
|
||||
event.preventDefault();
|
||||
hide($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.vote', function(event) {
|
||||
event.preventDefault();
|
||||
handleVote($(this));
|
||||
});
|
||||
$(document).on("click", 'a.reply', function(event) {
|
||||
event.preventDefault();
|
||||
openReply($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.close-reply', function(event) {
|
||||
event.preventDefault();
|
||||
closeReply($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.sort-option', function(event) {
|
||||
event.preventDefault();
|
||||
handleReSort($(this));
|
||||
});
|
||||
$(document).on("click", 'a.show-proposal', function(event) {
|
||||
event.preventDefault();
|
||||
showProposal($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.hide-proposal', function(event) {
|
||||
event.preventDefault();
|
||||
hideProposal($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.show-propose-change', function(event) {
|
||||
event.preventDefault();
|
||||
showProposeChange($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.hide-propose-change', function(event) {
|
||||
event.preventDefault();
|
||||
hideProposeChange($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.accept-comment', function(event) {
|
||||
event.preventDefault();
|
||||
acceptComment($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.delete-comment', function(event) {
|
||||
event.preventDefault();
|
||||
deleteComment($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.comment-markup', function(event) {
|
||||
event.preventDefault();
|
||||
toggleCommentMarkupBox($(this).attr('id').substring(2));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Set comp, which is a comparator function used for sorting and
|
||||
* inserting comments into the list.
|
||||
*/
|
||||
function setComparator() {
|
||||
// If the first three letters are "asc", sort in ascending order
|
||||
// and remove the prefix.
|
||||
if (by.substring(0,3) == 'asc') {
|
||||
var i = by.substring(3);
|
||||
comp = function(a, b) { return a[i] - b[i]; };
|
||||
} else {
|
||||
// Otherwise sort in descending order.
|
||||
comp = function(a, b) { return b[by] - a[by]; };
|
||||
}
|
||||
|
||||
// Reset link styles and format the selected sort option.
|
||||
$('a.sel').attr('href', '#').removeClass('sel');
|
||||
$('a.by' + by).removeAttr('href').addClass('sel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a comp function. If the user has preferences stored in
|
||||
* the sortBy cookie, use those, otherwise use the default.
|
||||
*/
|
||||
function initComparator() {
|
||||
by = 'rating'; // Default to sort by rating.
|
||||
// If the sortBy cookie is set, use that instead.
|
||||
if (document.cookie.length > 0) {
|
||||
var start = document.cookie.indexOf('sortBy=');
|
||||
if (start != -1) {
|
||||
start = start + 7;
|
||||
var end = document.cookie.indexOf(";", start);
|
||||
if (end == -1) {
|
||||
end = document.cookie.length;
|
||||
by = unescape(document.cookie.substring(start, end));
|
||||
}
|
||||
}
|
||||
}
|
||||
setComparator();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a comment div.
|
||||
*/
|
||||
function show(id) {
|
||||
$('#ao' + id).hide();
|
||||
$('#ah' + id).show();
|
||||
var context = $.extend({id: id}, opts);
|
||||
var popup = $(renderTemplate(popupTemplate, context)).hide();
|
||||
popup.find('textarea[name="proposal"]').hide();
|
||||
popup.find('a.by' + by).addClass('sel');
|
||||
var form = popup.find('#cf' + id);
|
||||
form.submit(function(event) {
|
||||
event.preventDefault();
|
||||
addComment(form);
|
||||
});
|
||||
$('#s' + id).after(popup);
|
||||
popup.slideDown('fast', function() {
|
||||
getComments(id);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide a comment div.
|
||||
*/
|
||||
function hide(id) {
|
||||
$('#ah' + id).hide();
|
||||
$('#ao' + id).show();
|
||||
var div = $('#sc' + id);
|
||||
div.slideUp('fast', function() {
|
||||
div.remove();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform an ajax request to get comments for a node
|
||||
* and insert the comments into the comments tree.
|
||||
*/
|
||||
function getComments(id) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: opts.getCommentsURL,
|
||||
data: {node: id},
|
||||
success: function(data, textStatus, request) {
|
||||
var ul = $('#cl' + id);
|
||||
var speed = 100;
|
||||
$('#cf' + id)
|
||||
.find('textarea[name="proposal"]')
|
||||
.data('source', data.source);
|
||||
|
||||
if (data.comments.length === 0) {
|
||||
ul.html('<li>No comments yet.</li>');
|
||||
ul.data('empty', true);
|
||||
} else {
|
||||
// If there are comments, sort them and put them in the list.
|
||||
var comments = sortComments(data.comments);
|
||||
speed = data.comments.length * 100;
|
||||
appendComments(comments, ul);
|
||||
ul.data('empty', false);
|
||||
}
|
||||
$('#cn' + id).slideUp(speed + 200);
|
||||
ul.slideDown(speed);
|
||||
},
|
||||
error: function(request, textStatus, error) {
|
||||
showError('Oops, there was a problem retrieving the comments.');
|
||||
},
|
||||
dataType: 'json'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a comment via ajax and insert the comment into the comment tree.
|
||||
*/
|
||||
function addComment(form) {
|
||||
var node_id = form.find('input[name="node"]').val();
|
||||
var parent_id = form.find('input[name="parent"]').val();
|
||||
var text = form.find('textarea[name="comment"]').val();
|
||||
var proposal = form.find('textarea[name="proposal"]').val();
|
||||
|
||||
if (text == '') {
|
||||
showError('Please enter a comment.');
|
||||
return;
|
||||
}
|
||||
|
||||
// Disable the form that is being submitted.
|
||||
form.find('textarea,input').attr('disabled', 'disabled');
|
||||
|
||||
// Send the comment to the server.
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: opts.addCommentURL,
|
||||
dataType: 'json',
|
||||
data: {
|
||||
node: node_id,
|
||||
parent: parent_id,
|
||||
text: text,
|
||||
proposal: proposal
|
||||
},
|
||||
success: function(data, textStatus, error) {
|
||||
// Reset the form.
|
||||
if (node_id) {
|
||||
hideProposeChange(node_id);
|
||||
}
|
||||
form.find('textarea')
|
||||
.val('')
|
||||
.add(form.find('input'))
|
||||
.removeAttr('disabled');
|
||||
var ul = $('#cl' + (node_id || parent_id));
|
||||
if (ul.data('empty')) {
|
||||
$(ul).empty();
|
||||
ul.data('empty', false);
|
||||
}
|
||||
insertComment(data.comment);
|
||||
var ao = $('#ao' + node_id);
|
||||
ao.find('img').attr({'src': opts.commentBrightImage});
|
||||
if (node_id) {
|
||||
// if this was a "root" comment, remove the commenting box
|
||||
// (the user can get it back by reopening the comment popup)
|
||||
$('#ca' + node_id).slideUp();
|
||||
}
|
||||
},
|
||||
error: function(request, textStatus, error) {
|
||||
form.find('textarea,input').removeAttr('disabled');
|
||||
showError('Oops, there was a problem adding the comment.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively append comments to the main comment list and children
|
||||
* lists, creating the comment tree.
|
||||
*/
|
||||
function appendComments(comments, ul) {
|
||||
$.each(comments, function() {
|
||||
var div = createCommentDiv(this);
|
||||
ul.append($(document.createElement('li')).html(div));
|
||||
appendComments(this.children, div.find('ul.comment-children'));
|
||||
// To avoid stagnating data, don't store the comments children in data.
|
||||
this.children = null;
|
||||
div.data('comment', this);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* After adding a new comment, it must be inserted in the correct
|
||||
* location in the comment tree.
|
||||
*/
|
||||
function insertComment(comment) {
|
||||
var div = createCommentDiv(comment);
|
||||
|
||||
// To avoid stagnating data, don't store the comments children in data.
|
||||
comment.children = null;
|
||||
div.data('comment', comment);
|
||||
|
||||
var ul = $('#cl' + (comment.node || comment.parent));
|
||||
var siblings = getChildren(ul);
|
||||
|
||||
var li = $(document.createElement('li'));
|
||||
li.hide();
|
||||
|
||||
// Determine where in the parents children list to insert this comment.
|
||||
for(i=0; i < siblings.length; i++) {
|
||||
if (comp(comment, siblings[i]) <= 0) {
|
||||
$('#cd' + siblings[i].id)
|
||||
.parent()
|
||||
.before(li.html(div));
|
||||
li.slideDown('fast');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// If we get here, this comment rates lower than all the others,
|
||||
// or it is the only comment in the list.
|
||||
ul.append(li.html(div));
|
||||
li.slideDown('fast');
|
||||
}
|
||||
|
||||
function acceptComment(id) {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: opts.acceptCommentURL,
|
||||
data: {id: id},
|
||||
success: function(data, textStatus, request) {
|
||||
$('#cm' + id).fadeOut('fast');
|
||||
$('#cd' + id).removeClass('moderate');
|
||||
},
|
||||
error: function(request, textStatus, error) {
|
||||
showError('Oops, there was a problem accepting the comment.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteComment(id) {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: opts.deleteCommentURL,
|
||||
data: {id: id},
|
||||
success: function(data, textStatus, request) {
|
||||
var div = $('#cd' + id);
|
||||
if (data == 'delete') {
|
||||
// Moderator mode: remove the comment and all children immediately
|
||||
div.slideUp('fast', function() {
|
||||
div.remove();
|
||||
});
|
||||
return;
|
||||
}
|
||||
// User mode: only mark the comment as deleted
|
||||
div
|
||||
.find('span.user-id:first')
|
||||
.text('[deleted]').end()
|
||||
.find('div.comment-text:first')
|
||||
.text('[deleted]').end()
|
||||
.find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id +
|
||||
', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id)
|
||||
.remove();
|
||||
var comment = div.data('comment');
|
||||
comment.username = '[deleted]';
|
||||
comment.text = '[deleted]';
|
||||
div.data('comment', comment);
|
||||
},
|
||||
error: function(request, textStatus, error) {
|
||||
showError('Oops, there was a problem deleting the comment.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showProposal(id) {
|
||||
$('#sp' + id).hide();
|
||||
$('#hp' + id).show();
|
||||
$('#pr' + id).slideDown('fast');
|
||||
}
|
||||
|
||||
function hideProposal(id) {
|
||||
$('#hp' + id).hide();
|
||||
$('#sp' + id).show();
|
||||
$('#pr' + id).slideUp('fast');
|
||||
}
|
||||
|
||||
function showProposeChange(id) {
|
||||
$('#pc' + id).hide();
|
||||
$('#hc' + id).show();
|
||||
var textarea = $('#pt' + id);
|
||||
textarea.val(textarea.data('source'));
|
||||
$.fn.autogrow.resize(textarea[0]);
|
||||
textarea.slideDown('fast');
|
||||
}
|
||||
|
||||
function hideProposeChange(id) {
|
||||
$('#hc' + id).hide();
|
||||
$('#pc' + id).show();
|
||||
var textarea = $('#pt' + id);
|
||||
textarea.val('').removeAttr('disabled');
|
||||
textarea.slideUp('fast');
|
||||
}
|
||||
|
||||
function toggleCommentMarkupBox(id) {
|
||||
$('#mb' + id).toggle();
|
||||
}
|
||||
|
||||
/** Handle when the user clicks on a sort by link. */
|
||||
function handleReSort(link) {
|
||||
var classes = link.attr('class').split(/\s+/);
|
||||
for (var i=0; i<classes.length; i++) {
|
||||
if (classes[i] != 'sort-option') {
|
||||
by = classes[i].substring(2);
|
||||
}
|
||||
}
|
||||
setComparator();
|
||||
// Save/update the sortBy cookie.
|
||||
var expiration = new Date();
|
||||
expiration.setDate(expiration.getDate() + 365);
|
||||
document.cookie= 'sortBy=' + escape(by) +
|
||||
';expires=' + expiration.toUTCString();
|
||||
$('ul.comment-ul').each(function(index, ul) {
|
||||
var comments = getChildren($(ul), true);
|
||||
comments = sortComments(comments);
|
||||
appendComments(comments, $(ul).empty());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to process a vote when a user clicks an arrow.
|
||||
*/
|
||||
function handleVote(link) {
|
||||
if (!opts.voting) {
|
||||
showError("You'll need to login to vote.");
|
||||
return;
|
||||
}
|
||||
|
||||
var id = link.attr('id');
|
||||
if (!id) {
|
||||
// Didn't click on one of the voting arrows.
|
||||
return;
|
||||
}
|
||||
// If it is an unvote, the new vote value is 0,
|
||||
// Otherwise it's 1 for an upvote, or -1 for a downvote.
|
||||
var value = 0;
|
||||
if (id.charAt(1) != 'u') {
|
||||
value = id.charAt(0) == 'u' ? 1 : -1;
|
||||
}
|
||||
// The data to be sent to the server.
|
||||
var d = {
|
||||
comment_id: id.substring(2),
|
||||
value: value
|
||||
};
|
||||
|
||||
// Swap the vote and unvote links.
|
||||
link.hide();
|
||||
$('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id)
|
||||
.show();
|
||||
|
||||
// The div the comment is displayed in.
|
||||
var div = $('div#cd' + d.comment_id);
|
||||
var data = div.data('comment');
|
||||
|
||||
// If this is not an unvote, and the other vote arrow has
|
||||
// already been pressed, unpress it.
|
||||
if ((d.value !== 0) && (data.vote === d.value * -1)) {
|
||||
$('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide();
|
||||
$('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show();
|
||||
}
|
||||
|
||||
// Update the comments rating in the local data.
|
||||
data.rating += (data.vote === 0) ? d.value : (d.value - data.vote);
|
||||
data.vote = d.value;
|
||||
div.data('comment', data);
|
||||
|
||||
// Change the rating text.
|
||||
div.find('.rating:first')
|
||||
.text(data.rating + ' point' + (data.rating == 1 ? '' : 's'));
|
||||
|
||||
// Send the vote information to the server.
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: opts.processVoteURL,
|
||||
data: d,
|
||||
error: function(request, textStatus, error) {
|
||||
showError('Oops, there was a problem casting that vote.');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Open a reply form used to reply to an existing comment.
|
||||
*/
|
||||
function openReply(id) {
|
||||
// Swap out the reply link for the hide link
|
||||
$('#rl' + id).hide();
|
||||
$('#cr' + id).show();
|
||||
|
||||
// Add the reply li to the children ul.
|
||||
var div = $(renderTemplate(replyTemplate, {id: id})).hide();
|
||||
$('#cl' + id)
|
||||
.prepend(div)
|
||||
// Setup the submit handler for the reply form.
|
||||
.find('#rf' + id)
|
||||
.submit(function(event) {
|
||||
event.preventDefault();
|
||||
addComment($('#rf' + id));
|
||||
closeReply(id);
|
||||
})
|
||||
.find('input[type=button]')
|
||||
.click(function() {
|
||||
closeReply(id);
|
||||
});
|
||||
div.slideDown('fast', function() {
|
||||
$('#rf' + id).find('textarea').focus();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the reply form opened with openReply.
|
||||
*/
|
||||
function closeReply(id) {
|
||||
// Remove the reply div from the DOM.
|
||||
$('#rd' + id).slideUp('fast', function() {
|
||||
$(this).remove();
|
||||
});
|
||||
|
||||
// Swap out the hide link for the reply link
|
||||
$('#cr' + id).hide();
|
||||
$('#rl' + id).show();
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively sort a tree of comments using the comp comparator.
|
||||
*/
|
||||
function sortComments(comments) {
|
||||
comments.sort(comp);
|
||||
$.each(comments, function() {
|
||||
this.children = sortComments(this.children);
|
||||
});
|
||||
return comments;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the children comments from a ul. If recursive is true,
|
||||
* recursively include childrens' children.
|
||||
*/
|
||||
function getChildren(ul, recursive) {
|
||||
var children = [];
|
||||
ul.children().children("[id^='cd']")
|
||||
.each(function() {
|
||||
var comment = $(this).data('comment');
|
||||
if (recursive)
|
||||
comment.children = getChildren($(this).find('#cl' + comment.id), true);
|
||||
children.push(comment);
|
||||
});
|
||||
return children;
|
||||
}
|
||||
|
||||
/** Create a div to display a comment in. */
|
||||
function createCommentDiv(comment) {
|
||||
if (!comment.displayed && !opts.moderator) {
|
||||
return $('<div class="moderate">Thank you! Your comment will show up '
|
||||
+ 'once it is has been approved by a moderator.</div>');
|
||||
}
|
||||
// Prettify the comment rating.
|
||||
comment.pretty_rating = comment.rating + ' point' +
|
||||
(comment.rating == 1 ? '' : 's');
|
||||
// Make a class (for displaying not yet moderated comments differently)
|
||||
comment.css_class = comment.displayed ? '' : ' moderate';
|
||||
// Create a div for this comment.
|
||||
var context = $.extend({}, opts, comment);
|
||||
var div = $(renderTemplate(commentTemplate, context));
|
||||
|
||||
// If the user has voted on this comment, highlight the correct arrow.
|
||||
if (comment.vote) {
|
||||
var direction = (comment.vote == 1) ? 'u' : 'd';
|
||||
div.find('#' + direction + 'v' + comment.id).hide();
|
||||
div.find('#' + direction + 'u' + comment.id).show();
|
||||
}
|
||||
|
||||
if (opts.moderator || comment.text != '[deleted]') {
|
||||
div.find('a.reply').show();
|
||||
if (comment.proposal_diff)
|
||||
div.find('#sp' + comment.id).show();
|
||||
if (opts.moderator && !comment.displayed)
|
||||
div.find('#cm' + comment.id).show();
|
||||
if (opts.moderator || (opts.username == comment.username))
|
||||
div.find('#dc' + comment.id).show();
|
||||
}
|
||||
return div;
|
||||
}
|
||||
|
||||
/**
|
||||
* A simple template renderer. Placeholders such as <%id%> are replaced
|
||||
* by context['id'] with items being escaped. Placeholders such as <#id#>
|
||||
* are not escaped.
|
||||
*/
|
||||
function renderTemplate(template, context) {
|
||||
var esc = $(document.createElement('div'));
|
||||
|
||||
function handle(ph, escape) {
|
||||
var cur = context;
|
||||
$.each(ph.split('.'), function() {
|
||||
cur = cur[this];
|
||||
});
|
||||
return escape ? esc.text(cur || "").html() : cur;
|
||||
}
|
||||
|
||||
return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
|
||||
return handle(arguments[2], arguments[1] == '%' ? true : false);
|
||||
});
|
||||
}
|
||||
|
||||
/** Flash an error message briefly. */
|
||||
function showError(message) {
|
||||
$(document.createElement('div')).attr({'class': 'popup-error'})
|
||||
.append($(document.createElement('div'))
|
||||
.attr({'class': 'error-message'}).text(message))
|
||||
.appendTo('body')
|
||||
.fadeIn("slow")
|
||||
.delay(2000)
|
||||
.fadeOut("slow");
|
||||
}
|
||||
|
||||
/** Add a link the user uses to open the comments popup. */
|
||||
$.fn.comment = function() {
|
||||
return this.each(function() {
|
||||
var id = $(this).attr('id').substring(1);
|
||||
var count = COMMENT_METADATA[id];
|
||||
var title = count + ' comment' + (count == 1 ? '' : 's');
|
||||
var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
|
||||
var addcls = count == 0 ? ' nocomment' : '';
|
||||
$(this)
|
||||
.append(
|
||||
$(document.createElement('a')).attr({
|
||||
href: '#',
|
||||
'class': 'sphinx-comment-open' + addcls,
|
||||
id: 'ao' + id
|
||||
})
|
||||
.append($(document.createElement('img')).attr({
|
||||
src: image,
|
||||
alt: 'comment',
|
||||
title: title
|
||||
}))
|
||||
.click(function(event) {
|
||||
event.preventDefault();
|
||||
show($(this).attr('id').substring(2));
|
||||
})
|
||||
)
|
||||
.append(
|
||||
$(document.createElement('a')).attr({
|
||||
href: '#',
|
||||
'class': 'sphinx-comment-close hidden',
|
||||
id: 'ah' + id
|
||||
})
|
||||
.append($(document.createElement('img')).attr({
|
||||
src: opts.closeCommentImage,
|
||||
alt: 'close',
|
||||
title: 'close'
|
||||
}))
|
||||
.click(function(event) {
|
||||
event.preventDefault();
|
||||
hide($(this).attr('id').substring(2));
|
||||
})
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
var opts = {
|
||||
processVoteURL: '/_process_vote',
|
||||
addCommentURL: '/_add_comment',
|
||||
getCommentsURL: '/_get_comments',
|
||||
acceptCommentURL: '/_accept_comment',
|
||||
deleteCommentURL: '/_delete_comment',
|
||||
commentImage: '/static/_static/comment.png',
|
||||
closeCommentImage: '/static/_static/comment-close.png',
|
||||
loadingImage: '/static/_static/ajax-loader.gif',
|
||||
commentBrightImage: '/static/_static/comment-bright.png',
|
||||
upArrow: '/static/_static/up.png',
|
||||
downArrow: '/static/_static/down.png',
|
||||
upArrowPressed: '/static/_static/up-pressed.png',
|
||||
downArrowPressed: '/static/_static/down-pressed.png',
|
||||
voting: false,
|
||||
moderator: false
|
||||
};
|
||||
|
||||
if (typeof COMMENT_OPTIONS != "undefined") {
|
||||
opts = jQuery.extend(opts, COMMENT_OPTIONS);
|
||||
}
|
||||
|
||||
var popupTemplate = '\
|
||||
<div class="sphinx-comments" id="sc<%id%>">\
|
||||
<p class="sort-options">\
|
||||
Sort by:\
|
||||
<a href="#" class="sort-option byrating">best rated</a>\
|
||||
<a href="#" class="sort-option byascage">newest</a>\
|
||||
<a href="#" class="sort-option byage">oldest</a>\
|
||||
</p>\
|
||||
<div class="comment-header">Comments</div>\
|
||||
<div class="comment-loading" id="cn<%id%>">\
|
||||
loading comments... <img src="<%loadingImage%>" alt="" /></div>\
|
||||
<ul id="cl<%id%>" class="comment-ul"></ul>\
|
||||
<div id="ca<%id%>">\
|
||||
<p class="add-a-comment">Add a comment\
|
||||
(<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
|
||||
<div class="comment-markup-box" id="mb<%id%>">\
|
||||
reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
|
||||
<code>``code``</code>, \
|
||||
code blocks: <code>::</code> and an indented block after blank line</div>\
|
||||
<form method="post" id="cf<%id%>" class="comment-form" action="">\
|
||||
<textarea name="comment" cols="80"></textarea>\
|
||||
<p class="propose-button">\
|
||||
<a href="#" id="pc<%id%>" class="show-propose-change">\
|
||||
Propose a change ▹\
|
||||
</a>\
|
||||
<a href="#" id="hc<%id%>" class="hide-propose-change">\
|
||||
Propose a change ▿\
|
||||
</a>\
|
||||
</p>\
|
||||
<textarea name="proposal" id="pt<%id%>" cols="80"\
|
||||
spellcheck="false"></textarea>\
|
||||
<input type="submit" value="Add comment" />\
|
||||
<input type="hidden" name="node" value="<%id%>" />\
|
||||
<input type="hidden" name="parent" value="" />\
|
||||
</form>\
|
||||
</div>\
|
||||
</div>';
|
||||
|
||||
var commentTemplate = '\
|
||||
<div id="cd<%id%>" class="sphinx-comment<%css_class%>">\
|
||||
<div class="vote">\
|
||||
<div class="arrow">\
|
||||
<a href="#" id="uv<%id%>" class="vote" title="vote up">\
|
||||
<img src="<%upArrow%>" />\
|
||||
</a>\
|
||||
<a href="#" id="uu<%id%>" class="un vote" title="vote up">\
|
||||
<img src="<%upArrowPressed%>" />\
|
||||
</a>\
|
||||
</div>\
|
||||
<div class="arrow">\
|
||||
<a href="#" id="dv<%id%>" class="vote" title="vote down">\
|
||||
<img src="<%downArrow%>" id="da<%id%>" />\
|
||||
</a>\
|
||||
<a href="#" id="du<%id%>" class="un vote" title="vote down">\
|
||||
<img src="<%downArrowPressed%>" />\
|
||||
</a>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="comment-content">\
|
||||
<p class="tagline comment">\
|
||||
<span class="user-id"><%username%></span>\
|
||||
<span class="rating"><%pretty_rating%></span>\
|
||||
<span class="delta"><%time.delta%></span>\
|
||||
</p>\
|
||||
<div class="comment-text comment"><#text#></div>\
|
||||
<p class="comment-opts comment">\
|
||||
<a href="#" class="reply hidden" id="rl<%id%>">reply ▹</a>\
|
||||
<a href="#" class="close-reply" id="cr<%id%>">reply ▿</a>\
|
||||
<a href="#" id="sp<%id%>" class="show-proposal">proposal ▹</a>\
|
||||
<a href="#" id="hp<%id%>" class="hide-proposal">proposal ▿</a>\
|
||||
<a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\
|
||||
<span id="cm<%id%>" class="moderation hidden">\
|
||||
<a href="#" id="ac<%id%>" class="accept-comment">accept</a>\
|
||||
</span>\
|
||||
</p>\
|
||||
<pre class="proposal" id="pr<%id%>">\
|
||||
<#proposal_diff#>\
|
||||
</pre>\
|
||||
<ul class="comment-children" id="cl<%id%>"></ul>\
|
||||
</div>\
|
||||
<div class="clearleft"></div>\
|
||||
</div>\
|
||||
</div>';
|
||||
|
||||
var replyTemplate = '\
|
||||
<li>\
|
||||
<div class="reply-div" id="rd<%id%>">\
|
||||
<form id="rf<%id%>">\
|
||||
<textarea name="comment" cols="80"></textarea>\
|
||||
<input type="submit" value="Add reply" />\
|
||||
<input type="button" value="Cancel" />\
|
||||
<input type="hidden" name="parent" value="<%id%>" />\
|
||||
<input type="hidden" name="node" value="" />\
|
||||
</form>\
|
||||
</div>\
|
||||
</li>';
|
||||
|
||||
$(document).ready(function() {
|
||||
init();
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function() {
|
||||
// add comment anchors for all paragraphs that are commentable
|
||||
$('.sphinx-has-comment').comment();
|
||||
|
||||
// highlight search words in search results
|
||||
$("div.context").each(function() {
|
||||
var params = $.getQueryParameters();
|
||||
var terms = (params.q) ? params.q[0].split(/\s+/) : [];
|
||||
var result = $(this);
|
||||
$.each(terms, function() {
|
||||
result.highlightText(this.toLowerCase(), 'highlighted');
|
||||
});
|
||||
});
|
||||
|
||||
// directly open comment window if requested
|
||||
var anchor = document.location.hash;
|
||||
if (anchor.substring(0, 9) == '#comment-') {
|
||||
$('#ao' + anchor.substring(9)).click();
|
||||
document.location.hash = '#s' + anchor.substring(9);
|
||||
}
|
||||
});
|
5145
#pma/doc/html/config.html
Normal file
154
#pma/doc/html/copyright.html
Normal file
@ -0,0 +1,154 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Copyright — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="#" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="next" title="Credits" href="credits.html" />
|
||||
<link rel="prev" title="Distributing and packaging phpMyAdmin" href="vendors.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="credits.html" title="Credits"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="vendors.html" title="Distributing and packaging phpMyAdmin"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="copyright">
|
||||
<span id="id1"></span><h1>Copyright<a class="headerlink" href="#copyright" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="highlight-none"><div class="highlight"><pre>Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
|
||||
Copyright (C) 2001-2014 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]
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>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.</p>
|
||||
<p>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.</p>
|
||||
<p>You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <<a class="reference external" href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>>.</p>
|
||||
<div class="section" id="third-party-licenses">
|
||||
<h2>Third party licenses<a class="headerlink" href="#third-party-licenses" title="Permalink to this headline">¶</a></h2>
|
||||
<p>phpMyAdmin includes several third party libraries which come under their
|
||||
respective licenses.</p>
|
||||
<p>jQuery’s license, which is where we got the files under js/jquery/ is
|
||||
(MIT|GPL), a copy of each license is available in this repository (GPL
|
||||
is available as LICENSE, MIT as js/jquery/MIT-LICENSE.txt).</p>
|
||||
<p>TCPDF which is located under libraries/tcpdf is released under GPL
|
||||
version 3 and the license is available as libraries/tcpdf/LICENSE.TXT.</p>
|
||||
<p>DejaVu fonts which are located under libraries/tcpdf/fonts/ and their
|
||||
license is documented in
|
||||
libraries/tcpdf/fonts/dejavu-fonts-ttf-2.33/LICENSE.</p>
|
||||
<p>PHP-gettext which is located under libraries/php-gettext/ is released
|
||||
under GPL version 2 license which is available in the LICENSE file.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Copyright</a><ul>
|
||||
<li><a class="reference internal" href="#third-party-licenses">Third party licenses</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="vendors.html"
|
||||
title="previous chapter">Distributing and packaging phpMyAdmin</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="credits.html"
|
||||
title="next chapter">Credits</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/copyright.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="credits.html" title="Credits"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="vendors.html" title="Distributing and packaging phpMyAdmin"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="#">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
1336
#pma/doc/html/credits.html
Normal file
115
#pma/doc/html/developers.html
Normal file
@ -0,0 +1,115 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Developers Information — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="next" title="Distributing and packaging phpMyAdmin" href="vendors.html" />
|
||||
<link rel="prev" title="FAQ - Frequently Asked Questions" href="faq.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="vendors.html" title="Distributing and packaging phpMyAdmin"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="faq.html" title="FAQ - Frequently Asked Questions"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="developers-information">
|
||||
<span id="developers"></span><h1>Developers Information<a class="headerlink" href="#developers-information" title="Permalink to this headline">¶</a></h1>
|
||||
<p>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.</p>
|
||||
<p>You can check out all the possibilities to contribute in the
|
||||
<a class="reference external" href="https://www.phpmyadmin.net/contribute/">contribute section on our website</a>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="faq.html"
|
||||
title="previous chapter">FAQ - Frequently Asked Questions</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="vendors.html"
|
||||
title="next chapter">Distributing and packaging phpMyAdmin</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/developers.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="vendors.html" title="Distributing and packaging phpMyAdmin"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="faq.html" title="FAQ - Frequently Asked Questions"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
1955
#pma/doc/html/faq.html
Normal file
3821
#pma/doc/html/genindex.html
Normal file
613
#pma/doc/html/glossary.html
Normal file
@ -0,0 +1,613 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Glossary — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="prev" title="Credits" href="credits.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="credits.html" title="Credits"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="glossary">
|
||||
<span id="id1"></span><h1>Glossary<a class="headerlink" href="#glossary" title="Permalink to this headline">¶</a></h1>
|
||||
<p>From Wikipedia, the free encyclopedia</p>
|
||||
<dl class="glossary docutils">
|
||||
<dt id="term-htaccess">.htaccess</dt>
|
||||
<dd><p class="first">the default name of Apache’s directory-level configuration file.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/.htaccess">https://www.wikipedia.org/wiki/.htaccess</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-acl">ACL</dt>
|
||||
<dd>Access Contol List</dd>
|
||||
<dt id="term-blowfish">Blowfish</dt>
|
||||
<dd><p class="first">a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Blowfish_(cipher)">https://www.wikipedia.org/wiki/Blowfish_(cipher)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-browser">Browser</dt>
|
||||
<dd><p class="first">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.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://en.wikipedia.org/wiki/Web_browser">https://en.wikipedia.org/wiki/Web_browser</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-bzip2">bzip2</dt>
|
||||
<dd><p class="first">a free software/open source data compression algorithm and program developed by Julian Seward.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Bzip2">https://www.wikipedia.org/wiki/Bzip2</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-cgi">CGI</dt>
|
||||
<dd><p class="first">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.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/CGI">https://www.wikipedia.org/wiki/CGI</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-changelog">Changelog</dt>
|
||||
<dd><p class="first">a log or record of changes made to a project.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Changelog">https://www.wikipedia.org/wiki/Changelog</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-client">Client</dt>
|
||||
<dd><p class="first">a computer system that accesses a (remote) service on another computer by some kind of network.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Client_(computing)">https://www.wikipedia.org/wiki/Client_(computing)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-column">column</dt>
|
||||
<dd><p class="first">a set of data values of a particular simple type, one for each row of the table.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Column_(database)">https://www.wikipedia.org/wiki/Column_(database)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-cookie">Cookie</dt>
|
||||
<dd><p class="first">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.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/HTTP_cookie">https://www.wikipedia.org/wiki/HTTP_cookie</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-csv">CSV</dt>
|
||||
<dd><p class="first">Comma- separated values</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Comma-separated_values">https://www.wikipedia.org/wiki/Comma-separated_values</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-db">DB</dt>
|
||||
<dd>look at <a class="reference internal" href="#term-database"><span class="xref std std-term">database</span></a></dd>
|
||||
<dt id="term-database">database</dt>
|
||||
<dd><p class="first">an organized collection of data.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Database">https://www.wikipedia.org/wiki/Database</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-engine">Engine</dt>
|
||||
<dd>look at <a class="reference internal" href="#term-storage-engines"><span class="xref std std-term">storage engines</span></a></dd>
|
||||
<dt id="term-extension">extension</dt>
|
||||
<dd><p class="first">a PHP module that extends PHP with additional functionality.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/extension">https://www.wikipedia.org/wiki/extension</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-faq">FAQ</dt>
|
||||
<dd><p class="first">Frequently Asked Questions is a list of commonly asked question and there
|
||||
answers.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/FAQ">https://www.wikipedia.org/wiki/FAQ</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-field">Field</dt>
|
||||
<dd><p class="first">one part of divided data/columns.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Field_(computer_science)">https://www.wikipedia.org/wiki/Field_(computer_science)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-foreign-key">foreign key</dt>
|
||||
<dd><p class="first">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.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Foreign_key">https://www.wikipedia.org/wiki/Foreign_key</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-fpdf">FPDF</dt>
|
||||
<dd><p class="first">the free <a class="reference internal" href="#term-pdf"><span class="xref std std-term">PDF</span></a> library</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="http://www.fpdf.org/">http://www.fpdf.org/</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-gd">GD</dt>
|
||||
<dd><p class="first">Graphics Library by Thomas Boutell and others for dynamically manipulating images.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/GD_Graphics_Library">https://www.wikipedia.org/wiki/GD_Graphics_Library</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-gd2">GD2</dt>
|
||||
<dd>look at <a class="reference internal" href="#term-gd"><span class="xref std std-term">gd</span></a></dd>
|
||||
<dt id="term-gzip">gzip</dt>
|
||||
<dd><p class="first">gzip is short for GNU zip, a GNU free software file compression program.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Gzip">https://www.wikipedia.org/wiki/Gzip</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-host">host</dt>
|
||||
<dd><p class="first">any machine connected to a computer network, a node that has a hostname.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Host">https://www.wikipedia.org/wiki/Host</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-hostname">hostname</dt>
|
||||
<dd><p class="first">the unique name by which a network attached device is known on a network.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Hostname">https://www.wikipedia.org/wiki/Hostname</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-http">HTTP</dt>
|
||||
<dd><p class="first">HyperText Transfer Protocol is the primary method used to transfer or
|
||||
convey information on the World Wide Web.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/HyperText_Transfer_Protocol">https://www.wikipedia.org/wiki/HyperText_Transfer_Protocol</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-https">https</dt>
|
||||
<dd><p class="first">a <a class="reference internal" href="#term-http"><span class="xref std std-term">HTTP</span></a>-connection with additional security measures.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Https:_URI_scheme">https://www.wikipedia.org/wiki/Https:_URI_scheme</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-iec">IEC</dt>
|
||||
<dd>International Electrotechnical Commission</dd>
|
||||
<dt id="term-iis">IIS</dt>
|
||||
<dd><p class="first">Internet Information Services is a set of Internet-based services for
|
||||
servers using Microsoft Windows.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Internet_Information_Services">https://www.wikipedia.org/wiki/Internet_Information_Services</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-index">Index</dt>
|
||||
<dd><p class="first">a feature that allows quick access to the rows in a table.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Index_(database)">https://www.wikipedia.org/wiki/Index_(database)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-ip">IP</dt>
|
||||
<dd><p class="first">Internet Protocol is a data-oriented protocol used by source and
|
||||
destination hosts for communicating data across a packet-switched
|
||||
internetwork.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Internet_Protocol">https://www.wikipedia.org/wiki/Internet_Protocol</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-ip-address">IP Address</dt>
|
||||
<dd><p class="first">a unique number that devices use in order to identify and communicate with each other on a network utilizing the Internet Protocol standard.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/IP_Address">https://www.wikipedia.org/wiki/IP_Address</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-ipv6">IPv6</dt>
|
||||
<dd><p class="first">IPv6 (Internet Protocol version 6) is the latest revision of the
|
||||
Internet Protocol (<a class="reference internal" href="#term-ip"><span class="xref std std-term">IP</span></a>), designed to deal with the
|
||||
long-anticipated problem of its precedessor IPv4 running out of addresses.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/IPv6">https://www.wikipedia.org/wiki/IPv6</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-isapi">ISAPI</dt>
|
||||
<dd><p class="first">Internet Server Application Programming Interface is the API of Internet Information Services (IIS).</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/ISAPI">https://www.wikipedia.org/wiki/ISAPI</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-isp">ISP</dt>
|
||||
<dd><p class="first">Internet service provider is a business or organization that offers users
|
||||
access to the Internet and related services.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/ISP">https://www.wikipedia.org/wiki/ISP</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-iso">ISO</dt>
|
||||
<dd>International Standards Organisation</dd>
|
||||
<dt id="term-jpeg">JPEG</dt>
|
||||
<dd><p class="first">a most commonly used standard method of lossy compression for photographic images.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/JPEG">https://www.wikipedia.org/wiki/JPEG</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-jpg">JPG</dt>
|
||||
<dd>look at <a class="reference internal" href="#term-jpeg"><span class="xref std std-term">jpeg</span></a></dd>
|
||||
<dt id="term-key">Key</dt>
|
||||
<dd>look at <a class="reference internal" href="#term-index"><span class="xref std std-term">index</span></a></dd>
|
||||
<dt id="term-latex">LATEX</dt>
|
||||
<dd><p class="first">a document preparation system for the TEX typesetting program.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/LaTeX">https://www.wikipedia.org/wiki/LaTeX</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-mac">Mac</dt>
|
||||
<dd><p class="first">Apple Macintosh is line of personal computers is designed, developed, manufactured, and marketed by Apple Computer.</p>
|
||||
<p class="last">. seealso:: <<a class="reference external" href="https://www.wikipedia.org/wiki/Mac">https://www.wikipedia.org/wiki/Mac</a>></p>
|
||||
</dd>
|
||||
<dt id="term-mac-os-x">Mac OS X</dt>
|
||||
<dd><p class="first">the operating system which is included with all currently shipping Apple Macintosh computers in the consumer and professional markets.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Mac_OS_X">https://www.wikipedia.org/wiki/Mac_OS_X</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-mcrypt">MCrypt</dt>
|
||||
<dd><p class="first">a cryptographic library.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/MCrypt">https://www.wikipedia.org/wiki/MCrypt</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-42">mcrypt</dt>
|
||||
<dd><p class="first">the MCrypt PHP extension.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://php.net/mcrypt">https://php.net/mcrypt</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-mime">MIME</dt>
|
||||
<dd><p class="first">Multipurpose Internet Mail Extensions is
|
||||
an Internet Standard for the format of e-mail.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/MIME">https://www.wikipedia.org/wiki/MIME</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-module">module</dt>
|
||||
<dd><p class="first">some sort of extension for the Apache Webserver.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/module">https://www.wikipedia.org/wiki/module</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-mod-proxy-fcgi">mod_proxy_fcgi</dt>
|
||||
<dd>an Apache module implmenting a Fast CGI interface; PHP can be run as a CGI module, FastCGI, or
|
||||
directly as an Apache module.</dd>
|
||||
<dt id="term-mysql">MySQL</dt>
|
||||
<dd><p class="first">a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS).</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/MySQL">https://www.wikipedia.org/wiki/MySQL</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-mysqli">mysqli</dt>
|
||||
<dd><p class="first">the improved MySQL client PHP extension.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://php.net/mysqli">https://php.net/mysqli</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-48">mysql</dt>
|
||||
<dd><p class="first">the MySQL client PHP extension.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://php.net/mysql">https://php.net/mysql</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-opendocument">OpenDocument</dt>
|
||||
<dd><p class="first">open standard for office documents.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/OpenDocument">https://www.wikipedia.org/wiki/OpenDocument</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-os-x">OS X</dt>
|
||||
<dd><p class="first">look at <a class="reference internal" href="#term-mac-os-x"><span class="xref std std-term">Mac OS X</span></a>.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/OS_X">https://www.wikipedia.org/wiki/OS_X</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-pdf">PDF</dt>
|
||||
<dd><p class="first">Portable Document Format is a file format developed by Adobe Systems for
|
||||
representing two dimensional documents in a device independent and
|
||||
resolution independent format.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Portable_Document_Format">https://www.wikipedia.org/wiki/Portable_Document_Format</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-pear">PEAR</dt>
|
||||
<dd><p class="first">the PHP Extension and Application Repository.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://pear.php.net/">https://pear.php.net/</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-pcre">PCRE</dt>
|
||||
<dd><p class="first">Perl Compatible Regular Expressions is the perl-compatible regular
|
||||
expression functions for PHP</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://php.net/pcre">https://php.net/pcre</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-php">PHP</dt>
|
||||
<dd><p class="first">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.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/PHP">https://www.wikipedia.org/wiki/PHP</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-port">port</dt>
|
||||
<dd><p class="first">a connection through which data is sent and received.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Port_(computing)">https://www.wikipedia.org/wiki/Port_(computing)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-rfc">RFC</dt>
|
||||
<dd><p class="first">Request for Comments (RFC) documents are a series of memoranda
|
||||
encompassing new research, innovations, and methodologies applicable to
|
||||
Internet technologies.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Request_for_Comments">https://www.wikipedia.org/wiki/Request_for_Comments</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-rfc-1952">RFC 1952</dt>
|
||||
<dd><p class="first">GZIP file format specification version 4.3</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><span class="target" id="index-0"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc1952.html"><strong>RFC 1952</strong></a></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-row-record-tuple">Row (record, tuple)</dt>
|
||||
<dd><p class="first">represents a single, implicitly structured data item in a table.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Row_(database)">https://www.wikipedia.org/wiki/Row_(database)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-server">Server</dt>
|
||||
<dd><p class="first">a computer system that provides services to other computing systems over a network.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Server_(computing)">https://www.wikipedia.org/wiki/Server_(computing)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-storage-engines">Storage Engines</dt>
|
||||
<dd><p class="first">handlers for different table types</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://dev.mysql.com/doc/en/storage-engines.html">https://dev.mysql.com/doc/en/storage-engines.html</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-socket">socket</dt>
|
||||
<dd><p class="first">a form of inter-process communication.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Socket#Computer_sockets">https://www.wikipedia.org/wiki/Socket#Computer_sockets</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-ssl">SSL</dt>
|
||||
<dd><p class="first">Secure Sockets Layer is a cryptographic protocol which provides secure
|
||||
communication on the Internet.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Secure_Sockets_Layer">https://www.wikipedia.org/wiki/Secure_Sockets_Layer</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-stored-procedure">Stored procedure</dt>
|
||||
<dd><p class="first">a subroutine available to applications accessing a relational database system</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://en.wikipedia.org/wiki/Stored_procedure">https://en.wikipedia.org/wiki/Stored_procedure</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-sql">SQL</dt>
|
||||
<dd><p class="first">Structured Query Language</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/SQL">https://www.wikipedia.org/wiki/SQL</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-table">table</dt>
|
||||
<dd><p class="first">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.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Table_(database)">https://www.wikipedia.org/wiki/Table_(database)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-tar">tar</dt>
|
||||
<dd><p class="first">a type of archive file format: the Tape ARchive format.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Tar_(file_format)">https://www.wikipedia.org/wiki/Tar_(file_format)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-tcp">TCP</dt>
|
||||
<dd><p class="first">Transmission Control Protocol is one of the core protocols of the
|
||||
Internet protocol suite.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/TCP">https://www.wikipedia.org/wiki/TCP</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-tcpdf">TCPDF</dt>
|
||||
<dd><p class="first">Rewrite of <a class="reference internal" href="#term-ufpdf"><span class="xref std std-term">UFPDF</span></a> with various improvements.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://tcpdf.org/">https://tcpdf.org/</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-trigger">trigger</dt>
|
||||
<dd><p class="first">a procedural code that is automatically executed in response to certain events on a particular table or view in a database</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://en.wikipedia.org/wiki/Database_trigger">https://en.wikipedia.org/wiki/Database_trigger</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-ufpdf">UFPDF</dt>
|
||||
<dd>Unicode/UTF-8 extension for <a class="reference internal" href="#term-fpdf"><span class="xref std std-term">FPDF</span></a></dd>
|
||||
<dt id="term-url">URL</dt>
|
||||
<dd><p class="first">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.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/URL">https://www.wikipedia.org/wiki/URL</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-webserver">Webserver</dt>
|
||||
<dd><p class="first">A computer (program) that is responsible for accepting HTTP requests from clients and serving them Web pages.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Webserver">https://www.wikipedia.org/wiki/Webserver</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-xml">XML</dt>
|
||||
<dd><p class="first">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.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/XML">https://www.wikipedia.org/wiki/XML</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-zip">ZIP</dt>
|
||||
<dd><p class="first">a popular data compression and archival format.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/ZIP_(file_format)">https://www.wikipedia.org/wiki/ZIP_(file_format)</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
<dt id="term-zlib">zlib</dt>
|
||||
<dd><p class="first">an open-source, cross- platform data compression library by Jean-loup Gailly and Mark Adler.</p>
|
||||
<div class="last admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><<a class="reference external" href="https://www.wikipedia.org/wiki/Zlib">https://www.wikipedia.org/wiki/Zlib</a>></p>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="credits.html"
|
||||
title="previous chapter">Credits</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/glossary.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="credits.html" title="Credits"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
145
#pma/doc/html/import_export.html
Normal file
@ -0,0 +1,145 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Import and export — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="up" title="User Guide" href="user.html" />
|
||||
<link rel="next" title="FAQ - Frequently Asked Questions" href="faq.html" />
|
||||
<link rel="prev" title="Other sources of information" href="other.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="faq.html" title="FAQ - Frequently Asked Questions"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="other.html" title="Other sources of information"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="user.html" accesskey="U">User Guide</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="import-and-export">
|
||||
<h1>Import and export<a class="headerlink" href="#import-and-export" title="Permalink to this headline">¶</a></h1>
|
||||
<p>In addition to the standard Import and Export tab, you can also import an SQL file directly by dragging and dropping
|
||||
it from your local file manager to the phpMyAdmin interface in your web browser.</p>
|
||||
<div class="section" id="open-document-spreadsheet">
|
||||
<h2>Open Document Spreadsheet<a class="headerlink" href="#open-document-spreadsheet" title="Permalink to this headline">¶</a></h2>
|
||||
<p>When importing an ODS speadsheet, the spreadsheet must be named in a specific way in order to make the
|
||||
import as simple as possible.</p>
|
||||
<div class="section" id="table-name">
|
||||
<h3>Table name<a class="headerlink" href="#table-name" title="Permalink to this headline">¶</a></h3>
|
||||
<p>During import, phpMyAdmin uses the sheet name as the table name; you should rename the
|
||||
sheet in your spreadsheet program in order to match your existing table name (or the table you wish to create,
|
||||
though this is less of a concern since you could quickly rename the new table from the Operations tab).</p>
|
||||
</div>
|
||||
<div class="section" id="column-names">
|
||||
<h3>Column names<a class="headerlink" href="#column-names" title="Permalink to this headline">¶</a></h3>
|
||||
<p>You should also make the first row of your spreadsheet a header with the names of the columns (this can be
|
||||
accomplished by inserting a new row at the top of your spreadsheet). When on the Import screen, select the
|
||||
checkbox for “The first line of the file contains the table column names;” this way your newly imported
|
||||
data will go to the proper columns.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Import and export</a><ul>
|
||||
<li><a class="reference internal" href="#open-document-spreadsheet">Open Document Spreadsheet</a><ul>
|
||||
<li><a class="reference internal" href="#table-name">Table name</a></li>
|
||||
<li><a class="reference internal" href="#column-names">Column names</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="other.html"
|
||||
title="previous chapter">Other sources of information</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="faq.html"
|
||||
title="next chapter">FAQ - Frequently Asked Questions</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/import_export.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="faq.html" title="FAQ - Frequently Asked Questions"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="other.html" title="Other sources of information"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="user.html" >User Guide</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
210
#pma/doc/html/index.html
Normal file
@ -0,0 +1,210 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Welcome to phpMyAdmin’s documentation! — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="#" />
|
||||
<link rel="next" title="Introduction" href="intro.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="intro.html" title="Introduction"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="#">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="welcome-to-phpmyadmin-s-documentation">
|
||||
<h1>Welcome to phpMyAdmin’s documentation!<a class="headerlink" href="#welcome-to-phpmyadmin-s-documentation" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Contents:</p>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="intro.html#supported-features">Supported features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="intro.html#a-word-about-users">A word about users</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="require.html">Requirements</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="require.html#web-server">Web server</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="require.html#php">PHP</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="require.html#database">Database</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="require.html#web-browser">Web browser</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="setup.html">Installation</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#linux-distributions">Linux distributions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#installing-on-windows">Installing on Windows</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#installing-using-composer">Installing using Composer</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#installing-using-docker">Installing using Docker</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#quick-install">Quick Install</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#verifying-phpmyadmin-releases">Verifying phpMyAdmin releases</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#phpmyadmin-configuration-storage">phpMyAdmin configuration storage</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#upgrading-from-an-older-version">Upgrading from an older version</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#using-authentication-modes">Using authentication modes</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#securing-your-phpmyadmin-installation">Securing your phpMyAdmin installation</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="setup.html#known-issues">Known issues</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#basic-settings">Basic settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#server-connection-settings">Server connection settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#generic-settings">Generic settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#cookie-authentication-options">Cookie authentication options</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#navigation-panel-setup">Navigation panel setup</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#main-panel">Main panel</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#database-structure">Database structure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#browse-mode">Browse mode</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#editing-mode">Editing mode</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#export-and-import-settings">Export and import settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#tabs-display-settings">Tabs display settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#pdf-options">PDF Options</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#languages">Languages</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#web-server-settings">Web server settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#theme-settings">Theme settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#design-customization">Design customization</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#text-fields">Text fields</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#sql-query-box-settings">SQL query box settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#web-server-upload-save-import-directories">Web server upload/save/import directories</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#various-display-setting">Various display setting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#page-titles">Page titles</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#theme-manager-settings">Theme manager settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#default-queries">Default queries</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#mysql-settings">MySQL settings</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#developer">Developer</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="config.html#examples">Examples</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="user.html">User Guide</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="transformations.html">Transformations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="privileges.html">User management</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="other.html">Other sources of information</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="import_export.html">Import and export</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ - Frequently Asked Questions</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#server">Server</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#configuration">Configuration</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#known-limitations">Known limitations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#isps-multi-user-installations">ISPs, multi-user installations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#browsers-or-client-os">Browsers or client OS</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#using-phpmyadmin">Using phpMyAdmin</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#phpmyadmin-project">phpMyAdmin project</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#security">Security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="faq.html#synchronization">Synchronization</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="developers.html">Developers Information</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="vendors.html">Distributing and packaging phpMyAdmin</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="vendors.html#external-libraries">External libraries</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="copyright.html">Copyright</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="copyright.html#third-party-licenses">Third party licenses</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="credits.html">Credits</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="credits.html#credits-in-chronological-order">Credits, in chronological order</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="credits.html#translators">Translators</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="credits.html#documentation-translators">Documentation translators</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="credits.html#original-credits-of-version-2-1-0">Original Credits of Version 2.1.0</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="indices-and-tables">
|
||||
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
|
||||
<ul class="simple">
|
||||
<li><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></li>
|
||||
<li><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></li>
|
||||
<li><a class="reference internal" href="glossary.html#glossary"><span class="std std-ref">Glossary</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="#">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Welcome to phpMyAdmin’s documentation!</a></li>
|
||||
<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
|
||||
</ul>
|
||||
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="intro.html"
|
||||
title="next chapter">Introduction</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/index.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="intro.html" title="Introduction"
|
||||
>next</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="#">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
179
#pma/doc/html/intro.html
Normal file
@ -0,0 +1,179 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Introduction — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="next" title="Requirements" href="require.html" />
|
||||
<link rel="prev" title="Welcome to phpMyAdmin’s documentation!" href="index.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="require.html" title="Requirements"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="index.html" title="Welcome to phpMyAdmin’s documentation!"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="introduction">
|
||||
<span id="intro"></span><h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
|
||||
<p>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.</p>
|
||||
<div class="section" id="supported-features">
|
||||
<h2>Supported features<a class="headerlink" href="#supported-features" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Currently phpMyAdmin can:</p>
|
||||
<ul class="simple">
|
||||
<li>browse and drop databases, tables, views, columns and indexes</li>
|
||||
<li>display multiple results sets through stored procedures or queries</li>
|
||||
<li>create, copy, drop, rename and alter databases, tables, columns and
|
||||
indexes</li>
|
||||
<li>maintenance server, databases and tables, with proposals on server
|
||||
configuration</li>
|
||||
<li>execute, edit and bookmark any <a class="reference internal" href="glossary.html#term-sql"><span class="xref std std-term">SQL</span></a>-statement, even batch-queries</li>
|
||||
<li>load text files into tables</li>
|
||||
<li>create <a class="footnote-reference" href="#f1" id="id1">[1]</a> and read dumps of tables</li>
|
||||
<li>export <a class="footnote-reference" href="#f1" id="id2">[1]</a> data to various formats: <a class="reference internal" href="glossary.html#term-csv"><span class="xref std std-term">CSV</span></a>, <a class="reference internal" href="glossary.html#term-xml"><span class="xref std std-term">XML</span></a>, <a class="reference internal" href="glossary.html#term-pdf"><span class="xref std std-term">PDF</span></a>,
|
||||
<a class="reference internal" href="glossary.html#term-iso"><span class="xref std std-term">ISO</span></a>/<a class="reference internal" href="glossary.html#term-iec"><span class="xref std std-term">IEC</span></a> 26300 - <a class="reference internal" href="glossary.html#term-opendocument"><span class="xref std std-term">OpenDocument</span></a> Text and Spreadsheet, Microsoft
|
||||
Word 2000, and LATEX formats</li>
|
||||
<li>import data and <a class="reference internal" href="glossary.html#term-48"><span class="xref std std-term">MySQL</span></a> structures from <a class="reference internal" href="glossary.html#term-opendocument"><span class="xref std std-term">OpenDocument</span></a> spreadsheets, as
|
||||
well as <a class="reference internal" href="glossary.html#term-xml"><span class="xref std std-term">XML</span></a>, <a class="reference internal" href="glossary.html#term-csv"><span class="xref std std-term">CSV</span></a>, and <a class="reference internal" href="glossary.html#term-sql"><span class="xref std std-term">SQL</span></a> files</li>
|
||||
<li>administer multiple servers</li>
|
||||
<li>manage MySQL users and privileges</li>
|
||||
<li>check referential integrity in MyISAM tables</li>
|
||||
<li>using Query-by-example (QBE), create complex queries automatically
|
||||
connecting required tables</li>
|
||||
<li>create <a class="reference internal" href="glossary.html#term-pdf"><span class="xref std std-term">PDF</span></a> graphics of your
|
||||
database layout</li>
|
||||
<li>search globally in a database or a subset of it</li>
|
||||
<li>transform stored data into any format using a set of predefined
|
||||
functions, like displaying BLOB-data as image or download-link</li>
|
||||
<li>track changes on databases, tables and views</li>
|
||||
<li>support InnoDB tables and foreign keys</li>
|
||||
<li>support mysqli, the improved MySQL extension see <a class="reference internal" href="faq.html#faq1-17"><span class="std std-ref">1.17 Which Database versions does phpMyAdmin support?</span></a></li>
|
||||
<li>create, edit, call, export and drop stored procedures and functions</li>
|
||||
<li>create, edit, export and drop events and triggers</li>
|
||||
<li>communicate in <a class="reference external" href="https://www.phpmyadmin.net/translations/">80 different languages</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="a-word-about-users">
|
||||
<h2>A word about users<a class="headerlink" href="#a-word-about-users" title="Permalink to this headline">¶</a></h2>
|
||||
<p>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.</p>
|
||||
<p class="rubric">Footnotes</p>
|
||||
<table class="docutils footnote" frame="void" id="f1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label">[1]</td><td><em>(<a class="fn-backref" href="#id1">1</a>, <a class="fn-backref" href="#id2">2</a>)</em> phpMyAdmin can compress (<a class="reference internal" href="glossary.html#term-zip"><span class="xref std std-term">Zip</span></a>, <a class="reference internal" href="glossary.html#term-gzip"><span class="xref std std-term">GZip</span></a> or <a class="reference internal" href="glossary.html#term-rfc-1952"><span class="xref std std-term">RFC 1952</span></a>
|
||||
formats) dumps and <a class="reference internal" href="glossary.html#term-csv"><span class="xref std std-term">CSV</span></a> exports if you use PHP with
|
||||
<a class="reference internal" href="glossary.html#term-zlib"><span class="xref std std-term">Zlib</span></a> support (<code class="docutils literal"><span class="pre">--with-zlib</span></code>).
|
||||
Proper support may also need changes in <code class="file docutils literal"><span class="pre">php.ini</span></code>.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Introduction</a><ul>
|
||||
<li><a class="reference internal" href="#supported-features">Supported features</a></li>
|
||||
<li><a class="reference internal" href="#a-word-about-users">A word about users</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="index.html"
|
||||
title="previous chapter">Welcome to phpMyAdmin’s documentation!</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="require.html"
|
||||
title="next chapter">Requirements</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/intro.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="require.html" title="Requirements"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="index.html" title="Welcome to phpMyAdmin’s documentation!"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
BIN
#pma/doc/html/objects.inv
Normal file
132
#pma/doc/html/other.html
Normal file
@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Other sources of information — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="up" title="User Guide" href="user.html" />
|
||||
<link rel="next" title="Import and export" href="import_export.html" />
|
||||
<link rel="prev" title="User management" href="privileges.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="import_export.html" title="Import and export"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="privileges.html" title="User management"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="user.html" accesskey="U">User Guide</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="other-sources-of-information">
|
||||
<h1>Other sources of information<a class="headerlink" href="#other-sources-of-information" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="printed-book">
|
||||
<h2>Printed Book<a class="headerlink" href="#printed-book" title="Permalink to this headline">¶</a></h2>
|
||||
<p>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 <a class="reference external" href="https://www.phpmyadmin.net/docs/">books at the phpMyAdmin site</a>.</p>
|
||||
</div>
|
||||
<div class="section" id="tutorials">
|
||||
<h2>Tutorials<a class="headerlink" href="#tutorials" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Third party tutorials and articles are listed on our <a class="reference external" href="https://wiki.phpmyadmin.net/pma/Articles">wiki page</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Other sources of information</a><ul>
|
||||
<li><a class="reference internal" href="#printed-book">Printed Book</a></li>
|
||||
<li><a class="reference internal" href="#tutorials">Tutorials</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="privileges.html"
|
||||
title="previous chapter">User management</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="import_export.html"
|
||||
title="next chapter">Import and export</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/other.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="import_export.html" title="Import and export"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="privileges.html" title="User management"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="user.html" >User Guide</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
186
#pma/doc/html/privileges.html
Normal file
@ -0,0 +1,186 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>User management — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="up" title="User Guide" href="user.html" />
|
||||
<link rel="next" title="Other sources of information" href="other.html" />
|
||||
<link rel="prev" title="Transformations" href="transformations.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="other.html" title="Other sources of information"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="transformations.html" title="Transformations"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="user.html" accesskey="U">User Guide</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="user-management">
|
||||
<h1>User management<a class="headerlink" href="#user-management" title="Permalink to this headline">¶</a></h1>
|
||||
<p>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.</p>
|
||||
<p>Within phpMyAdmin, user management is controlled via the <span class="guilabel">Users</span> link
|
||||
from the main page. Users can be created, edited, and removed.</p>
|
||||
<div class="section" id="creating-a-new-user">
|
||||
<h2>Creating a new user<a class="headerlink" href="#creating-a-new-user" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To create a new user, click the <span class="guilabel">Add a new user</span> link near the bottom
|
||||
of the <span class="guilabel">Users</span> 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.</p>
|
||||
</div>
|
||||
<div class="section" id="editing-an-existing-user">
|
||||
<h2>Editing an existing user<a class="headerlink" href="#editing-an-existing-user" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To edit an existing user, simply click the pencil icon to the right of that
|
||||
user in the <span class="guilabel">Users</span> page. You can then edit their global- and
|
||||
database-specific privileges, change their password, or even copy those
|
||||
privileges to a new user.</p>
|
||||
</div>
|
||||
<div class="section" id="deleting-a-user">
|
||||
<h2>Deleting a user<a class="headerlink" href="#deleting-a-user" title="Permalink to this headline">¶</a></h2>
|
||||
<p>From the <span class="guilabel">Users</span> 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.</p>
|
||||
</div>
|
||||
<div class="section" id="assigning-privileges-to-user-for-a-specific-database">
|
||||
<h2>Assigning privileges to user for a specific database<a class="headerlink" href="#assigning-privileges-to-user-for-a-specific-database" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Users are assigned to databases by editing the user record (from the
|
||||
<span class="guilabel">Users</span> link on the home page) not from within the <span class="guilabel">Users</span>
|
||||
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.</p>
|
||||
</div>
|
||||
<div class="section" id="configurable-menus-and-user-groups">
|
||||
<span id="configurablemenus"></span><h2>Configurable menus and user groups<a class="headerlink" href="#configurable-menus-and-user-groups" title="Permalink to this headline">¶</a></h2>
|
||||
<p>By enabling <span class="target" id="index-0"></span><a class="reference internal" href="config.html#cfg_Servers_usergroups"><code class="xref config config-option docutils literal"><span class="pre">$cfg['Servers'][$i]['usergroups']</span></code></a> and
|
||||
<span class="target" id="index-1"></span><a class="reference internal" href="config.html#cfg_Servers_usergroups"><code class="xref config config-option docutils literal"><span class="pre">$cfg['Servers'][$i]['usergroups']</span></code></a> you can customize what users
|
||||
will see in the phpMyAdmin navigation.</p>
|
||||
<div class="admonition warning">
|
||||
<p class="first admonition-title">Warning</p>
|
||||
<p class="last">This feature only limits what a user sees, he is still able to use all the
|
||||
functions. So this can not be considered as a security limitation. Should
|
||||
you want to limit what users can do, use MySQL privileges to achieve that.</p>
|
||||
</div>
|
||||
<p>With this feature enabled, the <span class="guilabel">User accounts</span> management interface gains
|
||||
a second tab for managing <span class="guilabel">User groups</span>, where you can define what each
|
||||
group will view (see image below) and you can then assign each user to one of
|
||||
these groups. Users will be presented with a simplified user interface, which might be
|
||||
useful for inexperienced users who could be overwhelmed by all the features
|
||||
phpMyAdmin provides.</p>
|
||||
<img alt="_images/usergroups.png" src="_images/usergroups.png" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">User management</a><ul>
|
||||
<li><a class="reference internal" href="#creating-a-new-user">Creating a new user</a></li>
|
||||
<li><a class="reference internal" href="#editing-an-existing-user">Editing an existing user</a></li>
|
||||
<li><a class="reference internal" href="#deleting-a-user">Deleting a user</a></li>
|
||||
<li><a class="reference internal" href="#assigning-privileges-to-user-for-a-specific-database">Assigning privileges to user for a specific database</a></li>
|
||||
<li><a class="reference internal" href="#configurable-menus-and-user-groups">Configurable menus and user groups</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="transformations.html"
|
||||
title="previous chapter">Transformations</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="other.html"
|
||||
title="next chapter">Other sources of information</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/privileges.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="other.html" title="Other sources of information"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="transformations.html" title="Transformations"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="user.html" >User Guide</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
169
#pma/doc/html/require.html
Normal file
@ -0,0 +1,169 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Requirements — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="next" title="Installation" href="setup.html" />
|
||||
<link rel="prev" title="Introduction" href="intro.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="setup.html" title="Installation"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="intro.html" title="Introduction"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="requirements">
|
||||
<span id="require"></span><h1>Requirements<a class="headerlink" href="#requirements" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="web-server">
|
||||
<h2>Web server<a class="headerlink" href="#web-server" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Since phpMyAdmin’s interface is based entirely in your browser, you’ll need a
|
||||
web server (such as Apache, nginx, <a class="reference internal" href="glossary.html#term-iis"><span class="xref std std-term">IIS</span></a>) to install phpMyAdmin’s files into.</p>
|
||||
</div>
|
||||
<div class="section" id="php">
|
||||
<h2>PHP<a class="headerlink" href="#php" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li>You need PHP 5.5.0 or newer, with <code class="docutils literal"><span class="pre">session</span></code> support, the Standard PHP Library
|
||||
(SPL) extension, JSON support, and the <code class="docutils literal"><span class="pre">mbstring</span></code> extension.</li>
|
||||
<li>To support uploading of ZIP files, you need the PHP <code class="docutils literal"><span class="pre">zip</span></code> extension.</li>
|
||||
<li>You need GD2 support in PHP to display inline thumbnails of JPEGs
|
||||
(“image/jpeg: inline”) with their original aspect ratio.</li>
|
||||
<li>When using the cookie authentication (the default), the <a class="reference external" href="https://www.php.net/openssl">openssl</a> extension is strongly suggested.</li>
|
||||
<li>To support upload progress bars, see <a class="reference internal" href="faq.html#faq2-9"><span class="std std-ref">2.9 Seeing an upload progress bar</span></a>.</li>
|
||||
<li>To support XML and Open Document Spreadsheet importing, you need the
|
||||
<a class="reference external" href="https://www.php.net/libxml">libxml</a> extension.</li>
|
||||
<li>To support reCAPTCHA on the login page, you need the
|
||||
<a class="reference external" href="https://www.php.net/openssl">openssl</a> extension.</li>
|
||||
<li>To support displaying phpMyAdmin’s latest version, you need to enable
|
||||
<code class="docutils literal"><span class="pre">allow_url_open</span></code> in your <code class="file docutils literal"><span class="pre">php.ini</span></code> or to have the
|
||||
<a class="reference external" href="https://www.php.net/curl">curl</a> extension.</li>
|
||||
<li>Performance suggestion: install the <code class="docutils literal"><span class="pre">ctype</span></code> extension.</li>
|
||||
</ul>
|
||||
<div class="admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><a class="reference internal" href="faq.html#faq1-31"><span class="std std-ref">1.31 Does phpMyAdmin support PHP 5?</span></a>, <a class="reference internal" href="setup.html#authentication-modes"><span class="std std-ref">Using authentication modes</span></a></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="database">
|
||||
<h2>Database<a class="headerlink" href="#database" title="Permalink to this headline">¶</a></h2>
|
||||
<p>phpMyAdmin supports MySQL-compatible databases.</p>
|
||||
<ul class="simple">
|
||||
<li>MySQL 5.5 or newer</li>
|
||||
<li>MariaDB 5.5 or newer</li>
|
||||
</ul>
|
||||
<div class="admonition seealso">
|
||||
<p class="first admonition-title">See also</p>
|
||||
<p class="last"><a class="reference internal" href="faq.html#faq1-17"><span class="std std-ref">1.17 Which Database versions does phpMyAdmin support?</span></a></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="web-browser">
|
||||
<h2>Web browser<a class="headerlink" href="#web-browser" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To access phpMyAdmin you need a web browser with cookies and JavaScript
|
||||
enabled.</p>
|
||||
<p>You need browser which is supported by jQuery 2.0, see
|
||||
<<a class="reference external" href="https://jquery.com/browser-support/">https://jquery.com/browser-support/</a>>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Requirements</a><ul>
|
||||
<li><a class="reference internal" href="#web-server">Web server</a></li>
|
||||
<li><a class="reference internal" href="#php">PHP</a></li>
|
||||
<li><a class="reference internal" href="#database">Database</a></li>
|
||||
<li><a class="reference internal" href="#web-browser">Web browser</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="intro.html"
|
||||
title="previous chapter">Introduction</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="setup.html"
|
||||
title="next chapter">Installation</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/require.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="setup.html" title="Installation"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="intro.html" title="Introduction"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
100
#pma/doc/html/search.html
Normal file
@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Search — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="_static/searchtools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<script type="text/javascript">
|
||||
jQuery(function() { Search.loadIndex("searchindex.js"); });
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" id="searchindexloader"></script>
|
||||
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1 id="search-documentation">Search</h1>
|
||||
<div id="fallback" class="admonition warning">
|
||||
<script type="text/javascript">$('#fallback').hide();</script>
|
||||
<p>
|
||||
Please activate JavaScript to enable the search
|
||||
functionality.
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
From here you can search these documents. Enter your search
|
||||
words into the box below and click "search". Note that the search
|
||||
function will automatically search for all of the words. Pages
|
||||
containing fewer words won't appear in the result list.
|
||||
</p>
|
||||
<form action="" method="get">
|
||||
<input type="text" name="q" value="" />
|
||||
<input type="submit" value="search" />
|
||||
<span id="search-progress" style="padding-left: 10px"></span>
|
||||
</form>
|
||||
|
||||
<div id="search-results">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
1
#pma/doc/html/searchindex.js
Normal file
1122
#pma/doc/html/setup.html
Normal file
237
#pma/doc/html/transformations.html
Normal file
@ -0,0 +1,237 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Transformations — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="up" title="User Guide" href="user.html" />
|
||||
<link rel="next" title="User management" href="privileges.html" />
|
||||
<link rel="prev" title="User Guide" href="user.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="privileges.html" title="User management"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="user.html" title="User Guide"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="user.html" accesskey="U">User Guide</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="transformations">
|
||||
<span id="id1"></span><h1>Transformations<a class="headerlink" href="#transformations" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="introduction">
|
||||
<span id="transformationsintro"></span><h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To enable transformations, you have to setup the <code class="docutils literal"><span class="pre">column_info</span></code>
|
||||
table and the proper directives. Please see the <a class="reference internal" href="config.html#config"><span class="std std-ref">Configuration</span></a> on how to do so.</p>
|
||||
<p>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.</p>
|
||||
<p>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.</p>
|
||||
<p>For a general overview of all available transformations and their
|
||||
options, you can consult your <em><www.your-host.com>/<your-install-
|
||||
dir>/transformation_overview.php</em> installation.</p>
|
||||
<p>For a tutorial on how to effectively use transformations, see our
|
||||
<a class="reference external" href="https://www.phpmyadmin.net/home_page/docs.php">Link section</a> on the
|
||||
official phpMyAdmin homepage.</p>
|
||||
</div>
|
||||
<div class="section" id="usage">
|
||||
<span id="transformationshowto"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Go to your <em>tbl_structure.php</em> 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’.</p>
|
||||
<ul class="simple">
|
||||
<li>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.</li>
|
||||
<li>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.</li>
|
||||
<li>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’”.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="file-structure">
|
||||
<span id="transformationsfiles"></span><h2>File structure<a class="headerlink" href="#file-structure" title="Permalink to this headline">¶</a></h2>
|
||||
<p>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.</p>
|
||||
<p>They are stored in files to ease up customization and easy adding of
|
||||
new transformations.</p>
|
||||
<p>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.</p>
|
||||
<p>There is a file called ‘<em>transformations.lib.php</em>‘ that provides some
|
||||
basic functions which can be included by any other transform function.</p>
|
||||
<p>The file name convention is <code class="docutils literal"><span class="pre">[Mimetype]_[Subtype]_[Transformation</span>
|
||||
<span class="pre">Name].class.php</span></code>, while the abtract class that it extends has the
|
||||
name <code class="docutils literal"><span class="pre">[Transformation</span> <span class="pre">Name]TransformationsPlugin</span></code>. All of the
|
||||
methods that have to be implemented by a transformations plug-in are:</p>
|
||||
<ol class="arabic simple">
|
||||
<li>getMIMEType() and getMIMESubtype() in the main class;</li>
|
||||
<li>getName(), getInfo() and applyTransformation() in the abstract class
|
||||
it extends.</li>
|
||||
</ol>
|
||||
<p>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.</p>
|
||||
<p>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
|
||||
<code class="file docutils literal"><span class="pre">scripts/transformations_generator_plugin.sh</span></code> or
|
||||
<code class="file docutils literal"><span class="pre">scripts/transformations_generator_main_class.sh</span></code>.</p>
|
||||
<p>The applyTransformation() method always gets passed three variables:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><strong>$buffer</strong> - Contains the text inside of the column. This is the
|
||||
text, you want to transform.</li>
|
||||
<li><strong>$options</strong> - Contains any user-passed options to a transform
|
||||
function as an array.</li>
|
||||
<li><strong>$meta</strong> - Contains an object with information about your column. The
|
||||
data is drawn from the output of the <a class="reference external" href="https://www.php.net/mysql_fetch_field">mysql_fetch_field()</a> function. This means, all
|
||||
object properties described on the <a class="reference external" href="https://www.php.net/mysql_fetch_field">manual page</a> 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.)</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Transformations</a><ul>
|
||||
<li><a class="reference internal" href="#introduction">Introduction</a></li>
|
||||
<li><a class="reference internal" href="#usage">Usage</a></li>
|
||||
<li><a class="reference internal" href="#file-structure">File structure</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="user.html"
|
||||
title="previous chapter">User Guide</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="privileges.html"
|
||||
title="next chapter">User management</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/transformations.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="privileges.html" title="User management"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="user.html" title="User Guide"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="user.html" >User Guide</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
137
#pma/doc/html/user.html
Normal file
@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>User Guide — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="next" title="Transformations" href="transformations.html" />
|
||||
<link rel="prev" title="Configuration" href="config.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="transformations.html" title="Transformations"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="config.html" title="Configuration"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="user-guide">
|
||||
<h1>User Guide<a class="headerlink" href="#user-guide" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="transformations.html">Transformations</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="transformations.html#introduction">Introduction</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="transformations.html#usage">Usage</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="transformations.html#file-structure">File structure</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="privileges.html">User management</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="privileges.html#creating-a-new-user">Creating a new user</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="privileges.html#editing-an-existing-user">Editing an existing user</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="privileges.html#deleting-a-user">Deleting a user</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="privileges.html#assigning-privileges-to-user-for-a-specific-database">Assigning privileges to user for a specific database</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="privileges.html#configurable-menus-and-user-groups">Configurable menus and user groups</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="other.html">Other sources of information</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="other.html#printed-book">Printed Book</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="other.html#tutorials">Tutorials</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="import_export.html">Import and export</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="import_export.html#open-document-spreadsheet">Open Document Spreadsheet</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="config.html"
|
||||
title="previous chapter">Configuration</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="transformations.html"
|
||||
title="next chapter">Transformations</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/user.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="transformations.html" title="Transformations"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="config.html" title="Configuration"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
146
#pma/doc/html/vendors.html
Normal file
@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Distributing and packaging phpMyAdmin — phpMyAdmin 4.6.5.2 documentation</title>
|
||||
|
||||
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '4.6.5.2',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="copyright" title="Copyright" href="copyright.html" />
|
||||
<link rel="top" title="phpMyAdmin 4.6.5.2 documentation" href="index.html" />
|
||||
<link rel="next" title="Copyright" href="copyright.html" />
|
||||
<link rel="prev" title="Developers Information" href="developers.html" />
|
||||
</head>
|
||||
<body role="document">
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="copyright.html" title="Copyright"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="developers.html" title="Developers Information"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<div class="section" id="distributing-and-packaging-phpmyadmin">
|
||||
<h1>Distributing and packaging phpMyAdmin<a class="headerlink" href="#distributing-and-packaging-phpmyadmin" title="Permalink to this headline">¶</a></h1>
|
||||
<p>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.</p>
|
||||
<p>Generally you can customize some basic aspects (paths to some files and
|
||||
behavior) in <code class="file docutils literal"><span class="pre">libraries/vendor_config.php</span></code>.</p>
|
||||
<p>For example if you want setup script to generate config file in var, change
|
||||
<code class="docutils literal"><span class="pre">SETUP_CONFIG_FILE</span></code> to <code class="file docutils literal"><span class="pre">/var/lib/phpmyadmin/config.inc.php</span></code> and you
|
||||
will also probably want to skip directory writable check, so set
|
||||
<code class="docutils literal"><span class="pre">SETUP_DIR_WRITABLE</span></code> to false.</p>
|
||||
<div class="section" id="external-libraries">
|
||||
<h2>External libraries<a class="headerlink" href="#external-libraries" title="Permalink to this headline">¶</a></h2>
|
||||
<p>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.</p>
|
||||
<p>Currently known list of external libraries:</p>
|
||||
<dl class="docutils">
|
||||
<dt>js/jquery</dt>
|
||||
<dd>jQuery js framework and various jQuery based libraries.</dd>
|
||||
<dt>libraries/php-gettext</dt>
|
||||
<dd>php-gettext library</dd>
|
||||
<dt>libraries/tcpdf</dt>
|
||||
<dd>tcpdf library, stripped down of not needed files</dd>
|
||||
<dt>libraries/phpseclib</dt>
|
||||
<dd>portions of phpseclib library</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3><a href="index.html">Table Of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Distributing and packaging phpMyAdmin</a><ul>
|
||||
<li><a class="reference internal" href="#external-libraries">External libraries</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="developers.html"
|
||||
title="previous chapter">Developers Information</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="copyright.html"
|
||||
title="next chapter">Copyright</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/vendors.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<div><input type="text" name="q" /></div>
|
||||
<div><input type="submit" value="Go" /></div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="copyright.html" title="Copyright"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="developers.html" title="Developers Information"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">phpMyAdmin 4.6.5.2 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© <a href="copyright.html">Copyright</a> 2012 - 2016, The phpMyAdmin devel team.
|
||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.6.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
BIN
#pma/doc/images/usergroups.png
Normal file
After Width: | Height: | Size: 16 KiB |
27
#pma/doc/import_export.rst
Normal file
@ -0,0 +1,27 @@
|
||||
Import and export
|
||||
=================
|
||||
|
||||
In addition to the standard Import and Export tab, you can also import an SQL file directly by dragging and dropping
|
||||
it from your local file manager to the phpMyAdmin interface in your web browser.
|
||||
|
||||
Open Document Spreadsheet
|
||||
-------------------------
|
||||
|
||||
When importing an ODS speadsheet, the spreadsheet must be named in a specific way in order to make the
|
||||
import as simple as possible.
|
||||
|
||||
Table name
|
||||
~~~~~~~~~~
|
||||
|
||||
During import, phpMyAdmin uses the sheet name as the table name; you should rename the
|
||||
sheet in your spreadsheet program in order to match your existing table name (or the table you wish to create,
|
||||
though this is less of a concern since you could quickly rename the new table from the Operations tab).
|
||||
|
||||
Column names
|
||||
~~~~~~~~~~~~
|
||||
|
||||
You should also make the first row of your spreadsheet a header with the names of the columns (this can be
|
||||
accomplished by inserting a new row at the top of your spreadsheet). When on the Import screen, select the
|
||||
checkbox for "The first line of the file contains the table column names;" this way your newly imported
|
||||
data will go to the proper columns.
|
||||
|
32
#pma/doc/index.rst
Normal 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
#pma/doc/intro.rst
Normal 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
|
||||
* 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 `80 different languages
|
||||
<https://www.phpmyadmin.net/translations/>`_
|
||||
|
||||
|
||||
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`.
|
242
#pma/doc/make.bat
Normal file
@ -0,0 +1,242 @@
|
||||
@ECHO OFF
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
if "%SPHINXBUILD%" == "" (
|
||||
set SPHINXBUILD=sphinx-build
|
||||
)
|
||||
set BUILDDIR=_build
|
||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
|
||||
set I18NSPHINXOPTS=%SPHINXOPTS% .
|
||||
if NOT "%PAPER%" == "" (
|
||||
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
||||
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
|
||||
)
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
if "%1" == "help" (
|
||||
:help
|
||||
echo.Please use `make ^<target^>` where ^<target^> is one of
|
||||
echo. html to make standalone HTML files
|
||||
echo. dirhtml to make HTML files named index.html in directories
|
||||
echo. singlehtml to make a single large HTML file
|
||||
echo. pickle to make pickle files
|
||||
echo. json to make JSON files
|
||||
echo. htmlhelp to make HTML files and a HTML help project
|
||||
echo. qthelp to make HTML files and a qthelp project
|
||||
echo. devhelp to make HTML files and a Devhelp project
|
||||
echo. epub to make an epub
|
||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
||||
echo. text to make text files
|
||||
echo. man to make manual pages
|
||||
echo. texinfo to make Texinfo files
|
||||
echo. gettext to make PO message catalogs
|
||||
echo. changes to make an overview over all changed/added/deprecated items
|
||||
echo. xml to make Docutils-native XML files
|
||||
echo. pseudoxml to make pseudoxml-XML files for display purposes
|
||||
echo. linkcheck to check all external links for integrity
|
||||
echo. doctest to run all doctests embedded in the documentation if enabled
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "clean" (
|
||||
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
||||
del /q /s %BUILDDIR%\*
|
||||
goto end
|
||||
)
|
||||
|
||||
|
||||
%SPHINXBUILD% 2> nul
|
||||
if errorlevel 9009 (
|
||||
echo.
|
||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||
echo.may add the Sphinx directory to PATH.
|
||||
echo.
|
||||
echo.If you don't have Sphinx installed, grab it from
|
||||
echo.http://sphinx-doc.org/
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if "%1" == "html" (
|
||||
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "dirhtml" (
|
||||
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "singlehtml" (
|
||||
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pickle" (
|
||||
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can process the pickle files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "json" (
|
||||
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can process the JSON files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "htmlhelp" (
|
||||
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can run HTML Help Workshop with the ^
|
||||
.hhp project file in %BUILDDIR%/htmlhelp.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "qthelp" (
|
||||
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
||||
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
||||
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\phpMyAdmin.qhcp
|
||||
echo.To view the help file:
|
||||
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\phpMyAdmin.ghc
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "devhelp" (
|
||||
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "epub" (
|
||||
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The epub file is in %BUILDDIR%/epub.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latex" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latexpdf" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
cd %BUILDDIR%/latex
|
||||
make all-pdf
|
||||
cd %BUILDDIR%/..
|
||||
echo.
|
||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latexpdfja" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
cd %BUILDDIR%/latex
|
||||
make all-pdf-ja
|
||||
cd %BUILDDIR%/..
|
||||
echo.
|
||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "text" (
|
||||
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The text files are in %BUILDDIR%/text.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "man" (
|
||||
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "texinfo" (
|
||||
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "gettext" (
|
||||
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "changes" (
|
||||
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.The overview file is in %BUILDDIR%/changes.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "linkcheck" (
|
||||
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Link check complete; look for any errors in the above output ^
|
||||
or in %BUILDDIR%/linkcheck/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "doctest" (
|
||||
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Testing of doctests in the sources finished, look at the ^
|
||||
results in %BUILDDIR%/doctest/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "xml" (
|
||||
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The XML files are in %BUILDDIR%/xml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pseudoxml" (
|
||||
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
|
||||
goto end
|
||||
)
|
||||
|
||||
:end
|
18
#pma/doc/other.rst
Normal 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: https://www.phpmyadmin.net/docs/
|
||||
|
||||
Tutorials
|
||||
---------
|
||||
|
||||
Third party tutorials and articles are listed on our `wiki page`_.
|
||||
|
||||
.. _wiki page: https://wiki.phpmyadmin.net/pma/Articles
|
74
#pma/doc/privileges.rst
Normal file
@ -0,0 +1,74 @@
|
||||
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.
|
||||
|
||||
.. _configurablemenus:
|
||||
|
||||
Configurable menus and user groups
|
||||
----------------------------------
|
||||
|
||||
By enabling :config:option:`$cfg['Servers'][$i]['usergroups']` and
|
||||
:config:option:`$cfg['Servers'][$i]['usergroups']` you can customize what users
|
||||
will see in the phpMyAdmin navigation.
|
||||
|
||||
.. warning::
|
||||
|
||||
This feature only limits what a user sees, he is still able to use all the
|
||||
functions. So this can not be considered as a security limitation. Should
|
||||
you want to limit what users can do, use MySQL privileges to achieve that.
|
||||
|
||||
With this feature enabled, the :guilabel:`User accounts` management interface gains
|
||||
a second tab for managing :guilabel:`User groups`, where you can define what each
|
||||
group will view (see image below) and you can then assign each user to one of
|
||||
these groups. Users will be presented with a simplified user interface, which might be
|
||||
useful for inexperienced users who could be overwhelmed by all the features
|
||||
phpMyAdmin provides.
|
||||
|
||||
.. image:: images/usergroups.png
|
59
#pma/doc/require.rst
Normal file
@ -0,0 +1,59 @@
|
||||
.. _require:
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
Web server
|
||||
----------
|
||||
|
||||
Since phpMyAdmin's interface is based entirely in your browser, you'll need a
|
||||
web server (such as Apache, nginx, :term:`IIS`) to install phpMyAdmin's files into.
|
||||
|
||||
PHP
|
||||
---
|
||||
|
||||
* You need PHP 5.5.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 `openssl
|
||||
<https://www.php.net/openssl>`_ extension is strongly suggested.
|
||||
|
||||
* To support upload progress bars, see :ref:`faq2_9`.
|
||||
|
||||
* To support XML and Open Document Spreadsheet importing, you need the
|
||||
`libxml <https://www.php.net/libxml>`_ extension.
|
||||
|
||||
* To support reCAPTCHA on the login page, you need the
|
||||
`openssl <https://www.php.net/openssl>`_ extension.
|
||||
|
||||
* To support displaying phpMyAdmin's latest version, you need to enable
|
||||
``allow_url_open`` in your :file:`php.ini` or to have the
|
||||
`curl <https://www.php.net/curl>`_ 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
|
||||
|
||||
.. seealso:: :ref:`faq1_17`
|
||||
|
||||
Web browser
|
||||
-----------
|
||||
|
||||
To access phpMyAdmin you need a web browser with cookies and JavaScript
|
||||
enabled.
|
||||
|
||||
You need browser which is supported by jQuery 2.0, see
|
||||
<https://jquery.com/browser-support/>.
|
819
#pma/doc/setup.rst
Normal file
@ -0,0 +1,819 @@
|
||||
.. _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 <https://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) <https://fedoraproject.org/wiki/EPEL>`_
|
||||
is doing so, if it's
|
||||
`enabled <https://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 <https://www.apachefriends.org/>`_.
|
||||
|
||||
You can find more of such options at `Wikipedia <https://en.wikipedia.org/wiki/List_of_AMP_packages>`_.
|
||||
|
||||
|
||||
Installing using Composer
|
||||
+++++++++++++++++++++++++
|
||||
|
||||
You can install phpMyAdmin using `Composer <https://getcomposer.org/>`_,
|
||||
however it's currently not available in the default
|
||||
`Packagist <https://packagist.org/>`_ repository due to its technical
|
||||
limitations.
|
||||
|
||||
The installation is possible by adding our own repository
|
||||
<https://www.phpmyadmin.net/packages.json>:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev
|
||||
|
||||
Installing using Docker
|
||||
+++++++++++++++++++++++
|
||||
|
||||
phpMyAdmin comes with a Docker image, which you can easily deploy. You can
|
||||
download it using:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker pull phpmyadmin/phpmyadmin
|
||||
|
||||
The phpMyAdmin server will be executed on port 80. It supports several ways of
|
||||
configuring the link to the database server, which you can manage using
|
||||
environment variables:
|
||||
|
||||
.. envvar:: PMA_ARBITRARY
|
||||
|
||||
Allows you to enter database server hostname on login form (see
|
||||
:config:option:`$cfg['AllowArbitraryServer']`).
|
||||
|
||||
.. envvar:: PMA_HOST
|
||||
|
||||
Host name or IP address of the database server to use.
|
||||
|
||||
.. envvar:: PMA_HOSTS
|
||||
|
||||
Comma separated host names or IP addresses of the database servers to use.
|
||||
|
||||
.. envvar:: PMA_USER
|
||||
|
||||
User name to use for :ref:`auth_config`.
|
||||
|
||||
.. envvar:: PMA_PASSWORD
|
||||
|
||||
Password to use for :ref:`auth_config`.
|
||||
|
||||
.. envvar:: PMA_PORT
|
||||
|
||||
Port of the databse server to use.
|
||||
|
||||
.. envvar:: PMA_ABSOLUTE_URI
|
||||
|
||||
The fully-qualified path (``https://pma.example.net/``) where the reverse
|
||||
proxy makes phpMyAdmin available.
|
||||
|
||||
By default, :ref:`cookie` is used, but if :envvar:`PMA_USER` and
|
||||
:envvar:`PMA_PASSWORD` are set, it is switched to :ref:`auth_config`.
|
||||
|
||||
.. note::
|
||||
|
||||
The credentials you need to login are stored in the MySQL server, in case
|
||||
of Docker image there are various ways to set it (for example
|
||||
:envvar:`MYSQL_ROOT_PASSWORD` when starting MySQL container). Please check
|
||||
documentation for `MariaDB container <https://hub.docker.com/r/_/mariadb/>`_
|
||||
or `MySQL container <https://hub.docker.com/r/_/mysql/>`_.
|
||||
|
||||
Additionally configuration can be tweaked by :file:`/www/config.user.inc.php`. If
|
||||
this file exists, it will be loaded after configuration generated from above
|
||||
environment variables, so you can override any configuration variable. This
|
||||
configuraiton can be added as a volume when invoking docker using
|
||||
`-v /some/local/directory/config.user.inc.php:/www/config.user.inc.php` parameters.
|
||||
|
||||
.. seealso::
|
||||
|
||||
See :ref:`config` for detailed description of configuration options.
|
||||
|
||||
Docker Volumes
|
||||
--------------
|
||||
|
||||
You can use following volumes to customise image behavior:
|
||||
|
||||
:file:`/www/config.user.inc.php`
|
||||
|
||||
Can be used for additional settings, see previous chapter for more details.
|
||||
|
||||
:file:`/sessions/`
|
||||
|
||||
Directory where PHP sessions are stored. You might want to share this
|
||||
for example when uswing :ref:`auth_signon`.
|
||||
|
||||
Docker Examples
|
||||
---------------
|
||||
|
||||
To connect phpMyAdmin to given server use:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name myadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin/phpmyadmin
|
||||
|
||||
To connect phpMyAdmin to more servers use:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name myadmin -d -e PMA_HOSTS=dbhost1,dbhost2,dbhost3 -p 8080:80 phpmyadmin/phpmyadmin
|
||||
|
||||
To use arbitrary server option:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name myadmin -d --link mysql_db_server:db -p 8080:80 -e PMA_ARBITRARY=1 phpmyadmin/phpmyadmin
|
||||
|
||||
You can also link the database container using Docker:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin/phpmyadmin
|
||||
|
||||
Running with additional configration:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/config.user.inc.php:/config.user.inc.php phpmyadmin/phpmyadmin
|
||||
|
||||
Using docker-compose
|
||||
--------------------
|
||||
|
||||
Alternatively you can also use docker-compose with the docker-compose.yml from
|
||||
<https://github.com/phpmyadmin/docker>. This will run phpMyAdmin with
|
||||
arbitrary server - allowing you to specify MySQL/MariaDB server on login page.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
docker-compose up -d
|
||||
|
||||
.. _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``.
|
||||
#. Ensure you have downloaded a genuine archive, see :ref:`verify`.
|
||||
#. 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
|
||||
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:
|
||||
|
||||
.. code-block:: xml+php
|
||||
|
||||
|
||||
<?php
|
||||
// use here a value of your choice at least 32 chars long
|
||||
$cfg['blowfish_secret'] = '1{dd0`<Q),5XP_:R9UK%%8\"EEcyH#{o';
|
||||
|
||||
$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 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:
|
||||
|
||||
.. 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
|
||||
|
||||
.. note::
|
||||
|
||||
Debian and Ubuntu have simplified this setup and all you need to do is to
|
||||
execute :program:`/usr/sbin/pma-configure`.
|
||||
|
||||
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 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.
|
||||
|
||||
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
|
||||
|
||||
.. note::
|
||||
|
||||
Debian and Ubuntu have simplified this setup and all you need to do is to
|
||||
execute :program:`/usr/sbin/pma-secure`.
|
||||
|
||||
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 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`.
|
||||
#. 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.
|
||||
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.
|
||||
#. It 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`.
|
||||
|
||||
|
||||
.. _verify:
|
||||
|
||||
Verifying phpMyAdmin releases
|
||||
+++++++++++++++++++++++++++++
|
||||
|
||||
Since July 2015 all phpMyAdmin releases are cryptographically signed by the
|
||||
releasing developer, who through January 2016 was Marc Delisle. His key id is
|
||||
0xFEFC65D181AF644A, his PGP fingerprint is:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644A
|
||||
|
||||
and you can get more identification information from <https://keybase.io/lem9>.
|
||||
|
||||
Beginning in January 2016, the release manager is Isaac Bennetch. His key id is
|
||||
0xCE752F178259BD92, and his PGP fingerprint is:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
|
||||
|
||||
and you can get more identification information from <https://keybase.io/ibennetch>.
|
||||
|
||||
Some additional downloads (for example themes) might be signed by Michal Čihař. His key id is
|
||||
0x9C27B31342B7511D, and his PGP fingerprint is:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
63CB 1DF1 EF12 CF2A C0EE 5A32 9C27 B313 42B7 511D
|
||||
|
||||
and you can get more identification information from <https://keybase.io/nijel>.
|
||||
|
||||
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.
|
||||
|
||||
Each 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:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
|
||||
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
|
||||
gpg: Can't check signature: public key not found
|
||||
|
||||
As you can see gpg complains that it does not know the public key. At this
|
||||
point you should do one of the following steps:
|
||||
|
||||
* Download the keyring from `our download server <https://files.phpmyadmin.net/phpmyadmin.keyring>`_, then import it with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --import phpmyadmin.keyring
|
||||
|
||||
* Download and import the key from one of the key servers:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 3D06A59ECE730EB71B511C17CE752F178259BD92
|
||||
gpg: requesting key 8259BD92 from hkp server pgp.mit.edu
|
||||
gpg: key 8259BD92: public key "Isaac Bennetch <bennetch@gmail.com>" imported
|
||||
gpg: no ultimately trusted keys found
|
||||
gpg: Total number processed: 1
|
||||
gpg: imported: 1 (RSA: 1)
|
||||
|
||||
This 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:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
|
||||
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
|
||||
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>"
|
||||
gpg: aka "Isaac Bennetch <isaac@bennetch.org>"
|
||||
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: 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
|
||||
|
||||
The 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 `Isaac's key links to
|
||||
Linus's key`_.
|
||||
|
||||
Once the key is trusted, the warning will not occur:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
|
||||
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
|
||||
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>" [full]
|
||||
|
||||
Should 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:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
|
||||
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
|
||||
gpg: BAD signature from "Isaac Bennetch <bennetch@gmail.com>" [unknown]
|
||||
|
||||
.. _Validating other keys on your public keyring: https://www.gnupg.org/gph/en/manual.html#AEN335
|
||||
|
||||
.. _Isaac's key links to Linus's key: https://pgp.cs.uu.nl/mk_path.cgi?FROM=ABAF11C65A2970B130ABE3C479BE3E4300411886&TO=3D06A59ECE730EB71B511C17CE752F178259BD92
|
||||
|
||||
|
||||
.. index::
|
||||
single: Configuration storage
|
||||
single: phpMyAdmin configuration storage
|
||||
single: pmadb
|
||||
|
||||
.. _linked-tables:
|
||||
|
||||
phpMyAdmin configuration storage
|
||||
++++++++++++++++++++++++++++++++
|
||||
|
||||
For 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).
|
||||
|
||||
Zero configuration
|
||||
------------------
|
||||
|
||||
In 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.
|
||||
|
||||
The following three scenarios are covered by the Zero Configuration mode:
|
||||
|
||||
* When entering a database where the configuration storage tables are not
|
||||
present, phpMyAdmin offers to create them from the Operations tab.
|
||||
* When 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.
|
||||
* 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.
|
||||
|
||||
|
||||
Manual configuration
|
||||
--------------------
|
||||
|
||||
Please 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`).
|
||||
|
||||
If you already had this infrastructure and:
|
||||
|
||||
* upgraded to MySQL 4.1.2 or newer, please use
|
||||
:file:`sql/upgrade_tables_mysql_4_1_2+.sql`.
|
||||
* 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`.
|
||||
|
||||
and then create new tables by importing :file:`sql/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:`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`.
|
||||
|
||||
You 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:
|
||||
|
||||
.. code-block:: mysql
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
|
||||
|
||||
.. _upgrading:
|
||||
|
||||
Upgrading from an older version
|
||||
+++++++++++++++++++++++++++++++
|
||||
|
||||
.. warning::
|
||||
|
||||
**Never** extract the new version over an existing installation of
|
||||
phpMyAdmin, always first remove the old files keeping just the
|
||||
configuration.
|
||||
|
||||
This way you will not leave old no longer working code in the directory,
|
||||
which can have severe security implications or can cause various breakages.
|
||||
|
||||
|
||||
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 5.3 and later, 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:`sql/upgrade_tables_mysql_4_1_2+.sql`.
|
||||
|
||||
If 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`.
|
||||
|
||||
Do not forget to clear the browser cache and to empty the old session by
|
||||
logging out and logging in again.
|
||||
|
||||
.. 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 AES algorithm, in a temporary cookie.
|
||||
|
||||
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`.
|
||||
* When PHP is running under Apache's :term:`mod_proxy_fcgi` (e.g. with PHP-FPM),
|
||||
``Authorization`` headers are not passed to the underlying FCGI application,
|
||||
such that your credentials will not reach the application. In this case, you can
|
||||
add the following configuration directive:
|
||||
|
||||
.. code-block:: apache
|
||||
|
||||
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
|
||||
|
||||
* 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
|
||||
--------------------------
|
||||
|
||||
* Username and password are stored in cookies during the session and password
|
||||
is deleted when it ends.
|
||||
* With this mode, the user can truly log out of phpMyAdmin and log
|
||||
back in with the same username.
|
||||
* If 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.
|
||||
* 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
|
||||
|
||||
.. _auth_signon:
|
||||
|
||||
Signon authentication mode
|
||||
--------------------------
|
||||
|
||||
* This mode is a convenient way of using credentials from another
|
||||
application to authenticate to phpMyAdmin to implement single signon
|
||||
solution.
|
||||
* The 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']`).
|
||||
* When no credentials are available, the user is being redirected to
|
||||
:config:option:`$cfg['Servers'][$i]['SignonURL']`, where you should handle
|
||||
the login process.
|
||||
|
||||
The very basic example of saving credentials in a session is available as
|
||||
:file:`examples/signon.php`:
|
||||
|
||||
.. literalinclude:: ../examples/signon.php
|
||||
:language: php
|
||||
|
||||
Alternatively you can also use this way to integrate with OpenID as shown
|
||||
in :file:`examples/openid.php`:
|
||||
|
||||
.. literalinclude:: ../examples/openid.php
|
||||
:language: php
|
||||
|
||||
If 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`:
|
||||
|
||||
.. literalinclude:: ../examples/signon-script.php
|
||||
:language: php
|
||||
|
||||
.. 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
|
||||
|
||||
.. _auth_config:
|
||||
|
||||
Config authentication mode
|
||||
--------------------------
|
||||
|
||||
* This mode is sometimes 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).
|
||||
* 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 one’s router or firewall will suffice (both
|
||||
of which are beyond the scope of this manual but easily searchable
|
||||
with Google).
|
||||
|
||||
|
||||
Securing your phpMyAdmin installation
|
||||
+++++++++++++++++++++++++++++++++++++
|
||||
|
||||
The phpMyAdmin team tries hard to make the application secure, however there
|
||||
are always ways to make your installation more secure:
|
||||
|
||||
* Serve phpMyAdmin on HTTPS only. Preferably, you should use HSTS as well, so that
|
||||
you're protected from protocol downgrade attacks.
|
||||
* Remove the ``test`` directory from phpMyAdmin, unless you are developing and need test suite.
|
||||
* Remove the ``setup`` directory from phpMyAdmin, you will probably not
|
||||
use it after the initial setup.
|
||||
* Properly choose an 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 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 the configuration, you need to create a 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
|
||||
|
||||
* If you are afraid of automated attacks, enabling Captcha by
|
||||
:config:option:`$cfg['CaptchaLoginPublicKey']` and
|
||||
:config:option:`$cfg['CaptchaLoginPrivateKey']` might be an option.
|
||||
|
||||
Known issues
|
||||
++++++++++++
|
||||
|
||||
Users with column-specific privileges are unable to "Browse"
|
||||
------------------------------------------------------------
|
||||
|
||||
If a user has only column-specific privileges on some (but not all) columns in a table, "Browse"
|
||||
will fail with an error message.
|
||||
|
||||
As a workaround, a bookmarked query with the same name as the table can be created, this will
|
||||
run when using the "Browse" link instead. `Issue 11922 <https://github.com/phpmyadmin/phpmyadmin/issues/11922>`_.
|
||||
|
||||
Trouble logging back in after logging out using 'http' authentication
|
||||
----------------------------------------------------------------------
|
||||
|
||||
When using the 'http' ``auth_type``, it can be impossible to log back in (when the logout comes
|
||||
manually or after a period of inactivity). `Issue 11898 <https://github.com/phpmyadmin/phpmyadmin/issues/11898>`_.
|
138
#pma/doc/transformations.rst
Normal file
@ -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 <https://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:`scripts/transformations_generator_plugin.sh` or
|
||||
:file:`scripts/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()
|
||||
<https://www.php.net/mysql_fetch_field>`_ function. This means, all
|
||||
object properties described on the `manual page
|
||||
<https://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.)
|
||||
|
10
#pma/doc/user.rst
Normal file
@ -0,0 +1,10 @@
|
||||
User Guide
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
transformations
|
||||
privileges
|
||||
other
|
||||
import_export
|
35
#pma/doc/vendors.rst
Normal file
@ -0,0 +1,35 @@
|
||||
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
|
||||
libraries/phpseclib
|
||||
portions of phpseclib library
|