[rt-users] rt206 make install fails to connect to Pg ..

Jesse Vincent jesse at bestpractical.com
Fri Sep 14 15:08:35 EDT 2001


sounds like initacls.Pg needs more smarts.
 I'll open a ticket




On Fri, Sep 14, 2001 at 12:05:09PM -0700, Ashley Gould wrote:
> 
> I've been meaning to post this.  I had your problem.  Here is the fix:
> 
> 
> I editid the file bin/initacls.Pg again:
> I took out the flags for port and host:
> 
> rt:/usr/local/build/rt # cat bin/initacls.Pg
> #!/bin/sh
> 
> DATABASEHOME=$1
> HOSTNAME=$2
> PORT=$3
> DATABASEADMIN=$4
> DBAPASSWD=$5
> DATABASENAME=$6
> DATABASEACLS=$7
> 
> BINDIR=${DATABASEHOME}/bin
> 
> 
> PATH=$PATH:$BINDIR
> export PATH
> 
> echo "Enter the postgres administrator's database password to create a
> new user 
> #psql -h $HOSTNAME -p $PORT -d $DATABASENAME -f $DATABASEACLS -U $DATABASEADMIN 
> psql  -d $DATABASENAME -f $DATABASEACLS -U $DATABASEADMIN 
> 
> 
> 
> Now it installs completely. yey
> 
> 
> 
> 
> 
> I've attached notes for my whole adventure.  My guess is not specifying a
> port in config.pm brakes the install for postgresql.  Jesse?
> 
> 
> 
> 
> 
> Ashley Gould		
> Technical Support	
> ASL, Inc.
> techsupport at aslab.com	
> Support	(510)857-0057
> Fax	(510)857-0010
> 
> 
> 
> 
> On Mon, Sep 10, 2001 at 09:52:01PM -0400, Harold Sinclair wrote:
> > Hello
> > 
> > I fail when trying to open a connection to Postgres database during 'make install'.
> > 
> > tools/initdb fails; it looks like the variables it's getting are correct, I just can't tell how to further debug it.
> > 
> > My problem is somewhat similar to what was described in this post,
> > http://lists.fsck.com/pipermail/rt-users/2001-June/002570.html
> > but I did not see this thread conclude with a resolution!
> > 
> > I have tried both specifying the password for user postgres in rt's
> > Makefile, and leaving it blank to no avail, while changing it at the
> > OS level to match each case.
> > 
> > My Postgres install seems fine, that is, I can do other operations as
> > user postgres with no problem, such as creating a test database.
> > Postgres is running and the socket is up.
> > 
> > Maybe set up TCP/IP connect?  Could it be my DBIx version is broken?
> > 
> > 
> > Output of 'make install'
> > ======================================================
> > 
> > # make install
> > mkdir -p /opt/rt2/bin
> > mkdir -p /opt/rt2/WebRT/data
> > mkdir -p /opt/rt2/WebRT/sessiondata
> > mkdir -p /opt/rt2/etc
> > mkdir -p /opt/rt2/lib
> > mkdir -p /opt/rt2/WebRT/html
> > mkdir -p /opt/rt2/local/WebRT/html
> > /usr/bin/perl   tools/initdb 'Pg' '/usr/local/pgsql' 'localhost' '' 'postgres' 'rt2' create
> > Now creating a database for RT.
> > Enter the Pg password for postgres:
> > Creating Pg database rt2.
> > DBI->connect(dbname=template1;host=localhost) failed: PQconnectPoll() -- connect() failed: Connection refused at /usr/lib/perl5/site_perl/5.6.0/DBIx/DataSource/Driver.pm line 74
> > PQconnectPoll() -- connect() failed: Connection refused at /usr/lib/perl5/site_perl/5.6.0/DBIx/DataSource/Driver.pm line 74, <STDIN> line 1.
> > make: *** [createdb] Error 255
> > ======================================================
> > 
> > Do I have a bad version of DBIx? Did I miss something in the docs?
> > I really would appreciate any of your comments as I am dying to get this up and running.
> > My version info is below -- and thanks very much,
> > 
> > -Harold
> > 
> > RT and System Version information
> > ======================================================
> > perl -MDBD::Pg -e 'print $DBD::Pg::VERSION'
> > 1.01
> > 
> > perl -MDBD::mysql -e 'print $DBD::mysql::VERSION'
> > 2.0415
> > 
> > RT v2.0.6
> > postgresql-7.1.3
> > perl 5.6.0
> > (SuSE) Linux andalus 2.2.18 #1 Wed Jan 24 12:28:55 GMT 2001 i686 unknown
> > 
> > My SMTP server, postfix, runs locally and works just fine, though I haven't gotten as far as using with RT.
> > 
> > And the other pieces look good -- I just got them from CPAN yesterday:
> > 
> > andalus:/home/hsinclai/test/rt-2-0-6 # make testdeps
> > /usr/bin/perl ./tools/testdeps -warn Pg
> > Checking for DBI 1.18 ...found
> > Checking for DBIx::DataSource 0.02 ...found
> > Checking for DBIx::SearchBuilder 0.40 ...found
> > Checking for HTML::Entities...found
> > Checking for MLDBM...found
> > Checking for Net::Domain...found
> > Checking for Net::SMTP...found
> > Checking for Params::Validate 0.02 ...found
> > Checking for HTML::Mason 0.896 ...found
> > Checking for CGI::Cookie 1.20 ...found
> > Checking for Apache::Cookie...found
> > Checking for Apache::Session 1.53 ...found
> > Checking for Date::Parse...found
> > Checking for Date::Format...found
> > Checking for MIME::Entity 5.108 ...found
> > Checking for Mail::Mailer 1.20 ...found
> > Checking for Getopt::Long 2.24 ...found
> > Checking for Tie::IxHash...found
> > Checking for Text::Wrapper...found
> > Checking for Text::Template...found
> > Checking for File::Spec 0.8 ...found
> > Checking for Errno...found
> > Checking for FreezeThaw...found
> > Checking for File::Temp...found
> > Checking for Log::Dispatch 1.6 ...found
> > Checking for DBD::Pg  ...found
> > 
> > __END__
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > rt-users mailing list
> > rt-users at lists.fsck.com
> > http://lists.fsck.com/mailman/listinfo/rt-users

