LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2784|回复: 0

[翻译]phpPgAdmin 中文文档

[复制链接]
发表于 2008-3-3 11:47:06 | 显示全部楼层 |阅读模式
[color="Red"]由于论坛排版效果不理想,而且我也只在我的个人空间对文章进行后继更新,所以建议直接到我的空间查看:
《phpPgAdmin 安装指南》
《phpPgAdmin 常见问题解答》
《phpPgAdmin 配置文件 config.inc.php-dist 中文版》

-------------------------------------------------------------------------------
版权声明
本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。

其他作品
本文作者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有作品的列表:
金步国作品列表

BUG报告,切磋与探讨
由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别。如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳。如果你愿意就作品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系。联系方式:Email: csfrank@citiz.net ; QQ: 70171448 ; MSN: csfrank122@hotmail.com

==============================================
phpPgAdmin 常见问题解答
==============================================
安装错误
Q: 我已经安装了 phpPgAdmin ,但是当我企图使用它的时候,
   我得到一个错误说我安装的 PHP 没有正确的编译数据库支持。

A: 这个信息的意思是你的 PHP 没有将 PostgreSQL 支持编译进去。正确的配置选项是 '--with-pgsql' 。
   请仔细阅读 PHP 手册以获得关于如何编译 PHP 的更详细的信息。

   PostgreSQL 支持可以编译为 PHP 的动态扩展模块,
   因此如果你使用的是一个预编译版本的 PHP (Linux下的RPM包或Windows下的二进制文件之类),
   也许你只需要做一件事就可以了:

   编辑 php.ini 文件并取消如下两行的注释:
   (Windows下通常位于 C:\WINDOWS 或 C:\WINNT 目录,Linux 下通常位于 /etc/php.ini)

        ;extension=php_pgsql.dll        ;Windows
        ;extension=pgsql.so                ;Linux

   使它变成:

        extension=php_pgsql.dll                ;Windows
        extension=pgsql.so                ;Linux

   在基于 Red Hat 或 Fedora 的 Linux 发行版上,
   该 PHP 扩展已经自动的在 /etc/php.d/pgsql.ini 文件中进行了配置,
   只要安装 php-pgsql 软件包即可。


Q: 在 Windows 上使用 phpPgAdmin 时,我得到一个如下警告信息:

    "Warning: session_start() [function.session-start]:
     open(/tmp\sess_5a401ef1e67fb7a176a95236116fe348, O_RDWR) failed"

A: 你需要修改你的 PHP.INI 文件(通常位于 c:\windows 目录)并将如下行

    session.save_path = "/tmp"

   修改为

    session.save_path = "c:\windows\temp"

   并确保 c:\windows\temp 目录确实存在。
登陆错误
Q: 我总是得到一个"Login failed",我确定我使用了正确的用户名和密码!

A: 检查一下 PostgreSQL 日志,它会告诉你登陆失败的准确原因。
   编辑 PostgreSQL 的"data"目录下的 pg_hba.conf 文件,
   确保你拥有访问数据库服务器的正确权限。

   如果你将 phpPgAdmin 安装在一个不同于 PostgreSQL 服务器所在的机器上,
   另一个可能的原因是 PostgreSQL 在启动时没有启用 TCP/IP sockets 。
   要启用它,可以编辑 postgresql.conf 文件,将如下行

           #tcpip_socket = false

   修改为

           tcpip_socket = true

   然后重启 PostgreSQL 。
   [译者注]从 8.0 版本开始,原来的 virtual_host 和 tcpip_socket 配置指令已经被 listen_addresses 代替。
   请参阅 PostgreSQL 获取更多对 listen_addresses 指令的解释。

Q: 有些用户会得到 "Login disallowed for security" 错误信息

A: phpPgAdmin 默认禁止空密码或特定用户(pgsql, postgres, root, administrator)登陆。
   在改变这个默认行为(将 config.inc.php 文件中的 $conf['extra_login_security'] 设置为 false)之前,
   请首先仔细阅读 PostgreSQL 文档中关于客户端认证的部分,
   并充分理解如何修改 PostgreSQL 的 pg_hba.conf 配置文件以启用密码保护本地连接。

Q: 我可以使用任意密码登陆!

A: PostgreSQL 默认运行于"信任模式"。意思是对于本地连接不检查密码。
   我们强烈建议你修改 pg_hba.conf 文件,并将登陆类型改为 'md5'。
   注意,一旦你将'local'登陆类型修改为'md5',你就可能需要在启动 PostgreSQL 的时候输入密码。
   要避开它,可以使用一个 .pgpass 文件,相关说明请参考 PostgreSQL 文档 libpq 部分。
