Installing EPrints on Windows

Atmospheric photograph of a bearded man with his hand raised in front of a bookshelf

EPrints provide a Windows installer for their product. However, because it is a Perl based web application it cannot be installed by running this installer file alone. There is a set of required software that is somewhat outside what might be considered the ‘normal’ range for Windows. Part of this includes running the Apache web server. If the machine on which you are intending to run EPrints has other applications that depend on the IIS web server then we would recommend choosing a different server for EPrints and, preferably, a Linux platform. If Linux is not an option and the server you are using does not run IIS (or you are comfortable with running Apache alongside IIS on different ports) then this article, in conjunction with the official EPrints documentation may prove useful.
The following is the list of required software for EPrints on Windows:

  • Apache
  • MySQL
  • ActiveState Perl
  • Selected Perl Modules

One approach to installing this might be to download a WAMP installation such as WAMP Server. However, there are a couple of drawbacks for this. The first is that EPrints requires a specific installation directory for Apache. This may also be a consideration if you are installing EPrints on a machine that already has Apache installed. The second is that WAMP installs PHP, which you may not require. This isn’t a major problem in that it won’t interfere with EPrints but is a consideration in that extra software will be installed that will, to some extent, be using resources (for example, Apache will load various PHP modules).

Before installing

To install EPrints it will be preferable (though not strictly necessary) to have Administrator privileges on the computer that will be running the software. It is necessary to have write permission to the root of the C drive.

Before installing EPrints you should also ensure that you have a hostname set up for the repository. This is the web address that will be entered in a browser (e.g. myrepro.myuni.ac.uk). The EPrints documentation says (correctly) that you should ensure that your systems team sets up a DNS entry for the domain that you want to use. If you are setting up a test repository that will not be accessed by other users it is possible to bypass this process by adding an entry for a ‘fake’ domain in your Windows hosts file. A tutorial on the hosts file can be found at bleepingcomputer.com.

Installation

Installing Apache

Apache 2.2 can be downloaded from the Apache web site. If you are not going to be running IIS on the same computer and are happy to have Apache running on port 80 (the standard setting for web connections) then you can accept all the defaults except that you will need to change the installation folder to C:\Apache in the Destination Folder dialog.

Once the installation has finished it is necessary to add the Apache binaries folder to the standard windows path. To do this right click on My Computer and select Properties. In the Advanced tab click the Environment Variables button. In the System variables section scroll down and select the variable name Path. Click edit and add the following to the end of the Variable value text:

;C:\Apache\bin

Note the semi-colon. Entries in the Windows path variables are separated by semi-colons so this needs to be added to separate the new entry from the existing elements in the path. Click OK three times to save the changes.

You can test your installation by entering http://localhost/ in a browser. If you have used a different port in order to run alongside IIS enter this too, e.g. http://localhost:8080/. You should see a simple web page saying “It works!”

Installing MySQL

MySQL can be downloaded from the MySQL web site. The standard installation can be followed except for where the default character set is concerned. The MySQL Server Instance Configuration Wizard should start during the installation process. If it doesn’t you can run it after installation from the Windows Start Menu folder for MySQL.

When you reach the Default Character Set dialog select Best Support for Multilingualism.

Screenshot of MySQL Dialogue for configuring default character set

This will set the default character set to UTF8. If you have an existing MySQL installation then the default character set can be changed through the MySQL Administrator or by re-running the MySQL Server Instance Configuration Wizard.

When installing MySQL the installer will ask for a password for the root user. Be sure to remember this.

Installing Perl

Active State Perl (ActivePerl) community edition can be downloaded from the ActiveState web site. You can run through this installation accepting the defaults.

Installing Perl Modules

Perl modules are extensions to the basic Perl library. EPrints requires three additional Perl modules: mod_perl, DBD::mysql and XML::LibXML. Perl modules are available from various internet archives and ActivePerl includes a tool for managing the installed modules. From the Windows Start Menu folder for Active Perl select Perl Package Manager. Note, EPrints recommend using the module archive provided by the University of Winnipeg. To use this archive select Edit -> Preferences. Select the Repositories tab. From the Suggested drop-down list at the bottom of the dialog select the University of Winnipeg and click Add.

Module packages can be most easily installed from a command prompt. Start a command prompt (from Start Menu -> All Programs -> Accessories or by selecting Start Menu -> Run… and typing cmd) and enter the following commands:

