This guide will show you how to install a new Fedora Repository using the installer, or from source code. If you are upgrading from a previous release, please see Upgrading from 2.x or Upgrading from 3.x. If you have never installed Fedora before, please start with some background considerations. On this page: PrerequisitesDownload Fedora 3.6.0
Java SE Development Kit (JDK) 6. Database Application Server Maven 2 Installation StepsPrepare Environment VariablesThe following environment variables may need to be set while installing or running Fedora, or executing Fedora command line utilities. JAVA_HOME If set, tomcat and fedora command line utilities will use the specified java vm. Otherwise, all utilities will attempt to use the java version available by default within the user's PATH. This should point to the base directory of your Java installation. On Windows systems, this might be FEDORA_HOME This is the directory where Fedora will be installed, for example,
PATH If you will be building from source, Maven should also also be on your path. JAVA_OPTS CATALINA_HOME Command line applications currently load libraries from the exploded web application in DISPLAY (Unix-only) Prepare DatabaseFedora is designed to be RDBMS-independent. Fedora has been tested with Derby, MySQL, Oracle, PostgreSQL and Microsoft SQL Server. The embedded version of Derby included with the installer is provided as a convenience; Derby is not recommended for use in production repositories. If you choose to use any database other than the embedded Derby provided by the Fedora Installer, you must install that database first. Follow the instructions below for the RDBMS of your choice in order to create the user and tables required by Fedora. MySQLPlease note that the MySQL JDBC driver provided by the installer requires MySQL v3.23.x or higher. The MySQL commands listed below can be run within the mysql program, which may be invoked as follows: mysql -u root -p Create the database. For example, to create a database named "fedora3", enter: CREATE DATABASE fedora3; Set username, password and permissions for the database. For example, to set the permissions for user fedoraAdmin with password fedoraAdmin on database "fedora3", enter: GRANT ALL ON fedora3.* TO fedoraAdmin@localhost IDENTIFIED BY 'fedoraAdmin'; GRANT ALL ON fedora3.* TO fedoraAdmin@'%' IDENTIFIED BY 'fedoraAdmin'; MySQL 4.1.x users must also specify the default character set for the Fedora database as "utf8" and the default collation as "utf8_bin". For example, to set the default character set and collation on a database named "fedora3", enter: ALTER DATABASE fedora3 DEFAULT CHARACTER SET utf8; ALTER DATABASE fedora3 DEFAULT COLLATE utf8_bin; OracleTo prepare Oracle for use with Fedora, the following steps should be taken by an administrative user. First, using the Database Configuration Assistant, ensure that the database you'll be using is created with the UTF8 charset. Next, you'll need to create a Fedora tablespace and user in the database. Assuming the administrative user is sys and the SID is fedora3, log in using SQL*Plus using the following command: sqlplus sys/PASSWORD@fedora3 as sysdba To create a tablespace named "fedora_tblspace" with data in CREATE TABLESPACE fedora_tblspace DATAFILE '/var/lib/oracle/fedora_tblspace.dat' SIZE 1024M REUSE AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED SEGMENT SPACE MANAGEMENT AUTO; To create a user "fedoraAdmin" with password "fedoraAdmin", using the "fedora_tblspace", enter the following: CREATE USER fedoraAdmin IDENTIFIED BY fedoraAdmin DEFAULT TABLESPACE fedora_tblspace; Using the GRANT command, make sure the user has permission to connect, create, alter, and drop tables sequences, triggers, and indexes in this tablespaces. For example: GRANT ALL PRIVILEGES TO fedoraAdmin; Due to distribution license restrictions, the Fedora Installer does not include the Oracle JDBC driver. Oracle JDBC drivers are available from http://technet.oracle.com/software/tech/java/sqlj_jdbc/content.html. The installer will prompt you for the location of the driver on your filesystem. Also, if you run Fedora in Java 6 as is required by Fedora 3.4, you will need an Oracle Java 6 jdbc jar such as PostgreSQLPlease consult the documentation at http://www.postgresql.org/docs/ for more detailed information about configuring PostgreSQL. Launch the PostgreSQL interactive terminal, psql -d postgres To create a user "fedoraAdmin"" with password "fedoraAdmin" and database named "fedora3", enter the following: CREATE ROLE "fedoraAdmin" LOGIN PASSWORD 'fedoraAdmin'; CREATE DATABASE "fedora3" WITH ENCODING='UTF8' OWNER="fedoraAdmin"; Microsoft SQL ServerDavid Handy has contributed a guide for interfacing Fedora with MS SQL Server Other DatabasesTo use a database other than Derby, McKoi, MySQL, Oracle, PostgreSQL and Microsoft SQL Server, the database must support common SQL-92 syntax and you must have a JDBC version 3 driver available. The JDBC driver will need to be installed manually. For most containers, the driver may be placed in the Fedora webapp's Upon startup, Fedora checks the database for all required tables. If the tables do not exist, Fedora will create them. Because table creation is much less standardized task across RDBMSs than SQL queries you must do one of the following:
Run InstallerThe Fedora Installer provides three installation options: quick, custom, and client. To start the installer, change to the directory where you downloaded the installer and at a command prompt, enter: java -jar fcrepo-installer-3.6.jar Fedora can also be installed in non-interactive mode by specifying an install.properties file as an argument to the installer. After installing interactively, you will find an install.properties file in your $FEDORA_HOME/install/ directory. You can use this file as a template for future, non-interactive installations. *Take care if you are using an install.properties file from an earlier release as the file may not contain some properties defined in the later release, default settings will be used in this case, which may or may not be appropriate for your installation. Please ensure that the user account that is running the installer has sufficient permissions to write to the directories where Fedora will be installed (if deploying to an existing Tomcat installation, this includes permissions to the Tomcat directory). Installer created files will usually be owned by the user running the installer. Consequently, for example, after installation users of the Fedora Admin client will need write permissions to the log files defined by Quick InstallThe quick option is designed to get Fedora up and running as quickly as possible, with a minimum of advanced options. The quick install will automatically install Tomcat pre-loaded with the Fedora Repository and the Derby database. Neither SSL support nor XACML policy enforcement is enabled by the quick install. Custom InstallThe custom option provides the most flexibility in configuring an installation. Options include the choice of servlet container, database, the host, ports and application server context Fedora will be running on, enabling optional services, as well as security options including SSL, XACML policy enforcement, and FeSL. Servlet Container The installer will automatically configure and deploy to Tomcat 6.0.x and 7.0.x servlet containers. However, if an existing Tomcat installation (as opposed to the Tomcat bundled with the installer) was selected, the installer will not overwrite your existing Other servlet containers will require manual deployment of the war files located at Application Server Context The installer provides the option to enter an application server context name under which Fedora will be deployed. The context name defaults to Fedora (resulting in http[s]://host:port/fedora), however any other valid context name can be supplied. The installer will name the resulting war file according to the supplied context name (defaults to SSL Configuring SSL support for Fedora's API-M interface is an optional feature. It strongly recommended for production environments if Fedora is exposed to unsecured application and users. However, if your installation is within a managed data center with firewall services, you may choose to provide SSL using a software or hardware front-end instead. For example, a reverse proxy implemented using the Apache HTTP Server and hiding Fedora generally provides better SSL performance. If the Tomcat servlet container is selected, the installer will configure Please consult your servlet container's documentation for certificate generation and installation. (In particular, the example certificate provided by the installer for Tomcat should not be used in a production environment). If Fedora is configured to use SSL, the -Djavax.net.ssl.trustStore=$FEDORA_HOME/server/truststore -Djavax.net.ssl.trustStorePassword=tomcat FeSL The Fedora Security Layer is an experimental feature introduced from Fedora 3.3. FeSL consists of two separate components, which can be selected independently during the installation: FeSL Authentication and FeSL Authorisation. FeSL Authentication is now the default authentication mechanism, however Fesl Authorization is still considered experimental. FeSL Authorization is a replacement for the legacy XACML policy enforcement, so you should not enable XACML policy enforcement if you are going to use FeSL Authorization, as this will provide an alternative XACML policy enforcement engine. See FeSL Installation for more information about FeSL requirements that must be satisfied prior to installation. Resource Index If the Resource Index is enabled, Fedora will use Mulgara as its underlying triplestore, with full-text indexing disabled. Messaging Client InstallBoth the quick and custom options will install the Fedora client software in addition to the Fedora server. The client option, however, will install only the Fedora client software. Start FedoraIf you selected the quick install option, you will find Tomcat installed in $FEDORA_HOME/tomcat/bin/startup.sh (or for Windows) %FEDORA_HOME%\tomcat\bin\startup.bat If you selected the custom install option, ensure that your database server is running (unless you selected the included Derby option which will be automatically started when the first database connection is made). Installing the Demo ObjectsIf you just started Fedora for the first time, it's a good idea to check out the demonstration objects to get an idea of how Fedora works. See the Demonstration documentation for complete descriptions. NOTE: If, during a custom install, you entered values other than the defaults for fedoraServerHost (localhost) or fedoraServerPort (8080), you must run the demo object converter utility script to change the host and/or port in the demonstration object ingest files. The demonstration object conversion is only required if you are ingesting demonstration objects. If the demonstration objects are already ingested into the repository (e.g. from a previous installation), there is no need for conversion. The demonstration objects are shipped with references to "localhost:8080" and these references must reflect the new values of fedoraServerHost fedoraServerPort. Refer to the Command-line Utilities documentation for additional details on running the demo object converter. To ingest the demonstration objects, at a command prompt, enter: fedora-ingest-demos.sh [hostname] [port] [username] [password] [protocol] (or for Windows) fedora-ingest-demos.bat [hostname] [port] [username] [password] [protocol] For additional information on the fedora-ingest-demos command, see the documentation for the Client Command-line Utilities. Please note that the demonstration objects must be ingested before they can be discovered using the default search interface. Additional Configurationfedora.fcfgThe Fedora Server's configuration has historically been governed by the Fedora Server Configuration File, The Fedora server configuration file contains:
The configuration file has a simple schema. It starts with a server element, under which a series of parameter elements occur, followed by a series of module elements, followed by a series of The module elements are used to configure specific parts of Fedora. For instance, the module with the role attribute The There are many other parameters you can configure with Fedora. Refer to the Fedora Server Configuration File itself ( Spring configurationFor more details, see the full Spring Configuration page. Fedora configuration via spring is eventually planned to replace the existing Ar present, spring bean and property definitions can be found in:
LoggingFedora uses the Simple Logging Facade for Java (SLF4J) framework for logging with Logback as the actual logging implementation. For detailed information about using SLF4J, consult the SLF4J Manual: http://www.slf4j.org/manual.html, and for information about using Logback consult the Logback manual: http://logback.qos.ch/manual/index.html. The log configuration file is located at Normally, coarse-grained logs for Fedora are written to To change the level to DEBUG for all Fedora classes, change the <logger name="org.fcrepo" additivity="false" level="DEBUG"> To change the level to DEBUG for just one class, add the following lines: log4j.logger.fedora.server.utilities.SQLUtility = DEBUG, FEDORA log4j.additivity.fedora.server.utilities.SQLUtility = false To change the level to DEBUG for a whole package, add the following lines: <logger name="org.fcrepo.server.resourceIndex" additivity="false" level="DEBUG"> <appender-ref ref="FEDORA"/> |
1 Comment
Arash Samadi
Hi all,
I've tested the new snapshot (3.5.0) on Apache Tomcat 7.0.12. Everything seems to be fine and working, but as I've tried to ingest a new object through Web-GUI, though using "fedoraAdmin:fedoraAdmin", I couldn't accomplish the task. Same goes for "fedora-admin.sh". It won't let me log-in using default and unchanged useradmin and password.
After shutting down my Tomcat, I've tried to do the same with Apache Tomcat 6.0.32 and after starting the server, adding the *.war files (fop, fedora, fedora-demo,...) manualy everything works fine. Now, you may want to add this as a notice somewhere for those who want to use their own installed version of Apache Tomcat instead of the included one.
A.
Just thinking, because Tomcat 7.0.12 supports only Java 1.6+, that might the cause of this problem(?).