Diskussion:Server/CKAN: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
Zeile 19: Zeile 19:
:: <code>pkg install -y python</code>
:: <code>pkg install -y python</code>
: <code>pkg install -y python27</code>
: <code>pkg install -y python27</code>
<!--
<pre>
Message for python27-2.7.9_1:
=====================================================================
Note that some standard Python modules are provided as separate ports
as they require additional dependencies. They are available as:
bsddb          databases/py-bsddb
gdbm            databases/py-gdbm
sqlite3        databases/py-sqlite3
tkinter        x11-toolkits/py-tkinter
=====================================================================
</pre>
-->


[[wikipedia:de:PostgreSQL]] installieren
[[wikipedia:de:PostgreSQL]] installieren
:: postgresql94 wäre verfügbar, aber postgresql-libpqxx möchte ohnehin gern postgresql93-client installieren
:: postgresql94 wäre verfügbar, aber postgresql-libpqxx möchte ohnehin gern postgresql93-client installieren
: <code>pkg install -y postgresql93-server</code>
: <code>pkg install -y postgresql93-server</code>
<!--
<pre>
===> Creating users and/or groups.
Creating group 'pgsql' with gid '70'.
Creating user 'pgsql' with uid '70'.
  =========== BACKUP YOUR DATA! =============
  As always, backup your data before
  upgrading. If the upgrade leads to a higher
  minor revision (e.g. 8.3.x -> 8.4), a dump
  and restore of all databases is
  required. This is *NOT* done by the port!
  Press ctrl-C *now* if you need to pg_dump.
  ===========================================
</pre>
<pre>
Message for postgresql93-client-9.3.6_1:
The PostgreSQL port has a collection of "side orders":
postgresql-docs
  For all of the html documentation
p5-Pg
  A perl5 API for client access to PostgreSQL databases.
postgresql-tcltk
  If you want tcl/tk client support.
postgresql-jdbc
  For Java JDBC support.
postgresql-odbc
  For client access from unix applications using ODBC as access
  method. Not needed to access unix PostgreSQL servers from Win32
  using ODBC. See below.
ruby-postgres, py-PyGreSQL
  For client access to PostgreSQL databases using the ruby & python
  languages.
postgresql-plperl, postgresql-pltcl & postgresql-plruby
  For using perl5, tcl & ruby as procedural languages.
postgresql-contrib
  Lots of contributed utilities, postgresql functions and
  datatypes. There you find pg_standby, pgcrypto and many other cool
  things.
etc...
Message for postgresql93-server-9.3.6_1:
For procedural languages and postgresql functions, please note that
you might have to update them when updating the server.
If you have many tables and many clients running, consider raising
kern.maxfiles using sysctl(8), or reconfigure your kernel
appropriately.
The port is set up to use autovacuum for new databases, but you might
also want to vacuum and perhaps backup your database regularly. There
is a periodic script, /usr/local/etc/periodic/daily/502.pgsql, that
you may find useful. You can use it to backup and perfom vacuum on all
databases nightly. Per default, it perfoms `vacuum analyze'. See the
script for instructions. For autovacuum settings, please review
~pgsql/data/postgresql.conf.
If you plan to access your PostgreSQL server using ODBC, please
consider running the SQL script /usr/local/share/postgresql/odbc.sql
to get the functions required for ODBC compliance.
Please note that if you use the rc script,
/usr/local/etc/rc.d/postgresql, to initialize the database, unicode
(UTF-8) will be used to store character data by default.  Set
postgresql_initdb_flags or use login.conf settings described below to
alter this behaviour. See the start rc script for more info.
To set limits, environment stuff like locale and collation and other
things, you can set up a class in /etc/login.conf before initializing
the database. Add something similar to this to /etc/login.conf:
---
postgres:\
        :lang=en_US.UTF-8:\
        :setenv=LC_COLLATE=C:\
        :tc=default:
---
and run `cap_mkdb /etc/login.conf'.
Then add 'postgresql_class="postgres"' to /etc/rc.conf.
======================================================================
To initialize the database, run
  /usr/local/etc/rc.d/postgresql initdb