其它错误
Q: 当我通过表单向数据库输入非ASCII数据时,它被当着十六进制数或 Ӓ 格式插入。

A: 你没有使用正确的编码创建数据库。
   这个问题会出现在你企图向一个 SQL_ASCII 数据库输入元音变音(umlaut),
   或者向 EUC-JP 数据库输入 SJIS 字符的时候。

Q: 当我 drop 并重建一个同名的表的时候,失败了。

A: 最简单的办法是使用 PostgreSQL 7.3 以上的版本。

Q: 当我浏览一个表的时候,'edit(编辑)'和'delete(删除)'链接并没有显示出来。

A: phpPgAdmin 将按顺序使用如下值作为行唯一标识符

        1. 主键
        2. 唯一索引(不能是部分索引或表达式索引)
        3. OID 列(需要连续扫描以进行更新,除非你在 OID 列上建立了索引)

   此外,唯一索引中的任何 NULL 值都会导致那一行不可编辑。同样,因为在同一张表中 OID 可能会重复,
   phpPgAdmin 将会在改变那一行以后进行确认修改的是否确实是那一行,否则将进行回滚。
转储相关
Q: 如何启用数据库转储功能?

A: 你需要配置 config.inc.php 文件,以指定 pg_dump 和 pg_dumpall 的位置。
   这样数据库导出功能将会显示出来。

Q: 我想在 Windows 上使用 pg_dump ,我应当到哪里下载 pg_dump.exe ?

A: 你需要安装 PostgreSQL 8.0 for Windows 或更高的版本。
   可以到 http://www.postgresql.org/ftp/win32/ 去下载。
   安装好以后可以在 config.inc.php 中设置 pg_dump 和 pg_dumpall 的位置。

Q: 为什么我不能在 SQL 窗口重新加载转储出来的 SQL 脚本?

A: 在执行 SQL 脚本时有如下限制:

        * 只有上传的 SQL 脚本可以包含 COPY 命令,并且必须使用 PHP 4.2 以上版本。

        * 'psql' 命令,比如 '\connect' 根本不会工作。

        * 多行 SQL 语句同样不会工作,比如:

                CREATE TABLE example (
                        a INTEGER
                );

        * 在执行脚本的过程中不能切换数据库和用户。

   我们打算在将来的版本中减少这些限制,但是对于 PostgreSQL 本身的限制无能为力,
   因此我们推荐你使用'psql'工具来恢复完整的 SQL 转储结果。
其它问题
Q: 当插入行的时候,'Value(值)' 或 'Expression(表达式)' 选框是什么意思?

A: 选择'Expression'表示你可以使用函数、运算符、字段名等等,
   同时你需要正确的使用引号界定字符串值。
   选择'Value'则表示无论你输入的内容是什么,都将按原样插入数据库中。

Q: 为什么表的'Info(信息)'页始终不显示任何信息?

A: 'Info'页用于显示其它表到这个表的外键以及来自 PostgreSQL 的统计信息。
   而状态统计程序默认状态下并未启用。要启用它请查看 postgresql.conf 文件中的 stats_* 选项。
   将这些选项全部设为'true'并重启 PostgreSQL 即可。

Q: 为什么我不能下载 SQL 窗口中执行的查询的结果数据?

A: 你需要选中 'Paginate results' 选项以允许下载。

Q: 我想帮助 phpPgAdmin 的开发,我应当怎么做?

A: 我们非常愿意得到你的帮助!请阅读 DEVELOPERS 和 TRANSLATORS 文件。

===========================================
phpPgAdmin 安装指南
===========================================
1. 将下载的压缩包解压

   对于 tar.gz 执行如下命令:

   gunzip phpPgAdmin-*.tar.gz
   tar -xvf phpPgAdmin-*.tar

   对于 tar.bz2 执行如下命令:

   bunzip2 phpPgAdmin-*.tar.bz2
   tar -xvf phpPgAdmin-*.tar

   对于 .zip 执行如下命令:

   unzip phpPgAdmin-*.zip

2. 配置 phpPgAdmin

   编辑 phpPgAdmin/conf/config.inc.php 文件

   如果你搞乱了配置文件,你可以使用 config.inc.php-dist 文件进行恢复。

