Відмінності між версіями «Встановлення DSpace на ОС Debian»

(Налаштування PostgreSQL)
(Збільшення загальної пам’яті ядра для клієнтських підключень сервера PostgreSQL)
Рядок 118: Рядок 118:
  
 
  sudo sysctl -p
 
  sudo sysctl -p
 +
 +
=== Налаштування прав доступу до PostgreSQL на основі хост-сервера  ===
 +
 +
Див. посилання в офіційній документації щодо файлу "pg_hba.conf".
 +
 +
* http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html
 +
* https://wiki.duraspace.org/display/DSDOC4x/Installing+DSpace#InstallingDSpace-RelationalDatabase:%28PostgreSQLorOracle%29
 +
 +
Змінюємо користувацькі привілеї до БД на лише "trust".
 +
 +
sudo sed -i 's/ident/trust/' /etc/postgresql/9.4/main/pg_hba.conf
 +
sudo sed -i 's/md5/trust/' /etc/postgresql/9.4/main/pg_hba.conf
 +
sudo sed -i 's/peer/trust/' /etc/postgresql/9.4/main/pg_hba.conf
 +
 +
Дивіться приклад нижче.
 +
 +
# DO NOT DISABLE!
 +
# If you change this first entry you will need to make sure that the
 +
# database superuser can access the database using some other method.
 +
# Noninteractive access to all databases is required during automatic
 +
# maintenance (custom daily cronjobs, replication, and similar tasks).
 +
#
 +
# Database administrative login by Unix domain socket
 +
local  all            postgres                                trust
 +
 +
# TYPE  DATABASE        USER            ADDRESS                METHOD
 +
 +
# "local" is for Unix domain socket connections only
 +
local  all            all                                    trust
 +
# IPv4 local connections:
 +
host    all            all            127.0.0.1/32            trust
 +
# IPv6 local connections:
 +
host    all            all            ::1/128                trust
 +
# Allow replication connections from localhost, by a user with the
 +
# replication privilege.
 +
#local  replication    postgres                                trust
 +
#host    replication    postgres        127.0.0.1/32            trust
 +
#host    replication    postgres        ::1/128                trust
 +
 +
Перезапуск сервера БД.
 +
 +
sudo service postgresql restart
  
 
= Встановлення DSpace 1.8.1 на ОС Debian 6 (ЗАСТАРІЛО) =  
 
= Встановлення DSpace 1.8.1 на ОС Debian 6 (ЗАСТАРІЛО) =  

Версія за 16:18, 7 квітня 2016

Встановлення DSpace на ОС Debian

Зміст

Встановлення DSpace 5.5 на ОС Debian GNU/Linux 8 Jessie

Джерела

Необхідне програмне забезпечення

З офіційної документації [1]:

  • Oracle Java JDK or OpenJDK
  • Java 8 update 20 or later, or Java 7 update 55 or later. DS-2653 - Java 8 Support for DSpace Accepted
  • Apache Maven 3.0.5+ (Java build tool)
  • Apache Ant 1.8 or later (Java build tool)
  • PostgreSQL 9.0 or later. Oracle 10g or later.
  • Servlet Engine (Apache Tomcat 7 (7.0.30 or above) or later, Jetty, Caucho Resin or equivalent). Для Tomcat 8 ймовірно потрібні деякі налаштування.
  • Perl (only required for [dspace]/bin/dspace-info.pl)

Присутнє у Debian GNU/Linux 8 Jessie та бекпортах:

  • openjdk-7-jdk (7u95-2.6.4-1~deb8u1 and others)
  • openjdk-8-jdk (8u72-b15-1~bpo8+1)
  • tomcat7 (7.0.56-3+deb8u1), (7.0.68-1~bpo8+1)
  • tomcat8 (8.0.14-1+deb8u1), (8.0.32-1~bpo8+1)
  • maven (3.0.5-3)
  • ant (1.9.4-3)
  • postgresql (9.4+165+deb8u1)

Розглядаємо варіант встановлення openjdk-8-jdk+tomcat8.

Підключення додаткових репозитаріїв

У файл /etc/apt/sources.list додаємо (перевіряємо навність) наступні джерела пакунків

deb http://ftp.ua.debian.org/debian/ jessie main contrib non-free..
deb-src http://ftp.ua.debian.org/debian/ jessie main contrib non-free..
deb http://security.debian.org/ jessie/updates contrib main..
deb-src http://security.debian.org/ jessie/updates contrib main..
deb http://ftp.ua.debian.org/debian/ jessie-updates contrib main non-free.
deb-src http://ftp.ua.debian.org/debian/ jessie-updates contrib main non-free.