ppm install mod_perl
ppm install DBD-mysql
ppm install XML-LibXML

The mod_perl installation script will ask for the location of the Apache modules directory. Enter C:\Apache\modules. It will also be necessary to edit the Apache configuration files to enable mod_perl. This file is C:\Apache\conf\httpd.conf. Add the following lines just after the section that contains a number of lines beginning with LoadModule:

# Perl
LoadFile C:/Perl/bin/perl510.dll
LoadModule perl_module modules/mod_perl.so

In the line that starts LoadFile put the path to the file perl510.dll. The value above should be correct for default installations of ActivePerl. Note the unix style forward slashes (/) in the path rather than the Windows style back slashes (\).

It is necessary to restart Apache to pick up these changes. This can be done by clicking on the Apache icon in the Windows System Tray.

Using PPM through a HTTP Proxy

Many HEIs route all web traffic through a HTTP proxy. This can prevent the Perl Package Manager being able to access the module archives. To overcome this it is necessary to set an environment variable so that the package manager is aware of the address of the proxy.

To set an environment variable right click on My Computer and select Properties. In the Advanced tab click the Environment Variables button. In the System variables section click New. Enter the Variable name HTTP_proxy and in Variable value the address of your institution’s HTTP proxy, including the port if required, e.g. http://myproxy.university.ac.uk:8080. If your proxy requires authentication then you will have to create two other environment variables called HTTP_proxy_user and HTTP_proxy_pass. Click OK three times to save the changes.

Install optional software

GhostScript and ImageMagick are optional pieces of software that add functionality to EPrints for creating preview images.

GhostScript can be downloaded from the GhostScript SourceForge project. Run the installer and accept the default options.

ImageMagick can be downloaded from the ImageMagick web site. Run the installer accepting the defaults except on the Select Additional Tasks dialogue. Here check the option to Install PerlMagick for ActiveState Perl.

Install EPrints

The EPrints installer can be downloaded using the link to the .msi file from the EPrints software home page. It is better to use the link from the home page rather than the link from the Windows installation documentation because the home page link may point to a more recent stable version.

The EPrints installer does not allow any options to be configured. EPrints will be installed to the folder C:\eprints.

Once the installation is complete edit the Apache configuration file (C:\Apache\conf\httpd.conf) again. Add the following lines to the end of the file:

# EPrints
Include C:/eprints/cfg/apache.conf

Set Windows paths

The EPrints configuration files contain certain paths which are, by default, set a Unix-style paths. In order for Preview images to be created (e.g. thumbnails of the first page of PDFs) the path to the ImageMagick ‘convert’ executableneeds to be changed to the Windows path.

To change this it is first necessary to copy the system configuration into an installation-specific configuration folder. This will prevent the changes getting overwritten if EPrints is upgraded.

Copy the file C:\eprints\lib\syscfg.d\executables.pl to C:\eprints\cfg\cfg.d\executables.pl.

Edit C:\eprints\cfg\cfg.d\executables.pl and change the line:

'convert' => '/usr/bin/convert',

To reflect the location of the file convert.exe in your ImageMagick installation, for example:

'convert' => 'C:/Program Files/ImageMagick-6.6.2-Q16/convert.exe',

This path will depend on the version of ImageMagick that you installed.

Note that the creation of preview thumbnails for PDFs is not instant. If you view the abstract page of a newly deposited PDF and no preview is available try again after a few minutes.

Creating a repository

You can now create a repository. The process is similar to that described in the EPrints Getting Started guide but needs to be customised slightly for a Windows environment.

The configuration process is done through the command line so it is necessary to open a command prompt. First change to the EPrints binary directory:

cd C:\eprints\bin

Run the epadmin command to create a repository:

perl epadmin create

You can now follow the on-screen instructions as indicated in the Getting Started Guide. Be careful especially to make a note of the Archive ID that you set for the repository.

When asked for a hostname enter the value that was set up by your systems team.

You will also be asked for the MySQL root user password that you entered during the MySQL installation.

Update: note that the epadmin create command will ask for two host names, the standard host name and, later in the setup process, a secure host name. If set, the secure host name will be used for the Login and Create Account screens. This can cause problems if the server is not set up to use SSL (see comments) so be sure to only set this host name if you are sure that the server can handle connections using HTTPS.

Static files and LOC subject import

