Hi Roger,
On Mon, 2008-01-28 at 18:48 +0000, Roger Hull wrote:
> Hi,
> I have been trying to install biomart to run martview and martservice,
> using an external biomart as the data source. The purpose is to test
> out customising the biomart web interface. I hit two problems as
> described below. I'll try to give full details of what I did.
> uname -a gives Linux <hostname> 2.6.9-023stab046.2-enterprise #1 SMP
> Mon Dec 10 15:22:33 MSK 2007 i686 i686 i386 GNU/Linux.
> perl -v gives This is perl, v5.8.8 built for i386-linux-thread-multi
> I loaded the latest versions of the perl modules required by biomart
> from CPAN.
>
> After installing biomart-perl, I changed conf/settings.conf to:
> [httpdSettings]
> apacheBinary=/usr/sbin/httpd
> serverHost=localHost
> port=80
> # to use proxying set the proxy port below (even if its 80)
> and set serverHost as your proxy host
> proxy=
> location=biomart
> I also changed !#perl -w to !#/usr/bin/perl -w in any scripts that I
> found the former.
>
> I ran perl bin/configure.pl -r conf/registryDBPointer.xml, using the
> central registry xml file as installed, and it seemed to be
> successful, ending with "Building templates for visible datasets..."
>
> Problem 1: Apache (Apache/2.2.2) does not like the generated
> htttp.conf - httpd reports:
> Syntax error on line 14 of /home/biomart/biomart-perl/conf/httpd.conf:
> Invalid command 'DirectoryIndex', perhaps misspelled or defined by a
> module not included in the server configuration
this means apache module mod_dir.so is missing from apache modules
directory, add it and this message will vanish away.
> The httpd.conf generated looks OK - it starts:
>
> PidFile logs/httpd.pid
> Timeout 300
> KeepAlive On
> MaxKeepAliveRequests 100
> KeepAliveTimeout 15
> MinSpareServers 2
> MaxSpareServers 2
> StartServers 2
> MaxClients 50
> MaxRequestsPerChild 0
> Listen 80
>
> DirectoryIndex index.html
>
> Anyway, I took the lines from the generated httpd.conf and amalgamated
> them into the previous (working) httpd.conf. Now the server starts up
> and I can see, for example, http://<my server>/index.html as the
> introductory biomart page.
> I also added a small perl test script in cgi-bin, and this ran OK from
> my browser.
> (In my opinion this method of giving a completely new httpd.conf is
> anyway not very convenient if someone wants to run other services than
> martview on their server).
It is possible to merge our directives into other httpd.conf files, but
i guess adding it automatically to an existing file is'nt safe. We
provide a simple/basic httpd.conf which is expected to work anywhere.
>
> Problem 2: When I loaded the page http://<my server>/biomart/martview
> from a browser, I got
> ERROR: caught BioMart::Exception: non-BioMart die(): Can't call method
> "settingsParams" on an undefined value
> at /home/biomart/biomart-perl/lib/BioMart/Web.pm line 118.
>
> line 118: my $mart_registry = $self->get_mart_registry();
> and get_mart_registry: return $self->get('mart_registry');
> and 'mart_registry' doesn't seem to be in the hash, so we get null.
> This seems to be caused by Web.pm looking for
> conf/registryDBPointer.xml.cached, which does not exist. Web.pm
> doesn't seem to handle properly the case that the file doesn't exist,
> only the case that it fails to deserialise correctly.
> (By the way, in cgi-bin/martview, I have $CONF_FILE =
> '/home/biomart/biomart-perl/conf/registryDBPointer.xml';)
>
> Should this .cached file exist in the conf directory?
no, it should reside under conf/cachedRegistries/
>
> Just to move things forward, I tried copying
> registryDBPointer.xml.cached from conf/cachedRegistries/ (where there
> was such a file) to conf/. Now http://<my
> server>/biomart/martviewgives a page that looks like it's trying to be
> martview! But just some plain text, like "New Count Results". Looking
> at the page source I can see why: I have things like
> <link rel="stylesheet" type="text/css" href="//mview/martview.css" />
> <script src="//mview/js/martview.js" type="text/javascript" ></script>
>
> where the 'location', biomart, is missing from between the double forward
> slashes. Looks like the TAG_path tag did not get filled in the Template
> main.tt for some reason.
could you first try neat and independent installation of BioMart. This
would identify platform conflicts if there are any. As you see
TAG_path's value is missing and you are already familiar with the code,
you can manually stitch it in main.tt and see if everything works fine.
Also please run the configure script i-e
(biomart-perl$ perl bin/configure.pl -r conf/reg.xml --clean )
each time you edit settings.conf or stylesheets, and then kill/restart
your server.
regards
syed
> Your help would be appreciated,
> Roger.