(чи інщі дзеркала стабільної версії)

deb http://ftp.ua.debian.org/debian/ jessie-backports main contrib non-free
deb-src http://ftp.ua.debian.org/debian/ jessie-backports main contrib non-free

Оновлюємо перелік пакунків та систему

apt-get update
apt-get upgrade

Встановлення Java OpenJDK 8

apt-get purge openjdk-7-*
apt-get install  openjdk-8-jdk

та вибрати саме цей варіант (OpenJDK 8) як основний:

update-alternatives --config java

Встановлення Tomcat, Maven, Ant

apt-get install tomcat8
apt-get install maven
apt-get install ant

Встановлення БД postgresql

sudo apt-get install postgresql postgresql-contrib libpg-java

Налаштування PostgreSQL

У файлі /etc/postgresql/9.4/main/postgresql.conf розкоментувати рядок

listen_addresses = 'localhost'

Збільшення загальної пам’яті ядра для клієнтських підключень сервера PostgreSQL

Редагуємо файл "/etc/sysctl.conf":

sudo mcedit /etc/sysctl.conf

Вставити наприкінці файлу наступне:

# For PostgreSQL server client connections
kernel.shmmax = 500000000
kernel.shmall = 500000000

Див. також: http://www.postgresql.org/docs/9.3/static/kernel-resources.html

Також виконати:

sudo sysctl -p

Налаштування прав доступу до PostgreSQL на основі хост-сервера

Див. посилання в офіційній документації щодо файлу "pg_hba.conf".

Змінюємо користувацькі привілеї до БД на лише "trust".

sudo sed -i 's/ident/trust/' /etc/postgresql/9.4/main/pg_hba.conf
sudo sed -i 's/md5/trust/' /etc/postgresql/9.4/main/pg_hba.conf
sudo sed -i 's/peer/trust/' /etc/postgresql/9.4/main/pg_hba.conf

Дивіться приклад нижче.

# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
  1. Noninteractive access to all databases is required during automatic
  2. maintenance (custom daily cronjobs, replication, and similar tasks).
  3. Database administrative login by Unix domain socket

local all postgres trust

  1. TYPE DATABASE USER ADDRESS METHOD
  1. "local" is for Unix domain socket connections only

local all all trust

  1. IPv4 local connections:

host all all 127.0.0.1/32 trust

  1. IPv6 local connections:

host all all  ::1/128 trust

  1. Allow replication connections from localhost, by a user with the
  2. replication privilege.
  3. local replication postgres trust
  4. host replication postgres 127.0.0.1/32 trust
  5. host replication postgres  ::1/128 trust

Перезапуск сервера БД.

sudo service postgresql restart

Встановлення DSpace 1.8.1 на ОС Debian 6 (ЗАСТАРІЛО)

Встановлення ОС Debian GNU/Linux 6 Squeeze

Детальніше: Встановлення ОС Debian Linux.

Sun Java 6 JDK

sudo apt-get install sun-java6-jdk

— прийняти ліцензію

та вибрати саме цей варіант як основний:

sudo update-alternatives --config java

вивід:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number: 2

Веб-сервер Tomcat та Maven

sudo apt-get install tomcat6 maven2

(„ant“ включено до maven2)

Postgresql

sudo apt-get install postgresql

Налаштування локального доступу до БД Postgresql. Редагуємо файл pg_hba.conf:

sudo mc -e /etc/postgresql/9.1/main/pg_hba.conf

Знаходимо наступні рядки:

закоментовуємо —

# Database administrative login by UNIX sockets
# local   all         postgres                          ident

та додаємо —

local all postgres trust

закоментовуємо —

# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all all ident

та додаємо —

local all all trust

Перезапустити Postgresql, щоб задіяти зміни:

sudo /etc/init.d/postgresql restart

Веб-сервер Apache

sudo apt-get install apache2

Оскільки 80 буде зайнятий Tomcat-ом, переналаштовуємо Apache на 8888.

Редагувати /etc/apache2/ports.conf:

#NameVirtualHost *:80
#Listen 80
NameVirtualHost *:8888
Listen 8888

та /etc/apache2/sites-enabled/000-default

<VirtualHost *:8080>
…

Перезапуск Apache:

sudo /etc/init.d/apache2 restart

