支持HW团队,就支付宝领取下面的红包吧!(2018年3月31前,就几毛,也会几块,可以和其他红包叠加使用),你领取消费,HW有奖励。红包使用无条件限制,有条件请注意是不是有病毒。

小伙伴们,给大家发红包喽!人人可领,领完就能用。祝大家领取的红包金额大大大!#吱口令#长按复制此消息,打开支付宝就能领取!er1OEj73Uj

登入 注册 | 验证
| 搜索
HelloWorld论坛 : > 计算机科学、技术、教学> 电脑应用> linux系统> [转]FreeBSD 安裝 PostgreSQL 的筆記
 
 
 
 
 
 
类别:其他 阅读:8289 评论:0 时间:八月 6, 2012, 5:18 p.m. 关键字:FreeBSD PostgreSQL

 

 文中有提到為了增加 PostgreSQL 的 max_connections 數目,而調整了 FreeBSD 系統的 /etc/sysctl.conf & /boot/loader.conf 兩個檔案。如果你只是想安裝 PostgreSQL 玩玩,而不需要調整 max_connections 數目,你可以忽略修改上述兩個檔案的內容。

1.修改 FreeBSD 系統參數

修改 /etc/sysctl.conf 增加以下指令
kern.ipc.shmmax=134217728
kern.ipc.shmall=32768
kern.ipc.semmap=256

修改 /boot/loader.conf 增加以下指令
kern.ipc.semmni=256
kern.ipc.semmns=512
kern.ipc.semmnu=256

2.安裝 PostgreSQL

cd /usr/ports/databases/postgresql90-server/
make install clean

 

3.修改 /etc/rc.conf 增加以下指令,以便開機自動執行 PostgreSQL

postgresql_enable="YES"
postgresql_data="/var/db/pgsql"             #这里写你中间的数据库存放路径
postgresql_class="postgres"
postgresql_initdb_flags="--encoding=utf-8 --lc-collate=C"  #增加这行,下面就不会提示找不到合适的编码设置了。

/etc/login.conf添加以下内容

postgres:
    :lang=en_US.UTF-8:
    :setenv=LC_COLLATE=C:
    :tc=default:

4.初始 PostgreSQL 資料庫

madir /var/db/pgsql
#执行下面命令,改变文件所属
chown -R pgsql:pgsql /var/db/pgsql
/usr/local/etc/rc.d/postgresql initdb
# 如果没有设置postgresql_initdb_flags,建议 initdb -D /var/db/pgsql --locale=C -E UTF8
# 终端回显 

The files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.

The database cluster will be initialized with locale C.
The default text search configuration will be set to "english".

fixing permissions on existing directory /var/db/pgsql ... ok
creating subdirectories ... ok
selecting default max_connections ... 40
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in /var/db/pgsql/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    /usr/local/bin/postgres -D /var/db/pgsql
or
    /usr/local/bin/pg_ctl -D /var/db/pgsql -l logfile start

 5.修改 /var/db/pgsql/postgresql.conf 以便符合實際系統運作需求,這邊大家可以斟酌調整

listen_addresses = '*'  //聆聽其他主機連線訊號
max_connections = 200   //增加同時連線數量
#log_destination = 'syslog'  // 註解
log_destination = 'stderr'   // 標準輸出 log
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 1d
log_rotation_size = 10MB
client_min_messages = notice
log_min_messages = notice
log_error_verbosity = default
log_min_error_statement = error
log_duration = on
log_line_prefix = '%u %d %h %i'
log_statement = 'mod'
track_activities = on
track_counts = on
stats_start_collector = on
stats_row_level = on

6.修改 /var/db/pgsql/pg_hba.conf 以便可以透過網路連接該 PostgreSQL 伺服器。

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

#"local" is for Unix domain socket connections only
local   all             pgsql                                   md5

# "local" is for Unix domain socket connections only
local   all             pgsql                                     md5
# IPv4 local connections:
host    all             pgsql             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 trust

7.修改管理员密码

psql -U pgsql postgres
psql (9.0.8)
输入 "help" 来获取帮助信息.
postgres-# \password
输入新的密码:
再次键入:

 8.啟動 PostgreSQL

/usr/local/etc/rc.d/postgresql restart

9.安装phpPgAdmin

cd /usr/ports/databases/phppgadmin
make fetch #只下载,不安装
PHPmyadmin解压以后直接使用了
cp /usr/ports/distfiles/phpPgAdmin-5.0.4.tar.bz2 /home/www #/home/www为apache或者nginx指定路径
tar zxvf phpPgAdmin-5.0.4.tar.bz2
mv phpPgAdmin-5.0.4 phpPgAdmin #phpPgAdmin文件名就为外部地址路径http://xxx.xxx.xxx.xxx/phpPgAdmin
配置phpPgAdmin,修改/home/www/phpPgAdmin/conf/config.inc.php文件的第88行true改成false

$conf['extra_login_security'] = false;
$conf['servers'][0]['host'] = '';
修改postgresql服务器的ip地址

<?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;

?>

 phpPgAdmin 安装起来  登录进去 怎么显示 Error Loading all_db.php   这个是php-extensions安装不全

Strict Standards: Only variables should be assigned by reference in /usr/home/www/phpPgAdmin/classes/database/Connection.php on line 23Strict Standards: Only variables should be passed by reference in /usr/home/www/phpPgAdmin/redirect.php on line 14Warning: Cannot modify header information - headers already sent by (output started at /usr/home/www/phpPgAdmin/classes/database/Connection.php:23) in/usr/home/www/phpPgAdmin/classes/Misc.php on line 540

这个原因是 php的严格语法检查,php.ini里面display_errors = Off,就好了

spawn_fcgi 提示已经运行,其实已经崩溃了
php -info 正常运行。
php -v 显示错误,并产生 php.core 文件

错误提示是Segmentation fault (core dumped)

最后找到,原来在扩展中启用了 recode 就导致 php 报错在 extension.ini 中关掉
;extension=recode.so
正常运行. 不知道什么原因?

 

相关博文 首页 上页 4 5 6 7 8 9 下页 尾页 共9条
[挂载人]初学MPEG [审核人]初学MPEG

个人签名--------------------------------------------------------------------------------

Please Login (or Sign Up) to leave a comment