Difference between revisions of "Installing EPrints on RHEL/Fedora/CentOS"

From EPrints Documentation
Jump to: navigation, search
(Added RPM for LWP::Protocol::https)
(Requirements)
 
(99 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Category:Installation]]
 
[[Category:Installation]]
  
==Requirements==
+
== Requirements ==
 +
* Red Hat Enterprise (RHEL) / CentOS / Rocky Linux 8 or 9. (EPrints can be installed on RHEL / CentOS / Rocky Linux 10 but there are currently a [[#RHEL / CentOS / Rocky 10|number of issues]], some which should be resolved in later version of these Linux OSs).
  
* RedHat Enterprise (RHEL) / CentOS 7 or Fedora 25+.  These instructions will more than likely work for RHEL / CentOS 6 but have not been as thoroughly tested.
+
== Prerequisites ==
 
+
* Pre-install and enable the EPEL DNF repository.
* Pre-installed MySQL server and client.
+
**: <code>dnf install epel-release</code>
 +
* Pre-install and enable the CodeReady Builder DNF repository.
 +
** RHEL
 +
**: <code>subscription-manager repos --enable "codeready-builder-for-rhel-$(releasever)-$(arch)-rpms"</code>
 +
** CentOS Stream / Rocky Linux 8
 +
**: <code>dnf config-manager --set-enabled powertools</code>
 +
** CentOS Stream / Rocky Linux 9 and 10
 +
**: <code>dnf config-manager --set-enabled crb</code>
 +
* Pre-install MySQL server and client and make sure the former is enabled and running.
 
** RHEL / Fedora:
 
** RHEL / Fedora:
yum install mysql-server mysql
+
**: <code>dnf install mysql-server mysql mysql-devel<br/>&nbsp;systemctl enable --now mysqld</code>
** CentOS:
+
** CentOS / Rocky Linux:
yum install mariadb-server mariadb
+
**: <code>dnf install mariadb-server mariadb mariadb-devel<br/>&nbsp;systemctl enable --now mariadb</code>
 
+
* From the MySQL command prompt, pre-configure an eprints user with password for MariaDB/MySQL, which can be used as the Database super user when creating the database for an archive. (Be sure to change the password from "changeme"):
== Installing from EPrints 3.3.x RPM ==
+
*: <code>CREATE USER 'eprints'@'localhost' IDENTIFIED by 'changeme';<br/>&nbsp;GRANT ALL PRIVILEGES ON *.* TO 'eprints'@'localhost' WITH GRANT OPTION;</code>
'''Please note that rpm.eprints.org is no longer fully supported.  The below instructions should still work for installing EPrints 3.3.x on RHEL/CentOS 6 and 7 and comparable versions of Fedora.  If they do not work the latest EPrints RPM can be downloaded at http://files.eprints.org/'''
+
* As root, from a command prompt add the <tt>eprints</tt> user:
 
+
*: <code>adduser eprints</code>
Add the rpm.eprints.org repository key:
 
 
 
rpm -ivh http://rpm.eprints.org/rpm-eprints-org-key-1-1.noarch.rpm
 
 
 
Next, add the rpm.eprints.org EPrints repository:
 
 
 
rpm -ivh http://rpm.eprints.org/eprints/noarch/rpm-eprints-org-1-1.noarch.rpm
 
 
 
Note: if these fail to connect to the repository and you have a proxy server, try adding the parameter "--httpproxy http://your.proxy.address" (export http_proxy doesn't affect rpm call)
 
 
 
Install required XML libraries (Use ''yum upgrade'' if these are already installed):
 
 
 
yum install libxml2 libxslt perl-XML-LibXML perl-XML-LibXSLT
 
 
 
Finally, install EPrints 3:
 
 
 
yum install eprints
 
 
 
== Installing EPrints 3.3.x from Source ==
 
'''N.B. Installing from source is generally discouraged particularly for production repositories.  However, if want to develop the EPrints code or a plugin or Bazaar package it may be useful to install from source, ideally from [https://github.com/eprints/eprints EPrints Core Git repository].'''
 
 
 
First, install the EPEL YUM package repository and run yum repolist to ensure the GPG key is installed:
 
 
 
yum install epel-release
 
yum repolist
 
 
 
Now, install all the dependencies that would be installed through the eprints RPM.
 
  
  yum install libxml2 libxslt httpd mod_perl perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Time-HiRes \
+
== Dependencies ==
    perl-CGI perl-Digest-MD5 perl-Digest-SHA perl-JSON perl-XML-LibXML perl-XML-LibXSLT perl-XML-SAX \
+
The following RPMs need to be installed using the dnf command:
     perl-LWP-Protocol-https perl-MIME-Lite tetex-latex wget gzip tar ImageMagick elinks poppler-utils \  
+
  dnf install libxml2 libxslt httpd mod_perl perl-Apache-DBI perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL \
     chkconfig unzip
+
    perl-Time-HiRes perl-CGI perl-Digest-MD5 perl-Digest-SHA perl-Digest-SHA1 perl-JSON perl-XML-LibXML \
 +
    perl-XML-LibXSLT perl-XML-SAX perl-MIME-Lite perl-Text-Unidecode perl-JSON perl-Unicode-Collate \
 +
     perl-LWP-Protocol-https perl-IO-String tetex-latex wget gzip tar ImageMagick poppler-utils \
 +
     chkconfig unzip cpan python3-html2text expat-devel libxslt-devel
  
Next, create the eprints user
+
'''N.B.''' If you are running RHEL / CentOS / Rocky Linux 10, '''perl-Apache-DBI''' is no longer available and will need to be installed with CPAN and '''python3-html2text''' will not be available until RHEL / CentOS / Rocky Linux 10.1.  You should exclude these when running the dnf command above.  (See [[#RHEL_.2F_CentOS_.2F_Rocky_10|Operating System Version Specific Requirements for RHEL / CentOS / Rocky Linux 10]] below for more details).
  
  adduser eprints
+
== Installing EPrints 3.4.6 from Source ==
 +
'''Ideally you will install from source from [https://github.com/eprints/eprints3.4 EPrints Core Git repository], which includes the core codebase and the publications flavour. However, you may choose to download tarballs of the EPrints core codebase and publications flavour from files.eprints.org as an alternative means of installation.
  
Next, clone the Git repository from GitHub to /opt/ and set the eprints user as the owner.  It is probably best to checkout the latest release rather than using HEAD, which may have known issues:
+
=== From GitHub ===
 +
Clone the Git repository from GitHub to <tt>/opt/</tt> and set the <tt>eprints</tt> user as the owner.  It is probably best to checkout the latest release rather than using HEAD, which may have known issues:
  
  yum install git
+
  dnf install git
  git clone https://github.com/eprints/eprints.git /opt/eprints3
+
mkdir /opt/eprints3
 +
chown eprints:eprints /opt/eprints3
 +
chmod 2775 /opt/eprints3
 +
su eprints
 +
  git clone https://github.com/eprints/eprints3.4.git /opt/eprints3
 
  cd /opt/eprints3/
 
  cd /opt/eprints3/
  git checkout tags/v3.3.16
+
  git checkout tags/v3.4.6
chown -R eprints:eprints .
 
 
 
Next, as the eprints user copy /opt/eprints3/perl_lib/EPrints/SystemSettings.pm.tmpl to /opt/eprints3/perl_lib/Eprints/SystemSettings.pm
 
  
EPrints is now fully installed at /opt/eprints3. However, you will not yet have a running archive. Follow the [[Getting Started with EPrints 3]] instructions to set this up.
+
=== From files.eprints.org ===
 +
Download and unpack the core codebase tarball for files.eprints.org.
 +
cd /tmp/
 +
wget https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz
 +
tar -xzvf eprints-3.4.6.tar.gz
  
Now update Apache configuration to set it up to use the eprints user and group, by ensuring the following lines are set thus in /etc/httpd/conf/httpd.conf:
+
Then move in the source code into place:
 +
mv eprints-3.4.6 /opt/eprints3
 +
chmod 2775 /opt/eprints3
 +
chown -R eprints:eprints /opt/eprints3
  
  User eprints
+
If you want a publications flavoured repository, then you will also need to download, unpack and move that into the appropriate location:
  Group eprints
+
wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz
 +
  tar -xzvf eprints-3.4.6-flavours.tar.gz
 +
  mv eprints-3.4.6/flavours/pub_lib /opt/eprints3/flavours
 +
  chmod -R g+w /opt/eprints3/flavours/pub_lib
 +
chown -R eprints:eprints /opt/eprints3/flavours/pub_lib
  
Now add the file /etc/httpd/conf.d/eprints.conf with the following line:
+
== Configuration ==
 +
<span id="getting_started_and_apache">EPrints</span> is now fully installed at <tt>/opt/eprints3</tt>. However, you will not yet have a running archive. Follow the [[Getting Started with EPrints 3]] instructions to set this up.
  
Include /opt/eprints3/cfg/apache.conf
+
== Post-configuration ==
 
+
Add the <tt>eprints</tt> user to the <tt>apache</tt> group and vice-versa.
There is a good chance your operating system will have SELinux enabled. If so, follow the instructions under Troubleshooting for how to let EPrints do what it needs to do through SELinux.
+
usermod -aG apache eprints
 +
  usermod -aG eprints apache
  
 
Finally, restart Apache:
 
Finally, restart Apache:
 
 
   service httpd restart
 
   service httpd restart
  
You should now be able to access your vanilla repository at the hostname you specified when running '''epadmin create''' from the [[Getting Started with EPrints 3]] instructionsYou should then login as the admin user you created during this process and turn on the indexer. This can be done by clicking on the '''Admin''' link under the Logged in menu, then clicking on the '''System Tools''' tab and finally the '''Start Indexer''' button.
+
=== SELinux ===
 
+
There is a fair chance your operating system will have SELinux enabled.  If so, follow the advice at [[EPrints and SELinux]] for how to let EPrints do what it needs to do through SELinuxOtherwise, you could disable SELinux with the following:
 
+
  setenforce 0
 +
However, that will only disable it until the next reboot. You should also edit '''/etc/selinux/config''' and make sure the <code>SELINUX=enforcing</code> is set to:
 +
SELINUX=disabled
  
 
== Non-critical Dependencies ==
 
== Non-critical Dependencies ==
Some of EPrints non-core functionality may not work out of the box as these dependencies are not included as part of the RPM.  Here is a list of known additional packages (and the YUM repositories in which they can be found) or CPAN modules than can be installed.   
+
Some of EPrints non-core functionality may not work out of the box as these dependencies are not included as part of the installation process.  Here is a list of known additional packages (and the DNF repositories in which they can be found) or CPAN modules than can be installed.  The latter should be installed using the ''cpan'' command as the root user.
 
 
Some of these known additional packages are only available through the Extra Packages for Enterprise Linux (EPEL) YUM repository, which can be installed as the root user as follows:
 
 
 
yum -y install epel-release
 
yum repolist
 
 
 
CPAN modules should be installed using the ''cpan'' command as the root user.
 
 
   
 
   
* '''perl-Geo-IP (epel)''' - Allows IRstats2 to determine the location of views/downloads for publications.]
+
* '''perl-Geo-IP (epel)''' - Allows IRstats2 to determine the location of views/downloads for publications. (RHEL/CentOS/Rocky Linux 8 only)
 +
* '''perl-GeoIP2 (@System and epel)''' - Allows IRstats2 to determine the location of views/downloads for publications. (RHEL/CentOS/Rocky Linux 9+)
 
* '''perl-Spreadsheet-WriteExcel (epel)''' - To allow Multiline Excel export.
 
* '''perl-Spreadsheet-WriteExcel (epel)''' - To allow Multiline Excel export.
 
* '''CPAN module Text::Refer''' - Required for EndNote import.
 
* '''CPAN module Text::Refer''' - Required for EndNote import.
* '''CPAN module TeX::Encode''' Required for BibTex export.
+
* '''CPAN module TeX::Encode''' - Required for BibTex export needed for publications flavour.
 
* '''perl-Image-ExifTool (epel)''' - Sometimes needed to support generation of thumbnails for uploaded documents/images.
 
* '''perl-Image-ExifTool (epel)''' - Sometimes needed to support generation of thumbnails for uploaded documents/images.
 
* '''perl-LWP-Protocol-https (base)''' - Needed by DataCite plugin to register repository DOIs.
 
* '''perl-LWP-Protocol-https (base)''' - Needed by DataCite plugin to register repository DOIs.
  
== Next steps ==
+
== Operating System Version Specific Requirements ==
 +
 
 +
=== RHEL / CentOS / Rocky 8 ===
 +
{{:Issues with installing EPrints on RHEL / CentOS / Rocky 8}}
  
Configure eprints per [[Getting_Started_with_EPrints_3]].
+
=== RHEL / CentOS / Rocky 9 ===
 +
{{:Issues with installing EPrints on RHEL / CentOS / Rocky 9}}
  
 +
=== RHEL / CentOS / Rocky 10 ===
 +
{{:Issues with installing EPrints on RHEL / CentOS / Rocky 10}}
  
 
== Troubleshooting ==
 
== Troubleshooting ==
 
+
* If setup is successful but then you cannot access EPrints through your web browser this is often due to firewalld being enabled by default on recent versions of RHEL, Fedora and CentOSIf firewalld is running either disable it (<tt>systemctl disable --now firewalld</tt>) or [https://docs.rackspace.com/support/how-to/allow-web-traffic-in-a-firewalld-software-firewall/ configure it to allow HTTP/HTTPS traffic].
=== Starting database and webserver at boot ===
+
* If you are running a version of EPrints below 3.4.6 you cannot run Apache in MPM event mode and you need to use MPM prefork insteadThis is due to Perl's <tt>XML::LibXSLT</tt> being initiated at the wrong time leading earlier version of EPrints to cause Apache (httpd) to segfault when started.  If you are running an earlier version and want to run Apache in MPM event mode, you can uninstall <tt>XML::LibXSLT</tt> either as the RPM perl-XML-LibXSLT or possible from CPAN using <code>cpanm --uninstall XML::LibXSLT</code>.
As with any database-backed web application, if you have not already done so you should ensure the database and webserver start up automatically after bootingFor Redhat  and Fedora use the following commands as root:
+
* If you are having problems uploading files or similar functional issues, this may be due to SELinux being enabled. [[EPrints and SELinux|See advice for enabling SELinux with EPrints]].
 
+
* If you are having trouble getting additional subdomains beyond username.eprints-hosting.org working, then it could be you need wildcards enabled on the DNS records to facilitate the likes of somethingcoolhere.username.eprints-hosting.org urls.
chkconfig httpd on
 
chkconfig mysqld on
 
 
 
For CentOS it will instead be:
 
 
 
chkconfig httpd on
 
chkconfig mariadb on
 
 
 
 
 
=== Failed to parse XML file ===
 
When installing EPrints on RHEL6 (may apply to other versions), If you get the error:
 
Failed to parse XML file:
 
/usr/share/eprints/lib/lang/en/phrases/system.xml: Entity: line 396: parser error : Entity 'nbsp' not defined age or title page. If there are more...
 
 
 
Run
 
sed -i 's/'''&'''nbsp;/ /g' /usr/share/eprints/lib/lang/en/phrases/system.xml
 
 
 
then navigate to the root of your EPrints install (/opt/eprints or /usr/share/eprints) and run
 
bin/generate_views *repository_id*
 
bin/epadmin reload *repository_id*
 
 
 
 
 
=== Upgrade from previous 3.3 ===
 
After a upgrading from previous 3.3, your existing repository's database may need updating.
 
bin/epadmin update [archive_id]
 
 
 
 
 
=== Apache in eprints group ===
 
 
 
If you choose not to run apache as the eprints user (for example you have another application on the same server) you will need to change https's groups and update the permissions on some directories
 
 
 
Add apache to eprints's group.
 
  usermod apache -G eprints
 
 
 
One way to run httpd as 'apache' but still access eprints files is to add httpd to the eprints group.
 
chmod 770 /usr/share/eprints/var
 
  chmod 770 /usr/share/eprints/lib/epm/
 
 
 
Be aware that other directories will need to be writable by eprints user group/apache ; those depend on whether you will be using eprints bazaar.
 
 
 
=== Using SELinux ===
 
If you're using SELinux on your server you will need to give Apache read/write access to the documents directory for all repositories you create and the eprints var folder (indexer log, ticker files):
 
 
 
chcon -R -h -t httpd_sys_script_rw_t [eprintspath]/archives/[repoid]/documents/
 
chcon -R -h -t httpd_sys_script_rw_t [eprintspath]/var/
 
chcon -R -h -t httpd_sys_script_rw_t /usr/share/eprints/lib/
 
 
 
You may also need to tell SELinux to allow Apache to talk on the network, if you intend to run your database on a separate server.
 
 
 
setsebool -P httpd_can_network_connect=1
 
 
 
=== Using firewalld ===
 
Typically RHEL/Fedora/CentOS run a firewall that will block remote connections to you webserver. To overcome this run the following commands as root:
 
 
 
firewall-cmd --permanent --add-service=http
 
service firewalld restart
 
 
 
You will need to same https if you intend to set that up as well. Otherwise, you can just disable the firewall altogether if you have an institutional level firewall:
 
 
 
service firewalld stop
 
chkconfig firewalld off
 

Latest revision as of 15:34, 4 August 2025


Requirements

  • Red Hat Enterprise (RHEL) / CentOS / Rocky Linux 8 or 9. (EPrints can be installed on RHEL / CentOS / Rocky Linux 10 but there are currently a number of issues, some which should be resolved in later version of these Linux OSs).

Prerequisites

  • Pre-install and enable the EPEL DNF repository.
    • dnf install epel-release
  • Pre-install and enable the CodeReady Builder DNF repository.
    • RHEL
      subscription-manager repos --enable "codeready-builder-for-rhel-$(releasever)-$(arch)-rpms"
    • CentOS Stream / Rocky Linux 8
      dnf config-manager --set-enabled powertools
    • CentOS Stream / Rocky Linux 9 and 10
      dnf config-manager --set-enabled crb
  • Pre-install MySQL server and client and make sure the former is enabled and running.
    • RHEL / Fedora:
      dnf install mysql-server mysql mysql-devel
       systemctl enable --now mysqld
    • CentOS / Rocky Linux:
      dnf install mariadb-server mariadb mariadb-devel
       systemctl enable --now mariadb
  • From the MySQL command prompt, pre-configure an eprints user with password for MariaDB/MySQL, which can be used as the Database super user when creating the database for an archive. (Be sure to change the password from "changeme"):
    CREATE USER 'eprints'@'localhost' IDENTIFIED by 'changeme';
     GRANT ALL PRIVILEGES ON *.* TO 'eprints'@'localhost' WITH GRANT OPTION;
  • As root, from a command prompt add the eprints user:
    adduser eprints

Dependencies

The following RPMs need to be installed using the dnf command:

dnf install libxml2 libxslt httpd mod_perl perl-Apache-DBI perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL \
    perl-Time-HiRes perl-CGI perl-Digest-MD5 perl-Digest-SHA perl-Digest-SHA1 perl-JSON perl-XML-LibXML \
    perl-XML-LibXSLT perl-XML-SAX perl-MIME-Lite perl-Text-Unidecode perl-JSON perl-Unicode-Collate \
    perl-LWP-Protocol-https perl-IO-String tetex-latex wget gzip tar ImageMagick poppler-utils \
    chkconfig unzip cpan python3-html2text expat-devel libxslt-devel

N.B. If you are running RHEL / CentOS / Rocky Linux 10, perl-Apache-DBI is no longer available and will need to be installed with CPAN and python3-html2text will not be available until RHEL / CentOS / Rocky Linux 10.1. You should exclude these when running the dnf command above. (See Operating System Version Specific Requirements for RHEL / CentOS / Rocky Linux 10 below for more details).

Installing EPrints 3.4.6 from Source

Ideally you will install from source from EPrints Core Git repository, which includes the core codebase and the publications flavour. However, you may choose to download tarballs of the EPrints core codebase and publications flavour from files.eprints.org as an alternative means of installation.

From GitHub

Clone the Git repository from GitHub to /opt/ and set the eprints user as the owner. It is probably best to checkout the latest release rather than using HEAD, which may have known issues:

dnf install git
mkdir /opt/eprints3
chown eprints:eprints /opt/eprints3
chmod 2775 /opt/eprints3
su eprints
git clone https://github.com/eprints/eprints3.4.git /opt/eprints3
cd /opt/eprints3/
git checkout tags/v3.4.6

From files.eprints.org

Download and unpack the core codebase tarball for files.eprints.org.

cd /tmp/
wget https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz
tar -xzvf eprints-3.4.6.tar.gz

Then move in the source code into place:

mv eprints-3.4.6 /opt/eprints3
chmod 2775 /opt/eprints3
chown -R eprints:eprints /opt/eprints3

If you want a publications flavoured repository, then you will also need to download, unpack and move that into the appropriate location:

wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz
tar -xzvf eprints-3.4.6-flavours.tar.gz
mv eprints-3.4.6/flavours/pub_lib /opt/eprints3/flavours
chmod -R g+w /opt/eprints3/flavours/pub_lib
chown -R eprints:eprints /opt/eprints3/flavours/pub_lib

Configuration

EPrints is now fully installed at /opt/eprints3. However, you will not yet have a running archive. Follow the Getting Started with EPrints 3 instructions to set this up.

Post-configuration

Add the eprints user to the apache group and vice-versa.

usermod -aG apache eprints
usermod -aG eprints apache

Finally, restart Apache:

 service httpd restart

SELinux

There is a fair chance your operating system will have SELinux enabled. If so, follow the advice at EPrints and SELinux for how to let EPrints do what it needs to do through SELinux. Otherwise, you could disable SELinux with the following:

setenforce 0

However, that will only disable it until the next reboot. You should also edit /etc/selinux/config and make sure the SELINUX=enforcing is set to:

SELINUX=disabled

Non-critical Dependencies

Some of EPrints non-core functionality may not work out of the box as these dependencies are not included as part of the installation process. Here is a list of known additional packages (and the DNF repositories in which they can be found) or CPAN modules than can be installed. The latter should be installed using the cpan command as the root user.

  • perl-Geo-IP (epel) - Allows IRstats2 to determine the location of views/downloads for publications. (RHEL/CentOS/Rocky Linux 8 only)
  • perl-GeoIP2 (@System and epel) - Allows IRstats2 to determine the location of views/downloads for publications. (RHEL/CentOS/Rocky Linux 9+)
  • perl-Spreadsheet-WriteExcel (epel) - To allow Multiline Excel export.
  • CPAN module Text::Refer - Required for EndNote import.
  • CPAN module TeX::Encode - Required for BibTex export needed for publications flavour.
  • perl-Image-ExifTool (epel) - Sometimes needed to support generation of thumbnails for uploaded documents/images.
  • perl-LWP-Protocol-https (base) - Needed by DataCite plugin to register repository DOIs.

Operating System Version Specific Requirements

RHEL / CentOS / Rocky 8

No known issues if running at least EPrints 3.4.6.

RHEL / CentOS / Rocky 9

No known issues if running at least EPrints 3.4.6.

RHEL / CentOS / Rocky 10

No other known issues beyond those below if running at least EPrints 3.4.6.

mod_perl cannot handle dir_perms parameter

By default EPrints is configures its dir_perms parameter to 02775 in perl_lib/EPrints/SystemSettings.pm and lib/syscfg.d/core.pl. This is used when creating a new directory with EPrints::System::mkdir, which call CORE::mkdir. Previously this core Perl function has ignored the mask for the setuid/setgid/sticky bit so it did not matter^ if dir_perms was 02775 or 0775 but the version of mod_perl used on RHEL-based Linux 10 now gets confused by this and will fail to create directory. To fix this you will need to modify lib/syscfg.d/core.pl and set $c->{dir_perms} as follows:

$c->{dir_perms} = '0775';

In addition, to make sure that the setgid bit gets set the same as it would before, it is advised you make sure all the sub-directories in your archive have the setgid bit set:

find EPRINTS_PATH/archives/ARCHIVE_ID -type d -exec chmod g+s {} \;

Technically, it should not be necessary to do this to all directories, it might be sufficient to do this only to the html and documents directories, as well as their sub-directories but there should not be any problem updating all the archive's directories.

^This is why EPrints::System::mkdir would subsequently called CORE::chmod to update setuid/setgid/sticky bits on the newly created directories.

perl-Apache-DBI not available through DNF package manager

RHEL / CentOS / Rocky 10 does not include perl-Apache-DBI in their DNF package managers. Therefore, you will need to install afterwards using cpan:

cpan Apache::DBI

python3-html2text not available in EPEL until 10.1

The EPEL DNF repository does not include python3-html2text until RHEL / CentOS / Rocky 10.1 expected sometime in November 2025. If you need to upload HTML files and have them indexed in your EPrints repository it is advised you install to an early version or RHEL or one of its derivatives for now until a suitable solution to this issue can be found.

Troubleshooting

  • If setup is successful but then you cannot access EPrints through your web browser this is often due to firewalld being enabled by default on recent versions of RHEL, Fedora and CentOS. If firewalld is running either disable it (systemctl disable --now firewalld) or configure it to allow HTTP/HTTPS traffic.
  • If you are running a version of EPrints below 3.4.6 you cannot run Apache in MPM event mode and you need to use MPM prefork instead. This is due to Perl's XML::LibXSLT being initiated at the wrong time leading earlier version of EPrints to cause Apache (httpd) to segfault when started. If you are running an earlier version and want to run Apache in MPM event mode, you can uninstall XML::LibXSLT either as the RPM perl-XML-LibXSLT or possible from CPAN using cpanm --uninstall XML::LibXSLT.
  • If you are having problems uploading files or similar functional issues, this may be due to SELinux being enabled. See advice for enabling SELinux with EPrints.
  • If you are having trouble getting additional subdomains beyond username.eprints-hosting.org working, then it could be you need wildcards enabled on the DNS records to facilitate the likes of somethingcoolhere.username.eprints-hosting.org urls.