blank screen bibutils (again)

Help
2010-08-22
2013-05-28
  • Here is one of those recurrent questions and I wouldn’t be surprised if the answer were childishly simple, but I’m afraid I’m unable to discover the root of the problem.

    First off, I’ve got refbase-0.9.5 installed on a private server, using the following:

    * Windows XP Professional
    * Web server: IIS 5.1
    * PHP 5.3
    * Database server: MySQL 5.1 Essentials
    * PHPMyAdmin 3.3.3

    My problem is the notorious blank screen when attempting to use bibutils. First I had a go at the latest version (4.2), but after reading about compability issues on this forum (not in the manual btw), I pinned my hopes on the recommended 3.4.

    The permissions are set to full, a PHP temp has been specified in initialize/ini.inc.php, safe_mode setting in php.ini is off, the IIS server was restarted at every new attempt and the following command in the MySQL command line interpreter, using the full path to the bibutils directory, was successful:

    UPDATE depends SET depends_path = "C:\Inetpub\wwwroot\bibutils/" WHERE depends_external = "bibutils";

    (backslashes except for the last; normal slashes didn’t work)

    The one odd thing that I did encounter was with the command “SELECT * FROM depends;” The second line, the one for bibutils, reads:

    efbase-0.9.ibutils/ ¦s  ¦true  ¦ C:Inetpubwwwroot

    (The missing r and b are not typos)

    What could be wrong?

     
  • UPDATE depends SET depends_path = "C:\Inetpub\wwwroot\bibutils/" WHERE depends_external = "bibutils";

    This is incorrect: MySQL will eat the '\'' as an escape character.  The output of your SELECT statement shows that this did not work and you need to fix it.

    Was the install.php script not able to detect the location of bibutils?

    -Rick

     
  • Thanks, that was quick! I've corrected the slashes and the report prompted by SELECT looks normal now. I don't know why that didn't work at an earlier stage, but never mind that. The blank screen remains unfortunately.

    The install.php script didn't work for me, so I did a manual install, leaving the installaton of bibutils for a later time,

     
  • The blank screen remains unfortunately.

    Enable full logging of all warnings and errors and then inspect your log.  This should tell you why it is not able to run the executables.

     
  • Mmm, this is the message I receive
    (the bibutils binaries are now in a subdirecotry of C:\Inetpub\wwwroot\refbase-0.9.5).

    Fatal error: Uncaught exception 'com_exception' with message 'Source: Unknown Description: Unknown' in C:\Inetpub\wwwroot\refbase-0.9.5\includes\execute.inc.php:147 Stack trace: #0 C:\Inetpub\wwwroot\refbase-0.9.5\includes\execute.inc.php(147): com->Run('cmd /C C:/Inetp…', 0, true) #1 C:\Inetpub\wwwroot\refbase-0.9.5\includes\execute.inc.php(128): executeWin32('C:/Inetpub/wwwr…') #2 C:\Inetpub\wwwroot\refbase-0.9.5\includes\execute.inc.php(117): execute('C:/Inetpub/wwwr…', 'C:\WINDOWS\Temp…') #3 C:\Inetpub\wwwroot\refbase-0.9.5\includes\execute.inc.php(98): convertBibutils('C:/Inetpub/wwwr…', 'C:\WINDOWS\Temp…', 'xml2end', ' -i utf8', ' -o utf8') #4 C:\Inetpub\wwwroot\refbase-0.9.5\export\bibutils\export_xml2end.php(36): exportBibutils(Resource id #58, 'xml2end') #5 C:\Inetpub\wwwroot\refbase-0.9.5\search.php(1696): exportRecords(Resource id #58, '', '5', '', 'Export') #6 C:\Inetpub\wwwroot\refbase-0.9.5\search.php(575): generateExport(Resource id #58, '', '5', 'Endnote', 'file', '', 'Export', '', 0) #7 {main} in C:\Inetpub\wwwroot\refbase-0.9.5\includes\execute.inc.php on line 147

     
  • I suspect you may want '\',but to get that,you must say:

    UPDATE depends SET depends_path = "C:\\Inetpub\\wwwroot\\bibutils\\" WHERE depends_external = "bibutils";
    

    (you're escaping the literal slashes, so you must use two).  But you should also try to run the command from windows to see if it completes successfully (e.g. cmd /C C:\Inetpub\wwwroot\bibutils\xml2ris somemods.xml)

     
  • Thanks again

    (1) Replacing / with \\ achieves much the same - it gets accepted but Refbase still refuses to use the bibutils tools.

    (2) I'm not too familiar with using the windows command line, so I'll specify the steps I took to do this:

    * I placed a test file (.xml, retrieved from the refbase demo) in the same folder as the bibutils binaries
    * Start > Run > cmd /C C:\Inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris test.xml
    * Then something appears to be running for less than a sec
    * Should there a file by the name of test.ris anywhere ? I'm unable to locate anything of the kind
    * Same for  cmd /C C:\Inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris test.xml > test.ris

     
  • Update regarding (2).  I ran the command straight from 'Run', apparently by mistake. I'm now able to run xml2iris properly and create the output file test.ris.

     
  • Yes, I meant for you to execute it straight from 'run': that is the exact command the refbase is trying to execute. Run it again, but redirect output to a file & see if it works. Things to check:Web user can execute other programsweb user has read/write to c:\windows\tempweb user has permissions to read and execute cmd and C:\Inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris

     
  • OK, so If this newb here understands things correctly, the read / write /etc permissions for my web user are those for the Internet Guest Account I created and named.

    * The read/write/execute permissions for bibutils (as well as for all subfolders of the Refbase installation) are inherited from those set for the entire Refbase folder under the ‘Security’ tab of file properties (the parent directory). So everything seems in order here.
    * I’ve now done the same for cmd.exe in system32. I’m not sure which other programs would require to have their permissions tweaked though.
    * Permissions granted to the web user for c:\windows\temp are ok. There are no equivalent settings for the IIS server here.

    * Read to go: Start > Run > cmd /C C:\Inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris testfile.xml > testfile.ris
    * Again, a brief flicker indicating some kind of process, but no luck.

     
  • OK, so If this newb here understands things correctly, the read / write /etc permissions for my web user are those for the Internet Guest Account I created and named.

    Only if that guest account is the one that the webserver is executed under.

    Again, a brief flicker indicating some kind of process, but no luck.

    Rather than '> testfile.ris', use '> C:\\testfile.ris 2>&1'.  Then you know where to find the file & it should have both stdout and stderr.

     
  • A file called testfile.ris has been generated, which is empty except for containg the following error report:

    xml2ris: cannot open testfile.xml
    xml2ris: Processed 0 references

    I tried the same with the command below, but the output file had no references processed:for it
    cmd /C C:\Inetpub\wwwroot\refbase-0.9.5\bibutils3\bib2xml test.bib > C:\\Inetpub\wwwroot\refbase-0.9.5\bibutils3\test.xml 2>&1

    It still looks like there's a problem with the settings for permissions. An overzealous firewall perhaps?

     
  • Did you give the full path to testfile.xml (confirming it was valid, with escaped spaces if needed)?

    An overzealous firewall perhaps?

    Maybe, but it seems unlikely:  this should all be local.

     
  • Well, I’m not sure if there’s any command for checking the validity of the file (testfile.xml), but I can’t see anything wrong with this:

    <?xml version="1.0" encoding="UTF-8"?>
    <b:Sources SelectedStyle="" xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"  xmlns="http://schemas.openxmlformats.org/officeDocument/2006/bibliography" >
    <b:Source>
    <b:Tag>AbadCuevas2002</b:Tag>
    <b:SourceType>Report</b:SourceType>
    <b:ThesisType>Ph.D. Thesis</b:ThesisType>
    <b:Publisher>University of Panama</b:Publisher>
    <b:Year>2002</b:Year>
    <b:Author>
    <b:Author><b:NameList>
    <b:Person><b:Last>Abad Cuevas</b:Last><b:First>N.</b:First></b:Person>
    </b:NameList></b:Author>
    <b:Editor><b:NameList>
    </b:NameList></b:Editor>
    </b:Author>
    <b:Title>Estudio fitoquìmico y de bioactividad de _Cordia panamensis _y _Cordia cymosa_</b:Title>
    </b:Source>
    </b:Sources>
    

    Because none of this worked:

    cmd /C C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris testfile.xml > C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\testfile.ris 2>&1
    
     cmd /C C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris.exe testfile.xml > C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\testfile.ris 2>&1
    
    cmd /C C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\xml2ris testfile.xml > C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\testfile.ris 2>&1
    
    cmd /C C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\xml2ris.exe testfile.xml > C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\testfile.ris 2>&1
    

    I specified the full path to testfile.xml as follows

    cmd /C C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\testfile.xml > C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\testfile.ris 2>&1
    
    cmd /C C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris.exe C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\testfile.xml > C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\testfile.ris 2>&1
    

    cmd /C C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\xml2ris C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\testfile.xml >

    C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\testfile.ris 2>&1
    
    cmd /C C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\xml2ris.exe C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\testfile.xml > C:\\inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\testfile.ris 2>&1
    

    The error report now omits the line “xml2ris: cannot open testfile.xml” (which is good news?), but still says that that no references were processed.

    P.S. By “escaped space”, did you something else other than the extra backslash?
    P.P.S. You can see I made a slight mistake in the previous post by using one backlash too many. Not that it mattered one bit though.

     
  • That is not MODS XML.  It appears to be Microsoft's Word 2007 XML format, which bibutils cannot import.

     
  • Ah well, that clarifies things. The new XML file (MODS) which I just downloaded from one of the demo databases got converted correctly using the following command from Run:

    cmd /C C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\xml2ris C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\testfile.xml > C:\inetpub\wwwroot\refbase-0.9.5\bibutils3\testfile.ris 2>&1
    

    When I attempt to import the same .xml-file, Refbase tells me

    "There were validation errors regarding the data you entered:"
    

    Importing this file into http://beta.refbase.net works fine, however (if you need to know, it's the one with cite key Aalbu+Andrews1996 and serial no. 8186). So I'm afraid that means bibutils still isn't installed properly on my server.

     
  • So bibutils is working & you have valid data.  Good start.

    Earlier in this discussion, you claimed to use the path

    C:\Inetpub\wwwroot\bibutils\
    

    , but you are now using the path

    C:\Inetpub\wwwroot\bibutils3\
    

    Make sure your path is correct.  I'm not sure if you followed my other instructs, re. trying to use your server to execute some other program (to see if the execution of any program works).  That is probably the next thing to check…

     
  • It's actually

    C:\Inetpub\wwwroot\refbase-0.9.5\bibutils3\
    

    now, but I'm keeping the other path as a backup. The MySQL command line interpreter has now read:

    UPDATE depends SET depends_path = "C:\\Inetpub\\wwwroot\\refbase-0.9.5\\bibutils3\\" WHERE depends_external = "bibutils";
    

    One additional remark: when the command line interpreter's opened, it first needs to know which database it's going to use. For my purposes, that's something called 'biblio' (which I specifically created for the use of Refbase).

    As for the server. I have a private wiki installed on my home server, which is working alright, and Refbase does not give me any trouble when I manually add a record to its database.

    You mentioned install.php. Should I be able to locate bibutils there? Something like:

    if (isset($_POST['pathToBibutils']))
            $pathToBibutils = $_POST['pathToBibutils'];
        else
            $pathToBibutils = "";
    

    ?

     
  • As for the server. I have a private wiki installed on my home server, which is working alright, and Refbase does not give me any trouble when I manually add a record to its database.

    Right, but I assume you haven't used either webapp to run executables.  It could still be failing for multiple reasons & I'd advise you to try to get some executable that is simpler than bibutils to run on your server, to narrow down what you need to troubleshoot.

    You mentioned install.php. You mentioned install.php. Should I be able to locate bibutils there? Something like:

    install.php should be able to locate and auto-complete the form if xml2bib.exe exists in ./bibutils

    What problems with install.php did you have?  Note that it requires the ability to execute mysql.exe, so perhaps this also points to you having a deeper problem in running ANY executables on your server?

     
  • Just letting you know that I'm looking into this. I've posted a question on how to run .exe using php elsewere (though I haven't received any reponse so far).

     
  • No response, but I've given up on it anyway. Not because I've given up all hopes of ever being able to fix this, but because I've continued the project on a hosted server rather than local one for private use. The bibutils import does not appear to work here either, but that may very well be due to my IHS not giving any automatic permissions for running executables.

    In any event, I'd like to thank you very much for all your help and patience! It's been a good learning experience. I'll be watching future developments of refbase with great interest and curiosity and I'll probably drop by again, probably to submit a 'feature request' or something other.

    Kind regards,
    contrafibul