Hi Syed,

Thanks for the quick response. I still have some comments/questions about the Apache configuration, but I'll raise those in another thread (as that doesn't seem to be causing me a problem).


> could you first try neat and independent installation of BioMart.
I should have said,  I already did this after I found problems. I created a new empty directory and reinstalled everything from scratch - same results.
> Also please run the configure script  i-e
> (biomart-perl$ perl bin/configure.pl -r conf/reg.xml --clean ), then kill/restart your server.
And I did this a number of times!

>> Should this .cached file exist in the conf directory?
> no, it should reside under conf/cachedRegistries/ 
So there is a problem here, Web.pm is looking for it in the conf directory, as I said below. But why? (My hack to copy the .cached file into conf/ was only to try to get to the next step, I would like to go back and get this working without hacks.)

>
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.
I'm not so familiar with the code, I just looked to see the immediate cause of the problem. But I don't think hacking main.tt would get me far, this problem seems to be more far reaching.

Also, this test installation will be a guide for a future real installation, so I would like to get to the bottom of these problems. Is there any further information I could send you - for example, would it help to run this with log4perl logging set to debug?

Are there any perl modules for which it is critical to install the exact version, rather than the latest version -
and might be relevant to such issues (I guess not, or someone else would have hit the same problem).

By the way, the '#!perl -w' vs '#!/usr/bin/perl -w' shebangs caused me some head scratching at first, martview just gave a blank browser window, with no clue in the Apache log. It was only when I installed a test perl script, which worked, that I realised that the shebang was the cause of this.

Regards,
Roger

Syed Haider wrote:
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="" />
<script src=""  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