[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