3. 创建 reports 数据库

   如果你希望启用 reports(一个很有用的特性),那么请到'sql'子目录下查看 reports-pgsql.sql 脚本。
   它包含了如何创建 reports 数据库的指导。

4. 如果你是在安全模式下运行 PHP ,为了让数据库转储能够正常工作,
   你必须将 php.ini 中的'safe_mode_allowed_env_vars'指令包含 PGPASSWORD 和 PGUSER 环境变量,
   同时还需要在'safe_mode_exec_dir'指令中包含 pg_dump 二进制文件所在的目录。

        例如:
        safe_mode_allowed_env_vars = PHP_,PG
        safe_mode_exec_dir = /usr/bin

   一般说来,你总不希望 /usr/bin 中的所有程序都能被执行,
   所以你可能需要将 pg_dump 和 pg_dumpall 复制到单独的目录中去。

   同样,如果你希望 phpPgAdmin 支持转储,
   你还需要确保 pg_dump 和 pg_dumpall 可以被运行 PHP 的进程执行。

   最后,如果你以安全模式运行 phpPgAdmin ,
   需要长时间运行的导入、导出、事务处理,可能会由于超时而退出。

5. 如果启用了 PostgreSQL 的统计程序(statistics collector),
   phpPgAdmin 将会显示表和索引的性能以及使用统计。
   为了启用这个功能,需要将 postgresql.conf 文件中的如下行的注释取消:

           stats_start_collector = true
        stats_command_string = true
        stats_block_level = true
        stats_row_level = true

6. 为了能够使用在浏览器中正常使用 phpPgAdmin ,你必须启用浏览器的 cookies 功能。

7. 重要 - 安全相关

   PostgreSQL 在默认情况下并不需要使用密码登录,
   我们强烈建议你在 pg_hba.conf 中配置为对本地链接使用 md5 密码,
   并为默认的超级用户设置一个密码。

   由于存在大量已经安装的 phpPgAdmin 并没有为本地连接设置密码,
   我们提供了一个名为'extra_login_security'的配置选项,它默认为 TRUE 。
   这意味着你不能使用'root','administrator','pgsql','postgres'用户或空密码登陆。

   仅在你对数据库进行了足够的安全设置以后才能将'extra_login_security'设为 fasle ,
   这样你就能使用管理员密码以管理员身份登陆。

8. [译者添加]当在 php.ini 中设置 display_errors = On 并且 error_reporting 包含 ERROR 以外级别的错误的时候,
   phpPgAdmin 常常不能流畅的使用,大约是由于编码并非严格遵守 PHP 开发者期望的编码风格所致吧。
   所以如果出现某些问题试试 display_errors = Off 看看,也许能解决使用中一些恼人的问题。

=============================================
phpPgAdmin 配置文件 config.inc.php-dist 中文版
=============================================
[PHP]
<?php

        /**
         * 这里是 phpPgAdmin 的配置中心。用户需要根据自己的实际情况修改这里的设置。
         *
         * $Id: config.inc.php-dist,v 1.53 2007/04/18 14:08:48 mr-russ Exp $
         */

        // 一个示例服务器。你可以建立任意多个这样的服务器,索引从零开始递增。

        // 显示在登陆屏幕上的服务器名字
        $conf['servers'][0]['desc'] = 'PostgreSQL';

        // 服务器的主机名或IP地址。对于 UNIX domain socket 请使用 '' 。
        // 对于本地 TCP/IP 链接请使用 'localhost' 。
        $conf['servers'][0]['host'] = '';

        // 服务器的数据库链接端口(5432 是 PostgreSQL 的默认端口)
        $conf['servers'][0]['port'] = 5432;

        // SSL 链接选项: disable(禁止), allow(允许), prefer(首选), require(必须)
        $conf['servers'][0]['sslmode'] = 'allow';

        // 更改仅在无法连接到 template1 的时候默认链接的数据库。
        // 对于 PostgreSQL 8.1 以上版本的服务器,你需要将此处设为 'postgres'
        $conf['servers'][0]['defaultdb'] = 'template1';

        // 指定数据库转储工具的路径。如果没有转储工具可用,请在将这里设为 '' 。
        $conf['servers'][0]['pg_dump_path'] = '/usr/bin/pg_dump';
        $conf['servers'][0]['pg_dumpall_path'] = '/usr/bin/pg_dumpall';

        // 使用 Slony (www.slony.info) 支持?
        $conf['servers'][0]['slony_support'] = false;
        // 指定 Slony SQL 脚本的位置(slony1_base.sql 所在目录等等),不要包含结尾斜线
        $conf['servers'][0]['slony_sql'] = '/usr/share/pgsql';

        // 第二个示例服务器 (PostgreSQL for Windows)
        //$conf['servers'][1]['desc'] = 'Test Server';
        //$conf['servers'][1]['host'] = '127.0.0.1';
        //$conf['servers'][1]['port'] = 5432;
        //$conf['servers'][1]['sslmode'] = 'allow';
        //$conf['servers'][1]['defaultdb'] = 'template1';
        //$conf['servers'][1]['pg_dump_path'] = 'C:\\Program Files\\PostgreSQL\\8.0\\bin\\pg_dump.exe';
        //$conf['servers'][1]['pg_dumpall_path'] = 'C:\\Program Files\\PostgreSQL\\8.0\\bin\\pg_dumpall.exe';
        //$conf['servers'][1]['slony_support'] = false;
        //$conf['servers'][1]['slony_sql'] = 'C:\\Program Files\\PostgreSQL\\8.0\\share';

        // 默认语言,比如:'english', 'chinese-sim-utf8', 'chinese-tr' ,参看 lang/ 目录以获取所有可用的语言。
        // 如果你设置为 'auto'(默认值),将会根据浏览器的喜好进行选择。
        $conf['default_lang'] = 'auto';

        // 自动完成使用 ajax 技术在插入字段上交互的列出外键选项。
        // 当前它只能在单字段外键上工作。你可以通过下列设置控制其行为:
        // 'default on' 默认启用自动完成功能
        // 'default off' 允许使用自动完成功能,但默认不启用
        // 'disable' 完全禁止此功能
        $conf['autocomplete'] = 'default on';

        // 是否使用安全登陆?
        // 如果此处设为 true ,那么不使用密码登陆,将会被 phpPgAdmin 拒绝。
        // 同样,使用(pgsql, postgres, root, administrator)用户之一登陆,也会被拒绝。
        // 仅在你明白如何更改 pg_hba.conf 以强制使用密码保护本地链接的情况下,才能将此处设为 false 。
        $conf['extra_login_security'] = true;

        // 是否仅仅显示登录用户所拥有的数据库?
        // 注意:这仅仅是简单的在列表中隐藏其他数据库而已,
        // 它并不能阻止用户使用其它方法访问其它数据库(比如运行'SELECT * FROM pg_database')
        $conf['owned_only'] = false;

        // 是否显示对象的注释?
        // 数据库的注释是非常有用的,但是它们确实会占用不少界面空间。
        $conf['show_comments'] = true;

        // 是否显示"高级"对象?
        // 将此设为 true 将显示 types, operators conversions, languages, casts
        // 这些对象很少需要管理,并且常常会将界面搞的乱七八糟。
        $conf['show_advanced'] = false;

        // 是否显示"系统"对象?
        $conf['show_system'] = false;

        // 是否显示 reports 特性?
        // 为了使该特性能正常工作,你必须按照 INSTALL 文件的指导安装 reports 数据库。
        $conf['show_reports'] = true;

        // 用于 reports 的数据库和表
        $conf['reports_db'] = 'phppgadmin';
        $conf['reports_schema'] = 'public';
        $conf['reports_table'] = 'ppa_reports';

        // 是否仅仅显示登陆用户所拥有的 reports ?
        // 注意:它并不能阻止用户使用其它方法访问其它 reports 数据库。
        $conf['owned_reports_only'] = false;

        // 允许用户设置的密码的最小长度
        $conf['min_password_length'] = 1;

        // 左侧框架的像素宽度(对象浏览器)
        $conf['left_width'] = 200;

        // 使用哪种界面风格?
        $conf['theme'] = 'default';

        // 是否在浏览表的时候显示 OID ?
        $conf['show_oids'] = false;

        // 浏览记录集合的时候每页显示的最大行数
        $conf['max_rows'] = 30;

        // 浏览时默认每个字段显示的最大字符数
        $conf['max_chars'] = 50;

        // 是否发送 XHTML 头?
        $conf['use_xhtml_strict'] = false;

        // PostgreSQL 文档的基准 URL
        // 如果存在'%s'将会被 PostgreSQL 版本号所代替(7, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3)
        $conf['help_base'] = 'http://www.postgresql.org/docs/%s/interactive/';

        /*****************************************
         * !!请千万不要修改本行之后的内容!! *
         *****************************************/

        $conf['version'] = 19;

?>
[/PHP]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表