> Installing rt 2.0.6 on rt.aslab.com  	9/4444/2001
> 
> system is unchanged since 3rd_try.
> 
> 
> Step 1
> rt:/usr/local/build # ln -s rt-2-0-6/ rt
> rt:/usr/local/build # cd rt
> rt:/usr/local/build/rt # ll
> total 373
> drwxr-xr-x   10 root     root          304 Sep  1 15:23 .
> drwxr-xr-x    9 root     root          254 Sep  4 14:22 ..
> -rwxr-xr-x    1 root     root        17976 Apr 16  1998 COPYING
> drwxr-xr-x    2 root     root          123 Sep  1 15:23 CVS
> -rw-r--r--    1 root     root       325246 Sep  1 15:23 ChangeLog
> -rw-------    1 root     root        11083 Sep  1 15:23 Makefile
> -rwxr-xr-x    1 root     root        10874 Aug 21 20:48 README
> -rwxr-xr-x    1 root     root          335 Jul 30 00:49 TODO
> drwxr-xr-x    3 root     root          303 Sep  1 15:23 bin
> drwxr-xr-x    4 root     root          154 Sep  1 15:23 docs
> drwxr-xr-x    3 root     root          259 Sep  1 15:23 etc
> drwxr-xr-x    4 root     root          196 Sep  1 15:23 lib
> drwxr-xr-x    3 root     root          133 Sep  1 15:23 t
> drwxr-xr-x    3 root     root          126 Sep  1 15:23 tools
> drwxr-xr-x   10 root     root          287 Sep  1 15:23 webrt
> 
> 
> 
> 
> Step 2
> rt:/usr/local/build/rt # diff Makefile Makefile.dist 
> 35,36c35
> < #RT_PATH                      =       /opt/rt2
> < RT_PATH                       =       /usr/local/rt2
> ---
> > RT_PATH                       =       /opt/rt2
> 58,59c57
> < #RT_LOG_PATH             =       /tmp
> < RT_LOG_PATH             =       /var/log/rt2
> ---
> > RT_LOG_PATH             =       /tmp
> 98,99c96
> < #DB_TYPE              =       mysql
> < DB_TYPE               =       Pg
> ---
> > DB_TYPE               =       mysql
> 117,118c114
> < #DB_DBA                  =    root
> < DB_DBA                   =    postgres
> ---
> > DB_DBA                   =    root
> 165,168c161,162
> < #WEB_USER                     =       www-data
> < #WEB_GROUP                    =       rt
> < WEB_USER                      =       wwwrun
> < WEB_GROUP                     =       nogroup
> ---
> > WEB_USER                      =       www-data
> > WEB_GROUP                     =       rt
> 
> 
> Later 
> I set the RT_PASS to Morrigen
> 
> 
> 
> 
> Step 3
> rt:/usr/local/build/rt # make testdeps
> /usr/bin/perl ./tools/testdeps -warn Pg
> Checking for DBI 1.18 ...found
> Checking for DBIx::DataSource 0.02 ...found
> Checking for DBIx::SearchBuilder 0.40 ...found
> Checking for HTML::Entities...found
> Checking for MLDBM...found
> Checking for Net::Domain...found
> Checking for Net::SMTP...found
> Checking for Params::Validate 0.02 ...found
> Checking for HTML::Mason 0.896 ...found
> Checking for CGI::Cookie 1.20 ...found
> Checking for Apache::Cookie...found
> Checking for Apache::Session 1.53 ...found
> Checking for Date::Parse...found
> Checking for Date::Format...found
> Checking for MIME::Entity 5.108 ...found
> Checking for Mail::Mailer 1.20 ...found
> Checking for Getopt::Long 2.24 ...found
> Checking for Tie::IxHash...found
> Checking for Text::Wrapper...found
> Checking for Text::Template...found
> Checking for File::Spec 0.8 ...found
> Checking for Errno...found
> Checking for FreezeThaw...found
> Checking for File::Temp...found
> Checking for Log::Dispatch 1.6 ...found
> Checking for DBD::Pg  ...found
> 
> 
> 
> 
> Step 4
> rt:/usr/local/build/rt # grep rt /etc/group
> rt:x:62:
> 
> 
> 
> Step 5
> 
> Before running make, I need to change the owberships on the log file:
> rt:/var/log # ll /var/log/rt2/
> total 2
> drwxrwx---    2 root     rt             35 Sep  4 14:12 .
> drwxr-xr-x    6 root     root          598 Sep  4 11:52 ..
> 
> rt:/usr/local/build/rt # make install
> .
> .
> .
> schema sucessfully inserted
> cp etc/acl.Pg '/usr/local/rt2/etc/acl.Pg'
> /usr/bin/perl -p -i -e " s'!!DB_TYPE!!'"Pg"'g;\
>                         s'!!DB_HOST!!'"localhost"'g;\
>                         s'!!DB_RT_PASS!!'"rt_pass"'g;\
>                         s'!!DB_RT_HOST!!'"localhost"'g;\
>                         s'!!DB_RT_USER!!'"rt_user"'g;\
>                         s'!!DB_DATABASE!!'"rt2"'g;" /usr/local/rt2/etc/acl.Pg
> bin/initacls.Pg '/usr' 'localhost' '' 'postgres' '' 'rt2' '/usr/local/rt2/etc/acl.Pg' 
> Enter the postgres administrator's database password to create a new user for rt
> psql: PQconnectPoll() -- connect() failed: Connection refused
>         Is the postmaster running (with -i) at 'localhost'
>         and accepting connections on TCP/IP port '-d'?
> make: *** [acls] Error 2
> 
> 
> shoot!
> 
> 
> I'll enter the postgres dba password in the Makefile:
> DB_DBA_PASSWORD   =     asllinux
> 
> Made no difference.  Next I edited bin/initacls.Pg:
> TABASEHOME=$1
> HOSTNAME=$2
> PORT=$3
> DATABASEADMIN=$4
> DBAPASSWD=$5
> DATABASENAME=$6
> DATABASEACLS=$7
> 
> BINDIR=${DATABASEHOME}/bin
> 
> 
> PATH=$PATH:$BINDIR
> export PATH
> 
> echo -h $HOSTNAME -p $PORT -d $DATABASENAME -f $DATABASEACLS -U $DATABASEADMIN
> echo DBAPASSWD $DBAPASSWD 
> echo "Enter the postgres administrator's database password to create a new user for rt"
> psql -h $HOSTNAME -p $PORT -d $DATABASENAME -f $DATABASEACLS -U $DATABASEADMIN \-W
> 
> 
> 
> Again run make install:
> .
> .
> .
> bin/initacls.Pg '/usr' 'localhost' '' 'postgres' '"asllinux"' 'rt2' '/usr/local/rt2/etc/acl.Pg' 
> -h localhost -p -d rt2 -f /usr/local/rt2/etc/acl.Pg -U postgres
> DBAPASSWD "asllinux"
> Enter the postgres administrator's database password to create a new user for rt
> Password: 
> 
> 
> Still fails.  However, I can connect by hand:
> rt:/usr/local/build/rt # psql -d rt2 -U postgres -W
> Password: 
> Welcome to psql, the PostgreSQL interactive terminal.
> 
> Type:  \copyright for distribution terms
>        \h for help with SQL commands
>        \? for help on internal slash commands
>        \g or terminate with semicolon to execute query
>        \q to quit
> 
> rt2=# 
> 
> 
> 
> And if I run the call to psql by hand, It works:
> rt:/usr/local/rt2/etc # psql -d rt2 -U postgres -f acl.Pg 
> DROP USER
> CREATE USER
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> CHANGE
> rt:/usr/local/rt2/etc # 
> 
> 
> 
> 
> So I editid the file bin/initacls.Pg again:
> I took out the flags for port and host:
> 
> rt:/usr/local/build/rt # cat bin/initacls.Pg
> #!/bin/sh
> 
> DATABASEHOME=$1
> HOSTNAME=$2
> PORT=$3
> DATABASEADMIN=$4
> DBAPASSWD=$5
> DATABASENAME=$6
> DATABASEACLS=$7
> 
> BINDIR=${DATABASEHOME}/bin
> 
> 
> PATH=$PATH:$BINDIR
> export PATH
> 
> echo "Enter the postgres administrator's database password to create a new user for rt"
> #psql -h $HOSTNAME -p $PORT -d $DATABASENAME -f $DATABASEACLS -U $DATABASEADMIN 
> psql  -d $DATABASENAME -f $DATABASEACLS -U $DATABASEADMIN 
> 
> 
> 
> Now it installs completely. yey
> 
> 
> 
> 
> 
> Step 6
> First I had to make the config.pm writable:
> rt:/usr/local/rt2/etc # ll
> total 61
> drwxr-xr-x    2 root     rt            167 Sep  4 16:01 .
> drwxr-xr-x    8 root     root          153 Aug 31 14:09 ..
> -r-x------    1 root     rt           2319 Sep  4 15:50 acl.Pg
> -r-xr-x---    1 root     rt          13649 Sep  4 15:50 config.pm
> -r-xr-x---    1 root     root        13649 Sep  4 16:00 config.pm.dist
> -r-x------    1 root     rt          10918 Sep  4 14:18 config.pm.old
> -rwxr-xr-x    1 root     root        12121 Sep  4 15:51 insertdata
> rt:/usr/local/rt2/etc # chmod u+w config.pm
> 
> rt:/usr/local/rt2/etc # diff config.pm config.pm.dist 
> 14c14
> < $rtname="Asl Support";  
> ---
> > $rtname="example.com";  
> 20c20
> < $Organization = "aslab.com";
> ---
> > $Organization = "example.com";
> 28c28
> < $Timezone =  'US/Pacific'; 
> ---
> > $Timezone =  'US/Eastern'; 
> 70c70
> < $OwnerEmail = 'ashley at aslab.com';
> ---
> > $OwnerEmail = 'root';
> 92c92
> < $MaxAttachmentSize = 2000000;  
> ---
> > $MaxAttachmentSize = 10000000;  
> 103c103
> < $DropLongAttachments = 1;
> ---
> > $DropLongAttachments = undef;
> 
> 
> 
> 
> 
> Step 7
> Mail gate:
> 
> /etc/aliases:
> 
> # RT Ticket Tracking system:
> rt:     "|/usr/local/rt2/bin/rt-mailgate --queue general --action correspond"
> rt-comment: "|/usr/local/rt2/bin/rt-mailgate --queue general --action comment"
> support1:           rt
> support1-comment:   rt-comment
> support2:           rt
> support2-comment:   rt-comment
> support3:           rt
> support3-comment:   rt-comment
> 
> rt:/etc # vi aliases
> rt:/etc # newaliases 
> rt:/etc # postfix reload
> postfix-script: refreshing the Postfix mail system
> 
> 
> 
> 
> 
> Web interface:
> I must change ownership of log file so apache user can write to it:
> rt:/var/log # chown wwwrun.rt /var/log/rt2/
> 
> 
> Apache config:
> 
> MinSpareServers 1
> MaxSpareServers 1
> StartServers 1
> 
> User wwwrun
> Group nogroup
> ServerAdmin ashley at aslab.com
> 
> # First, we configure the "default" to be a very restrictive set of
> # permissions.
> #
> <Directory />
>     Options none
>     AllowOverride None
> </Directory>
> 
> #
> # This should be changed to whatever you set DocumentRoot to.
> #
> <Directory "/usr/local/rt2/WebRT/html">
>     Options none
>     AllowOverride None
>     Order allow,deny
>     Allow from all
> #    Allow from 192.168.2.0/24 199.182.25.0/24
> #    Deny from all
> </Directory>
> 
> 
> 
> #
> # RT specific rules
> #
> 
> PerlModule Apache::DBI
> PerlRequire /usr/local/rt2/bin/webmux.pl
> <Location />
>  SetHandler perl-script
>  PerlHandler RT::Mason
> </Location>
> 
> 
> 
> rt:/etc # cat crontab
> SHELL=/bin/sh
> PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
> MAILTO=root
> #
> # check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
> #
> -*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons 
> 59 *  * * *     root  rm -f /var/spool/cron/lastrun/cron.hourly
> 14 0  * * *     root  rm -f /var/spool/cron/lastrun/cron.daily
> 29 0  * * 6     root  rm -f /var/spool/cron/lastrun/cron.weekly
> 44 0  1 * *     root  rm -f /var/spool/cron/lastrun/cron.monthly
> 
> 
> # RT ticket tracking system
> # Every hour, nuke session files and lockfiles that haven't been 
> # touched in 10 hours
> 
> 0 * * * * find /path/to/rt2/WebRT/sessiondata -type f -amin +600 -exec rm {} \;
> 
> 
> 
> 
> Step 8
> rt:/usr/local/apache/bin # ./apachectl configtest
> Syntax OK
> rt:/usr/local/apache/bin # ./apachectl start
> ./apachectl start: httpd started
> 
> 
> 
> 
> 
> DEBUGGING
> 
> The web interface came up perfectly.  
> 
> My first email bounced with:
> 
> Sep  4 16:57:24 rt postfix/local[3256]: 6103B946: to=<rt at rt.aslab.com>,
> relay=local, delay=0, status=bounced (Command died with status 255:
> "/usr/local/rt2/bin/rt-mailgate --queue general --action correspond". Command
> output: Can't do setuid )
>         ^^^^^^^^^^^^^^^
> -rwxr-xr-x    2 root     root       777442 May 11 08:19 suidperl
> rt:/usr/bin # chmod u+s /usr/bin/suidperl 
> 
> I must find out who and when this keeps being changed back.  Perhaps 
> /etc/permissions.   I set the var in rc.config to "warn".
> 
> 
> 
> 
> 
> All Is Well Now
> 
> 
> 
> 
> Backups:
> rt:/etc # cat crontab
> .
> .
> .
> .
> 
> # rsync: backup root filesystem to /backup 2:00am nightly
> #        exclude /proc /tmp and /backup itself
> *  2  * * *     rsync -av --delete --exclude /proc --exclude /backup \
>                 --exclude /tmp / /backup |tee /tmp/rsync.outlist
> 
> 


-- 
http://www.bestpractical.com/products/rt  -- Trouble Ticketing. Free.




More information about the rt-users mailing list