You can then start PostgreSQL by running:
  /usr/local/etc/rc.d/postgresql start
For postmaster settings, see ~pgsql/data/postgresql.conf
NB. FreeBSD's PostgreSQL port logs to syslog by default
    See ~pgsql/data/postgresql.conf for more info
======================================================================
To run PostgreSQL at startup, add
'postgresql_enable="YES"' to /etc/rc.conf
</pre>
-->
:: eigentlich hieß es libpq (Es wird davon ausgegangen, dass das bei FreeBSD postgresql-libpqxx ist.)
:: eigentlich hieß es libpq (Es wird davon ausgegangen, dass das bei FreeBSD postgresql-libpqxx ist.)
: <code>pkg install -y postgresql-libpqxx</code>
: <code>pkg install -y postgresql-libpqxx</code>
Zeile 34: Zeile 159:
:: Etwa bei PC-BSD kann einfach bei der Jail ''allow.sysvipc'' angewählt werden.
:: Etwa bei PC-BSD kann einfach bei der Jail ''allow.sysvipc'' angewählt werden.
:: Etwa bei FreeNAS kann einfach bei der Jail '',allow.sysvipc=true'' ergänzend eingetragen werden.
:: Etwa bei FreeNAS kann einfach bei der Jail '',allow.sysvipc=true'' ergänzend eingetragen werden.
: PostgreSQL soll gestartet werden können (und zu jedem Neustart gestartet werden)
: Einrichtung von PostgreSQL
:: <code>echo 'postgresql_enable="YES"' >> /etc/rc.conf</code>
:: (gemäß Hinweis von FreeBSD am Ende der Installation) optionales Definieren für Sprache und so weiter
::: Hinterlegen der Vorgaben zur Verwendung für PostgreSQL
:::: <code>$EDITOR /etc/login.conf</code>
<pre></pre>
<pre>
postgres:\
        :lang=en_US.UTF-8:\
        :setenv=LC_COLLATE=C:\
        :tc=default:
</pre>
<pre></pre>
::: <!-- create capability database -->
:::: <code>cap_mkdb /etc/login.conf</code>
::: <!-- -->
:::: <code>echo 'postgresql_class="postgres"' >> /etc/rc.conf</code>
:: PostgreSQL soll gestartet werden können (und zu jedem Neustart gestartet werden)
::: <code>echo 'postgresql_enable="YES"' >> /etc/rc.conf</code>
: Initialisieren von PostgreSQL
: Initialisieren von PostgreSQL
:: <code>/usr/local/etc/rc.d/postgresql initdb</code>
:: <code>/usr/local/etc/rc.d/postgresql initdb</code>
::: oder alternativ
:::: <code>service postgresql initdb</code>
<!--
<pre>
he files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.
The database cluster will be initialized with locales
  COLLATE:  C
  CTYPE:    en_US.UTF-8
  MESSAGES: en_US.UTF-8
  MONETARY: en_US.UTF-8
  NUMERIC:  en_US.UTF-8
  TIME:    en_US.UTF-8
The default text search configuration will be set to "english".
Data page checksums are disabled.
creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
    /usr/local/bin/postgres -D /usr/local/pgsql/data
or
    /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
</pre>
-->
: Starten vom Dienst für PostgreSQL
: Starten vom Dienst für PostgreSQL
:: <code>/usr/local/etc/rc.d/postgresql start</code>
:: <code>/usr/local/etc/rc.d/postgresql start</code>
::: oder alternativ
:::: <code>service postgresql start</code>
<!--
<pre>
LOG:  could not create IPv6 socket: Protocol not supported
LOG:  ending log output to stderr
HINT:  Future log output will go to log destination "syslog".
</pre>
-->


