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

(Step 6.7: Setup the PostgreSQL server host based access permissions to the dspace database)
(Step 6.7: Setup the PostgreSQL server host based access permissions to the dspace database)
Рядок 214: Рядок 214:
  
 
We exit from PostgreSQL database server postgres user shell and return to the Ubuntu server dspace user shell.
 
We exit from PostgreSQL database server postgres user shell and return to the Ubuntu server dspace user shell.
 
exit
 
 
=== Step 6.7: Setup the PostgreSQL server host based access permissions to the dspace database ===
 
 
Type the following:
 
 
sudo -i
 
 
sudo echo "## DSpace DB user access">> /etc/postgresql/9.4/main/pg_hba.conf
 
 
sudo echo "host    dspace      dspace      127.0.0.1/32        md5" >> /etc/postgresql/9.4/main/pg_hba.conf
 
  
 
  exit
 
  exit

Версія за 15:42, 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.
# 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" та БД "dspace" PostgreSQL

Створюємо користувача БД (dspace) та БД DSpace (dspace)

sudo su postgres
createuser -U postgres -d -A -P dspace
createdb -U dspace -E UNICODE dspace
exit

Створюємо користувача "dspace" БД з з повними привілеями.

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

Відповідати "y" (так) на будь-які питання щодо створення користувача.

Step 6.5: Create the PostgreSQL "dspace" database

Enter the Ubuntu server postgres user shell.

sudo su - postgres

Create the "dspace" database.

createdb -E UNICODE dspace

Step 6.6: Setup PostgreSQL dspace DB user password, ownership and privileges

Connect to the PostgreSQL database server and enter a PostgreSQL database server shell.

psql -U postgres -d dspace
   Set the dspace DB user password:
   SECURITY WARNING: Use your unique dspace database password for this on a production system !

ALTER ROLE dspace WITH PASSWORD 'XXXXXX';

   Let the dspace DB user own the dspace database

ALTER DATABASE dspace OWNER TO dspace;

   Grant all privileges for the dspace database to the dspace DB user

GRANT ALL PRIVILEGES ON DATABASE dspace TO dspace;

   Add the "crypto" extension to the "dspace" database.

CREATE EXTENSION pgcrypto;

   Quit the database shell.

\q

We exit from PostgreSQL database server postgres user shell and return to the Ubuntu server dspace user shell.

exit

Step 6.8: Setup maximum number of PostgreSQL server client connections

PLEASE NOTE: https://jira.duraspace.org/browse/DS-2563

Edit the postgresql config file:

sudo nano /etc/postgresql/9.3/main/postgresql.conf

Change the number of "max_connections" to 300. Please note: If you get connection errors, then adjust this value!

Step 6.9: Restart the PostgreSQL server

Type the following:

sudo service postgresql restart

References

Встановлення 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.

Див. також

Посилання