The creation of static files and importing of LOC subjects does not work when attempted as part of the repository creation process using epadmin create. This is because Windows will not run Perl scripts unless explicitly told to user Perl (e.g. perl epadmin create) or unless the script file has an extension that identifies it as requiring perl (e.g. epadmin.pl create). Neither of these is an option for static file creation or import of LOC subjects by epadmin without actually editing the epadmin script file itself, which isn’t recommended.

However, both operations can be carried out after the repository has been created. You will need to know the ID of the archive that you have just created. Still in the eprints\bin folder run the following commands, substituting the Archive ID of your repository where we have written <archive_id>.

perl generate_static testwin
perl import_subjects testwin
perl generate_apacheconf

Restart Apache

Restart Apache in order to pick up the configuration changes. It may also be useful to restart the EPrints Indexer service. This can be done from Control Panel -> Administrative Tools -> Services.

Once the web server has restarted it should be possible to access your repository using the hostname that was set up by your systems team.

Acknowledgements

Thanks go to archivalsoup for their blog article that informed these instructions. The main functional difference is that this article reflects some of the specific paths required by the latest EPrints installer.

About these ads

About Rob Ingram
Rob Ingram is the Technical Officer for the Repositories Support Project offering technical advice and support to UK repository networks.

45 Responses to Installing EPrints on Windows

  1. Pingback: Installing EPrints on Windows (via Repositories Support Project) « Chicago Mac/PC Support

  2. Pingback: Installing MePrints on Windows « Repositories Support Project

  3. anto says:

    when i type ‘localhost’ or 127.0.0.1 on HOSTNAME eprints configuration it says “warning, some browser dont support setting cookies on localhost, try different name”..
    how run eprints on localhost?

    thanks..

    • Rob Ingram says:

      Cookies need domain names to have one or more dots in them, e.g. ‘mydomain.com’ so the name ‘localhost’ doesn’t meet this requirement. To run on localhost you can set up a ‘fake’ domain name in your hosts file. See the section ‘Before installing’ in the article.

  4. Durgaprasad says:

    when i type perl c:/eprints/bin/epadmin creat “‘It is not asking for hostname etc ,instead its giving help how to run the program.I have done everything as mentioned in how to install in windows.

    how to start from here.

    Thanks

    • Rob Ingram says:

      A couple of things, it may be a typo in your comment but make sure you are typing:

      perl c:/eprints/bin/epadmin create

      Also, when you say it is giving help on how to run the program, do you mean help for perl or for epadmin?

  5. Emad says:

    hey thanks for this very detailed information about using and installing EPrints
    I have a problem restarting my Apache
    an error appear to tell me that another virtual user is on port 8080 and it has a priority to work on it
    How to fix that in details plz help me and I’ll be thankful to u

  6. Emad says:

    THIS IS THE DETAILED ERROR WHEN RESTARTING APACHE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    [Tue Aug 17 21:13:15 2010] [warn] module perl_module is already loaded, skipping

    [Tue Aug 17 21:13:15 2010] [warn] _default_ VirtualHost overlap on port 8080, th
    e first has precedence
    [Tue Aug 17 21:13:15 2010] [warn] _default_ VirtualHost overlap on port 8080, th
    e first has precedence

    • Rob Ingram says:

      Hi Emad,

      Sounds like Apache is not set up for name based virtual hosts. Try adding the following to the file C:\Apache\conf\extra\httpd-vhosts.conf:

      NameVirtualHost *:8080

      And restart Apache.

      • Emad says:

        oh Thanks I tried this and it didn’t work so I reinstall Apache accepting all the default values including port 80 not port 8080 and now it works.

  7. Emad says:

    SIR, after configuring the Archive and the database and type my hostname URL in the Internet browser it show me an HTTP 404 Error and I tried to solve it as the troubleshooting suggest but also it didn’t work what should I do
    please help me !!!

    • Rob Ingram says:

      Hi Emad,

      Does Apache work OK at the standard http://localhost/ address?

      If so let me know what domain name you have set and what URL you are using that gives the 404.

      You could also try regenerating your Apache config files for the repository. In the eprints bin directory try:

      perl generate_apacheconf --replace [repoid]

      And restart Apache.

      • Emad says:

        Thanks for your concern>
        yes Apache work well at the standard http://localhost/ address and a page to welcome my repository appears when typing the localhost but to procceed afterward, I can’t reach my domain that I entered in the host file:

        I choose this domain: eprints.hiast.edu.sy
        edited the host file and it become like this:

        # Copyright (c) 1993-2009 Microsoft Corp.
        #
        # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
        #
        # This file contains the mappings of IP addresses to host names. Each
        # entry should be kept on an individual line. The IP address should
        # be placed in the first column followed by the corresponding host name.
        # The IP address and the host name should be separated by at least one
        # space.
        #
        # Additionally, comments (such as these) may be inserted on individual
        # lines or following the machine name denoted by a ‘#’ symbol.
        #
        # For example:
        #
        38.25.63.10 eprints.hiast.edu.sy

        # localhost name resolution is handled within DNS itself.
        # 127.0.0.1 localhost
        # ::1 localhost

        actually I’m running eprints on Windows 7 OS

        please if you could help me I’ll be thankful.

      • Rob Ingram says:

        Can you confirm that you entered eprints.hiast.edu.sy as the hostname when you set up the repository? I’m surprised that the repository welcome page appears at the standard localhost address.

  8. Emad says:

    yes I’m sure about that
    but I think that when to try a web pages on localhost it might be something like that:
    http://localhost/home
    am I right?

    • Rob Ingram says:

      I’m not entirely sure what you mean. If you set eprints.hiast.edu.sy as your hostname for the repository then it should be accessible at http://eprints.hiast.edu.sy/ if you are using port 80 or http://eprints.hiast.edu.sy:8080/ if you’re using port 8080.

      • Emad says:

        Thanks Sir Rob Ingram
        those suggestions didn’t work.
        but I figure out the problem: it was a problem in DNS that I was supposed to tell my browser to not using proxy for the domain eprints.hiast.edu.sy from the tools>internet options>connection>lan settings>advanced.

        thanks for your effort in helping me, I appreciate that.

      • Rob Ingram says:

        Hi Emad,

        Glad you got it figured out. I know that a lot of institutions are behind proxies and that this can cause issues. That’s why in my articles I try to include proxy configuration settings wherever I come across them. Obviously I overlooked the browser settings so thanks for adding the note here.

  9. Emad says:

    Mr. Rob I’m working on building Lerning Objects Repository for our Institution and I suggest this open source to begin with, but they want me to build it in Arabic not in English that is the web Interfaces and the objects have to be in Arabic Language, how could I do this, or is there any Arabized version??

  10. Adewole Adewumi says:

    Thanks so much for the detailed exposition.

  11. Emad says:

    I’m thankful for your help on installing and get started with eprints
    Actually all work well and my repository was created and configuered as I want
    but now I want to create a web page that any Teacher could use it to build a complete course with the aid of this repository by searching and browsing it to select the appropriate Learning Object they want, could this be done using eprints or extending eprints with some other code, or….??
    plz if u could help me getting started with this phase, and I’ll be thankful for your aid

  12. Adam says:

    Hi
    I try to expand the search engine in my repository to be directed to google when no match found
    How to do this
    could you help me ??

  13. Muntasir says:

    Hi,
    I installed an Eprints server in my notebook which runs on Windows 7. After the installation when I tried to build an archive using “perl epadmin create” command it gave me the following message:
    “Perl Command Line interpreter has stopped working
    Windows can check online for a solution and close the program.”

    As far as my installation is concerned, I followed the installation notes meticulously. So, I guess my installation is more or less alright. But at the same time this message is confusing me and means that there is something wrong in the installation. Can you shed some light?

    Kind regards,
    Muntasir

    • Rob Ingram says:

      Hi,

      It sounds like a problem with perl rather than eprints. Have you tried creating a simple perl script outside eprints and running that to see if you get the same error?

  14. Muntasir says:

    Hi,
    I have a made a perl script as you said and ran it outside EPints. It didn’t generate any error message. Any other suggestions?

    Regards,
    Muntasir

    • Rob Ingram says:

      I’m afraid I haven’t tried installation on Windows 7 and don’t have an machine that I can try it on at the moment (IT here is stuck on XP). I assume that you have administrator privileges for the machine and have write permissions on the eprints folders? I can’t see anything on the EPrints tech mailing list that would suggest that this is a common problem but it may be worth asking there until I can try a Windows 7 install myself.

      • Muntasir says:

        Hi,
        I guess you are right. I don’t have write permission on the EPrints folder, particularly on the perl_lib folder. Because when I ran the command ‘ppm area list’ I got the following output:

        name pkgs lib
        (perl_lib) n/a C:/eprints//perl_lib
        Site* 5 C:/Perl/site/lib
        Perl 229 C:/Perl/lib

        I will try to change the ‘read only’ status of perl_lib and let you know. I have also mailed to the eprints tech support but haven’t got any reply yet.

        Kind regards,
        Muntasir

  15. Gladys Fernandez says:

    Hi: I have one problem. When I execute perl epadmin create, windows put me this banner: Windows can’t find libaprutil-1.dll thanks…

  16. wenfabs says:

    Hello Rob,

    We were able to successfully (almost) install Eprints, however the “Login” or “Create Account” do not appear to work, Internet Explorer returns “Internet Explorer cannot display the webpage”. Other items within the eprints\cgi folder seem to work fine such as the “Latest Additions” and “Search Repository” links. Any ideas on what could be going on? Could version incompatibility between Perl, Eprints and Apache cause the issue?

    Our Eprints install consisted of the following versions:
    Windows 2008 SP1 X86
    EPrints 3.2.4
    Apache 2.2.17
    MySQL 5.1
    ActivePerl 5.10.1

    Thanks

    • Rob Ingram says:

      It isn’t something I’ve heard of before. Have you checked the logs (e.g. apache error log) to see what error is being thrown?

      • wenfabs says:

        Apologies for the delay. Hope you had a good holiday.

        So, nothing comes up in the error log (verbose has been set to debug) and in the access log there is the following redirect entry when clicking on the “login” link:

        “GET /cgi/users/home HTTP/1.1″ 302 –

        Another instance of Eprints has also been installed in a Red Hat Linux Server only to get the same symptoms and entry in the access_log and nothing in the error_log. (The install (Apache, MySQL, Active Perl and Eprints) has also been performed in both Operating Systems at least twice from scratch, also with the same exact results)

        The documentation used in the install consisted of the following:
        2008http://wiki.eprints.org/w/Installing_Eprints_3_on_Microsoft_Windows
        http://mawest2.iweb.bsu.edu/eprints/Installing%20EPrints%203%20on%20Windows.pdf
        http://rspproject.wordpress.com/2010/06/11/installing-eprints-on-windows/
        http://wiki.eprints.org/w/Installing_EPrints_3_on_RedHat_Enterprise_5

        Could it be a setting that I am missing somewhere? Or a bug in version 3.2.4? Are there any known compatibility issues with the versions of Apache, Active Perl and Eprints that I am using? Have also tried different version combinations only to come up with unsuccessful installs.

        Thanks in advance…

      • Rob Ingram says:

        Hmm, very strange. Can you tell me what domain you are using and also confirm that this stays the same in the URLs for Login and Create user?

        Thanks.

  17. wenfabs says:

    Yes, it does stay the same in the URLs for Login and Create user.
    http://flceprints.fortlewis.edu/

    • Rob Ingram says:

      Going to take this discussion out of the comments. I’ll post a summary if we resolve the problem.

      • Rob Ingram says:

        This problem turned out to be due to a secure host name being entered during the creation of the archive (i.e. when the perl epadmin create command was run). This meant that the Login and Create Account screens were attempting to use HTTPS when the server was not set up to use SSL.

        The solution was to re-run the setup (or use perl epadmin config_core ) and remove the secure host name.

  18. Elvi Nemiz says:

    How can we make the full text indexer work? I edited executables.pl to include xpdf’s pdftotext utility just like the case of imagemagick but full text indexing is still not working.

    Thanks in advance…

  19. Bahiyah says:

    Hi.. I have some issues regarding EPrints,there are some errors as follows :

    I can start adding a new item, but when I continue to one of the migrated tabs, I get server errors displayed on the webpage.
    The server encountered an “internal error or misconfiguration and was unable to complete your request”.
    By the way, when I tried to upload small files, the error 500 always happened, but the image still gets uploaded. At some point during my
    trial, I was able to upload a small image, but somehow the image was corrupted and didn’t display right on the screen.

    Do you have any idea on how to solve this matter? really need your help…

    Thanks in advance.

  20. SS says:

    Hi Rob,

    I have installed eprints on windows but i’m having problem in sending registration emails. whenever we try to register for a new account it gives the error “The system is currently unable to send email. Please try again later. If this problem persists, please contact the administrator with details.”

    I am using gmail as the smtp server.
    Pls suggest.
    Thanks.

  21. manglien says:

    how do I install the latest edition of eprint in windows platform as I have a problem in running active perl

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: