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.

Reply via email to