[ic] catalog working, no admin/login, unable to checkout

Peter peter at pajamian.dhs.org
Thu Sep 1 04:11:43 UTC 2011


On 01/09/11 12:30, Curt Hauge wrote:
> Hi,
> 
> I am on a new Centos 5.x server, Apache 2.2.19, MySQL 5.1.57.

I'll get into your problems below, but if you want you may just want to
start over clean and follow this guide:
http://www.pajamian.dhs.org/Rackspace%20Interchange%20Setup.html

Don't worry about the Rackspace part, this guide is for any CentOS/RHEL
5 Interchange install.

Note the only thing that you should be aware of is that perl 5.12.4 has
been released since the guide was last updated.  I recommend you use
that now but don't use 5.14 as that has unresolved issues with
Interchange.  Everything else is the same and at the bottom is an
appendix telling you how to install MySQL instead of PostgreSQL if you want.

Note2: CentOS 6 is out now (and has been for a few weeks).  The guide is
written for CentOS 5 but the procedure should be largely the same.  I
will be making a new updated guide for CentOS 6 soon.

Ok, now to get into your problems:

> As root I
> installed a local perl at usr/local/bin/perl like this:
> 
> sh Configure #accepted all defaults, no threads

A better command that I recommend:
./Configure -des -Dprefix=/usr/local/perl-5.12.4

... this runs all the defaults automatically without making you answer
200 questions and sets the install prefix to a directory where it's easy
to keep track of what version of perl it is (you can use symlinks to
point your /usr/local/bin/perl to any perl executable you want).

> make
> make test

Also I recommend that you run all of the above commands an an
unprivileged user and only run this last one as root:

> make install
> 
> and		/usr/local/bin/perl -v #This is perl, v5.10.0 built for
> x86_64-linux

Why did you install such an old version of perl?  5.12.4 is what I
recommend, but if you want to install from the 5.10 branch at least
install the newest which is 5.10.1

> As root I checked 'which perl' and saw this:
> /usr/bin/perl #which is what I expected
> (but, alas...it now reports: /usr/local/bin/perl)  <--could that be an issue
> and how did it happen?

As Jon already said, you have /usr/local/bin in your $PATH ahead of
/usr/bin.

> I then installed the bundle like this:
> perl -MCPAN -e 'install Bundle::Interchange'

Just install Bundle::InterchangeKitchenSink.  It is a superset of
Bundle::Interchange.

> Question 1: Should I be installing the bundle with /use/local/bin/perl or
> /usr/bin/perl?

/usr/local/bin/perl or wherever your newly installed perl happens to reside.

> I finally got the bundle to install, but I cannot get the kitchensink to
> finish up, so...

There will be a few issues installing KitchenSink which are all outlined
in my guide (linked to above).  Please read through at least section 10
of the guide which will tell you how to resolve all of the issues you
will encounter (I recommend reading and following the whole thing
because it is exactly for the platform you are installing on).

> I've installed 5.6.3 tarball after installing the bundle:
> tar zvxf interchange-5.6.3.tar.gz
> /usr/local/bin/perl Makefile.PL
> make
> make test #passed all 6
> make install

There are better ways than installing from the tarball (again, read the
guide).

> ran makecat, using MySQL, database is set up, and now have a test cat up,
> but no admin/login access. I do have to chmod 755 the cgi-bin/catlink as
> they aren't created with correct permissions. (strange, wonder why?)

That chmod could be the reason why you're having problems.  It needs to
be setuid root so you need to do:
chmod 4755 cgi-bin/catlink

Note that the exception to the above is if you're running apache with
suexec.

> I tarred up an old foundation-based cat that was recently running on 5.6 for
> years now, untarred to my destination folder, and finally got it fired up,
> but no access to admin/login (Internal Server Error).

Look in your interchange error.log file for the real reason for this error.

Also, why are you running makecat if you already have a catalog?

> During checkout, once I am on the shipmode.html and submit to 'Next' I
> expect to see the last page of my multi-page checkout (finalize.html) but I
> also get "Internal Server Error". I have credit cards enabled.

Again, see your error.log file (the global one, not the catalog one).

> Current errors in cat error.log
> 
> 74.117.242.45 K7Mcfhbm:74.117.242.45 - [31/August/2011:13:32:59 -0400] fts1
> /cgi-bin/fts1/ord/finalize.html Runtime error: mv_metadata import into
> failed: sdbm store returned -1, errno 22, key "kinventory" at
> /home/funtime/fts1/interchange/lib/Vend/Table/Common.pm line 513, <IN> line
> 121.

You should not be using sdbm anymore but should switch to gdbm.  It is
likely that IC is trying to sdbm, though because it can't find perl
support for gdbm.  When you build perl the gdbm-devel package has to be
installed or perl will not build with support for gdbm.  You probably
have to install gdbm and then re-build perl.  Again, see the guilde for
complete directions.


> Over 12 years and 5 days messing with Interchange and linux and I still
> don't get it. I'm ready to throw in the towel...

Save yourself a lot of grief and read and follow that guide.  I wrote it
to help people do exactly what you are trying to do and it makes things
very easy.


Peter



More information about the interchange-users mailing list