phppgadmin

Адмін-застосунок для доступу до БД Postgres

sudo apt-get install phppgadmin

Редагуємо /etc/phppgadmin/apache.conf, щоб додати доступ з інших IP:

allow from 10.246.28.27/255.255.255.0 ::1/128
allow from 192.168.151.246/255.255.255.0 ::1/128

(allow from 127.0.0.0/255.0.0.0 ::1/128 теж залишити)

Перезапуск веб-сервера Apache:

sudo /etc/init.d/apache2 restart

Перевіряємо доступ з вибраних IP

http://dspace.tntu.edu.ua:8888/phppgadmin/

Користувач „dspace“

sudo useradd -m dspace

(-m також створює домашню теку)

Додати до „sudoers“ (Встановлення ОС Debian Linux#Sudo).

Надалі всі дії проводити від користувача „dspace“:

su dspace

БД „dspace“

Створення користувача „dspace“ (користувач БД)

sudo createuser -U postgres -d -A -P dspace

ввести пароль 2 рази і „yes“

Створення чистої БД „dspace“ для користувача „dspace“:

sudo createdb -U dspace -E UNICODE dspace

Звантаження DSpace 1.8.1

Від користувача „dspace“

su dspace

створити теку

mkdir source;cd source

та звантажити джерельні тексти

wget http://sourceforge.net/projects/dspace/files/DSpace%20Stable/1.8.1/dspace-1.8.1-src-release.tar.bz2/download -O dspace-1.8.1-src-release.tar.bz2

й розпакувати

tar -xvjf dspace-1.8.1-src-release.tar.bz2

Налаштування „dspace.cfg“

Мінімальне початкове налаштування.

cd dspace-1.8.1-src-release/dspace/config/
mc -e dspace.cfg

Наведені лише зміни (дещо має бути закоментовано):

dspace.hostname = elartu.tntu.edu.ua
dspace.baseUrl = http://elartu.tntu.edu.ua

dspace.name = ELARTU

#db.name = ${default.db.name}
db.name = postgres

#db.url = ${default.db.url} 
db.url = jdbc:postgresql://localhost:5432/dspace

#db.driver = ${default.db.driver}
db.driver = org.postgresql.Driver

#db.username = ${default.db.username}
#db.password = ${default.db.password}
db.username = dspace
db.password = abrakadabra

mail.server = smtp.tu.edu.te.ua
mail.from.address = serhij dubyk@ts tu.edu.ua
feedback.recipient = serhij dubyk@ts tu.edu.ua
mail.admin = serhij dubyk@ts tu.edu.ua
alert.recipient = serhij dubyk@ts tu.edu.ua
registration.notify = serhij dubyk@ts tu.edu.ua
mail.charset = UTF8

Тека /dspace

sudo mkdir /dspace
sudo chown dspace /dspace

Побудова maven-пакунка

cd /home/dspace/source/dspace-1.8.1-src-release/dspace
mvn package

При цьому звантажуються файли *.jar та *.pom, а у виводі можна побачити щось на кшталт наступного:

… 
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-repository-builder/1.0-alpha-2/maven-repository-builder-1.0-alpha-2.jar
[INFO] [assembly:directory-single {execution: default}]
[INFO] Reading assembly descriptor: src/assemble/assembly.xml
[WARNING] Cannot include project artifact: org.dspace:dspace:pom:1.8.1; it doesn't have an associated file or directory.
[WARNING] The following patterns were never triggered in this artifact exclusion filter:
[WARNING] NOTE: Currently, inclusion of module dependencies may produce unpredictable results if a version conflict occurs.
[INFO] Copying files to /home/dspace/source/dspace-1.8.1-src-release/dspace/target/dspace-1.8.1-build
[INFO] 
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] DSpace Addon Modules .................................. SUCCESS [1:49.420s]
[INFO] DSpace XML-UI (Manakin) :: Web Application ............ SUCCESS [3:01.210s]
[INFO] DSpace LNI :: Web Application ......................... SUCCESS [12.231s]
[INFO] DSpace OAI :: Web Application ......................... SUCCESS [6.012s]
[INFO] DSpace JSP-UI :: Web Application ...................... SUCCESS [13.066s]
[INFO] DSpace SWORD :: Web Application ....................... SUCCESS [3.177s]
[INFO] DSpace SWORDv2 :: Web Application ..................... SUCCESS [34.394s]
[INFO] DSpace SOLR :: Web Application ........................ SUCCESS [18.529s]
[INFO] DSpace Assembly and Configuration ..................... SUCCESS [56.354s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 minutes 15 seconds
[INFO] Finished at: Fri Feb 17 14:02:02 EET 2012
[INFO] Final Memory: 61M/205M
[INFO] ------------------------------------------------------------------------

Встановлення

cd /home/dspace/source/dspace-1.8.1-src-release/dspace/target/dspace-1.8.1-build
ant fresh_install

Частина виводу:

    [echo] ====================================================================
    [echo]  The DSpace code has been installed, and the database initialized.
    [echo] 
    [echo]  To complete installation, you should do the following:
    [echo] 
    [echo]  * Setup your Web servlet container (e.g. Tomcat) to look for your
    [echo]    DSpace web applications in: /dspace/webapps/
    [echo] 
    [echo]    OR, copy any web applications from /dspace/webapps/ to
    [echo]    the appropriate place for your servlet container.
    [echo]    (e.g. '$CATALINA_HOME/webapps' for Tomcat)
    [echo] 
    [echo]  * Make an initial administrator account (an e-person) in DSpace:
    [echo] 
    [echo]    /dspace/bin/dspace create-administrator
    [echo] 
    [echo]  * Start up your servlet container (Tomcat etc.)
    [echo] 
    [echo]  You should then be able to access your DSpace's 'home page':
    [echo] 
    [echo]    http://elartu.tntu.edu.ua/xmlui
    [echo] 
    [echo]  You should also be able to access the administrator UI:
    [echo] 
    [echo]    http://elartu.tntu.edu.ua/xmlui/dspace-admin
    [echo] ====================================================================
    [echo]         

BUILD SUCCESSFUL
Total time: 43 seconds

Підключення DSpace-івських webapps до Tomcat

Найпростіший спосіб, що рекомендують, це зкопіювати:

cp -R /dspace/webapps/* /var/lib/tomcat6/webapps/

Однак було вибрано інший спосіб через редагування

sudo mc -e /var/lib/tomcat6/conf/server.xml

Зокрема необхідно у розділ „<Service name="Catalina">“ додати

<Connector port="80".
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
           enableLookups="false" redirectPort="8443" acceptCount="100"
           connectionTimeout="20000" disableUploadTimeout="true"

змінити localhost на elartu.tntu.edu.ua

<Engine name="Catalina" defaultHost="elartu.tntu.edu.ua">
<Host name="elartu.tntu.edu.ua"  appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">

та перед закриваючою ознакою „</Host>“ додати наступне

<Context path="/xmlui" docBase="/dspace/webapps/xmlui" allowLinking="true"/>
<Context path="/sword" docBase="/dspace/webapps/sword" allowLinking="true"/>
<Context path="/oai" docBase="/dspace/webapps/oai" allowLinking="true"/>
<Context path="" docBase="/dspace/webapps/jspui" allowLinking="true"/>
<Context path="/lni" docBase="/dspace/webapps/lni" allowLinking="true"/>
<Context path="/solr" docBase="/dspace/webapps/solr" allowLinking="true"/>

Перезапуск Tomcat

sudo /etc/init.d/tomcat6 restart

Дозвіл для Tomcat-у на порт 80

Система не пускає tomcat на привілейований порт (80), для цього редагуємо

sudo mc -e /etc/default/tomcat6

і включаємо AUTHBIND

# If you run Tomcat on port numbers that are all higher than 1023, then you
# do not need authbind.  It is used for binding Tomcat to lower port numbers.
# NOTE: authbind works only with IPv4.  Do not enable it when using IPv6.
# (yes/no, default: no)
AUTHBIND=yes

Обліковий запис адміна DSpace

/dspace/bin/dspace create-administrator

Вивід:

Creating an initial administrator account
E-mail address: serhi jdubyk@ts tu.edu.ua
First name: Serhij
Last name: Dubyk
WARNING: Password will appear on-screen.
Password: ************
Again to confirm: *********
Is the above data correct? (y or n): y
Administrator account created

Права на теки „upload“ і „assetstore“

sudo chown -R tomcat6 /dspace/upload
sudo chown -R tomcat6 /dspace/assetstore

Встановлення завершено

УРА!!!

Можна перевірити із середини сервера:

lynx http://localhost
lynx http://localhost/xmlui

Налаштування

Щодо додаткових налаштувань та адаптацій див. тут: Налаштування DSpace.

Див. також

Посилання