[[wikipedia:de:Pip (Python)]] und VirtualEnv für Python installieren
[[wikipedia:de:Pip (Python)]] und VirtualEnv für Python installieren
Zeile 147: Zeile 347:
: <code>paster make-config ckan /etc/ckan/default/development.ini</code>
: <code>paster make-config ckan /etc/ckan/default/development.ini</code>


: <code>ee /etc/ckan/default/development.ini</code>
: <code>$EDITOR /etc/ckan/default/development.ini</code>
<pre></pre>
<pre></pre>
<pre>
<pre>

Version vom 26. Juli 2015, 00:01 Uhr

Installation

Installation allgemein

Installation bei FreeBSD

FreeBSD (beispielsweise eine Jail) auf den aktuellen Stand bringen

pkg update && pkg upgrade -y

wikipedia:de:zsh für eine "schön bequeme" Shell installieren

pkg install -y zsh

zu wikipedia:de:zsh wechseln

zsh

wikipedia:de:Python (Programmiersprache) installieren

eigentlich müsste, da anscheint Python 2 (2015-07) der Standard bei FreeBSD, es auch ohne Angabe der Version gehen
pkg install -y python
pkg install -y python27

wikipedia:de:PostgreSQL installieren

postgresql94 wäre verfügbar, aber postgresql-libpqxx möchte ohnehin gern postgresql93-client installieren
pkg install -y postgresql93-server
eigentlich hieß es libpq (Es wird davon ausgegangen, dass das bei FreeBSD postgresql-libpqxx ist.)
pkg install -y postgresql-libpqxx

Inbetriebnahme von wikipedia:de:PostgreSQL

  • Wenn es sich um eine Jail handelt, so muss für PostgreSQL SysV IPC erlaubt sein.
    $EDITOR /etc/rc.conf

jail_sysvipc_allow="YES"

Etwa bei PC-BSD kann einfach bei der Jail allow.sysvipc angewählt werden.
Etwa bei FreeNAS kann einfach bei der Jail ,allow.sysvipc=true ergänzend eingetragen werden.
Einrichtung von PostgreSQL
(gemäß Hinweis von FreeBSD am Ende der Installation) optionales Definieren für Sprache und so weiter
Hinterlegen der Vorgaben zur Verwendung für PostgreSQL
$EDITOR /etc/login.conf

postgres:\
        :lang=en_US.UTF-8:\
        :setenv=LC_COLLATE=C:\
        :tc=default:

cap_mkdb /etc/login.conf
echo 'postgresql_class="postgres"' >> /etc/rc.conf
PostgreSQL soll gestartet werden können (und zu jedem Neustart gestartet werden)
echo 'postgresql_enable="YES"' >> /etc/rc.conf
Initialisieren von PostgreSQL
/usr/local/etc/rc.d/postgresql initdb
oder alternativ
service postgresql initdb
Starten vom Dienst für PostgreSQL
/usr/local/etc/rc.d/postgresql start
oder alternativ
service postgresql start

wikipedia:de:Pip (Python) und VirtualEnv für Python installieren

pkg install -y py27-pip
pkg install -y py27-virtualenv
weitere benötigte Software installieren
wikipedia:de:git installieren
pkg install -y git
wikipedia:en:Apache Solr installieren
pkg install -y apache-solr
wikipedia:en:Apache Solr soll gestartet werden können (und zu jedem Neustart gestartet werden)
echo 'solr_enable="YES"' >> /etc/rc.conf
wikipedia:de:Jetty installieren
pkg install -y jetty
Jetty soll gestartet werden können (und zu jedem Neustart gestartet werden)
echo 'jetty_enable="YES"' >> /etc/rc.conf
Jetty einrichten und starten
env - /usr/local/etc/rc.d/jetty start
echo 'kern.ps_arg_cache_limit=10000' >> /etc/sysctl.conf
Konfiguration von Jetty prüfen
cat /usr/local/etc/jetty.xml
wikipedia:de:OpenJDK 6 installieren
pkg install -y openjdk6
echo 'jetty_flags="-Djava.awt.headless=true"' >> /etc/rc.conf
## Prevent Java from opening an X11 display
#  jetty_flags="-Djava.awt.headless=true"
## Increase memory limit of the Java virtual machine
#  jetty_flags="-Xms32m -Xmx256m"
## Run Java with remote debugging turned on on port 8000
#  jetty_flags="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
Einrichten von openjdk6
echo 'fdesc /dev/fd fdescfs rw 0 0' >> /etc/fstab
echo 'proc /proc procfs rw 0 0' >> /etc/fstab
CKAN einrichten
mkdir -p /usr/lib/ckan/default
chown `whoami` /usr/lib/ckan/default
virtualenv --no-site-packages /usr/lib/ckan/default
. /usr/lib/ckan/default/bin/activate
pip
Da spätere eine entsprechende Meldung kam, einfach vorher einmal updat con pip machen.
pip install --upgrade pip

CKAN (2.3) mit pip, aus den Quellen von Github per git beziehend, installieren

alternativ wäre wohl
pip install -e 'git+https://github.com/ckan/ckan.git#egg=ckan'
noch aktueller
pip install -e 'git+https://github.com/ckan/ckan.git@ckan-2.3#egg=ckan'
pip install -r /usr/lib/ckan/default/src/ckan/requirements.txt
wikipedia:de:PostgreSQL einrichten

Wechseln zum Account pgsql

Im Übrigen nennen die Beschreibung von CKAN den Account immer postgres. Standardmäßig ist sie aber bei PostgreSQL (bei FreeBSD) pgsql.
su pgsql

psql -l
createuser -S -D -R -P ckan_default
Enter password for new role: 
Enter it again: 
createdb -O ckan_default ckan_default -E utf-8
exit

mkdir -p /usr/local/etc/ckan/default
chown -R `whoami` /usr/local/etc/ckan/
eigentlich heißt es /etc/ckan/default statt /usr/local/etc/ckan/default

ergänzende Erstellung eines Links, um der Vorgabe von CKAN zu entsprechen

Es sollte geprüft werden, ob das auch ohne Link funktioniert.
ln -s /usr/local/etc/ckan /etc/ckan
chown -R `whoami` /etc/ckan/
cd /usr/lib/ckan/default/src/ckan
paster make-config ckan /etc/ckan/default/development.ini
$EDITOR /etc/ckan/default/development.ini

#sqlalchemy.url = postgresql://ckan_default:pass@localhost/ckan_default
sqlalchemy.url = postgresql://ckan_default:password@localhost/ckan_default

#ckan.site_url =
### aktuell gibt es keine Domain, weswegen erste einmal die IPv4-Adresse eingetragen wurde
ckan.site_url = http://''$IPv4-Adresse''

Jetty
Es wird immer von $JETTY_HOME geschrieben. Das ist praktisch /usr/local/jetty.
Solr
ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml /var/db/solr/solr.xml
service solr start
solr_url=http://127.0.0.1:8983/solr
http://$IPv4-Adresse:8983/solr/
ln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.in

(Versuch gemäß http://mikkel.hoegh.org/2011/07/24/install-multicore-apache-solr-freebsd-jetty/ 10.)

ln -s /usr/local/share/java/classes/solr-4.10.1.war solr.war

mögliche Fragen zur Installation bei FreeBSD

  • Wird JDBC benötigt?
    • pkg install -y postgresql-jdbc
      Liegt dann bei /usr/local/share/java/classes/postgresql.jar.
  • Wie verhält es sich mit openjdk? Bei apache-solr wird die aktuelle Version (7) installiert. Seitens CKAN wird aber auf die Version 6 verwiesen, oder?
  • Solr ordentlich hoch bekommen ln -s /usr/local/share/examples/apache-solr/example-schemaless/solr /var/db/solr
/usr/local/etc/rc.d/solr: WARNING: /var/db/solr/solr.xml is not readable.
/usr/local/etc/rc.d/solr: WARNING: failed precmd routine for solr