[Koha] Step by step guide to enable REST API koha 20.11

Tomas Cohen Arazi tomascohen at gmail.com
Sat Mar 27 00:50:04 NZDT 2021


Those look correct.

Have you seen koha-testing-docker?

Kind regards

El vie, 26 mar 2021 a las 8:44, Javier Legido at Kedu (<
javier.legido at kedu.coop>) escribió:

> Good morning.
>
> Many thanks for your quick reply Tomas.
>
> I will do the test with stable debian version just right now, but maybe
> you (or someone else) can confirm or discard if the provided steps are
> accurate in order to get the REST API up and running.
>
> Thanks.
>
> --
>
> Javier Legido Martínez
> javier.legido at kedu.coop
> +34 600 840 948
>
> Kedu SCCL
> https://kedu.coop
> info at kedu.coop
>
> On Fri, 26 Mar 2021 at 12:36, Tomas Cohen Arazi <tomascohen at gmail.com>
> wrote:
>
>> Hi, we don't support Debian testing (things change often regarding
>> dependencies and available packages).
>>
>> Please use the debian:buster image instead.
>>
>> Kind regards
>>
>> El vie., 26 mar. 2021 1:50, Javi Legido <javi at legido.com> escribió:
>>
>>> Hi there.
>>>
>>> I would like to enable REST API, but so far i got 404 while trying to
>>> access:
>>>
>>> http://mykoha-intra.mydnsname.org/api/v1/.html
>>>
>>> http://mykoha.myDNSname.org/api/v1/.html
>>>
>>> I enabled below options:
>>>
>>>  OPACBaseURL => http://mykoha.myDNSname.org
>>>  OpacPublic
>>>  RESTBasicAuth
>>>  RESTOAuth2ClientCredentials
>>>  RESTPublicAnonymousRequests
>>>  RESTPublicAPI
>>>
>>> I see below errors in '/var/log/koha/mykoha/plack.log':
>>>
>>> 172.17.0.1 - - [26/Mar/2021:04:42:52 +0000] "GET /api/v1/
>>> app.pl/api/v1/.html
>>> HTTP/1.1" 404 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0)
>>> Gecko/20100101 Firefox/78.0"
>>>
>>> Many thanks in advice.
>>>
>>> Now verbose things, configuration files and step by step ways to
>>> reproduce
>>> the issue:
>>>
>>> 1. Configuration files
>>>
>>> /etc/apache2/sites-enabled/mykoha.conf
>>>
>>> # Koha instance mykoha Apache config.
>>>
>>> # OPAC
>>> <VirtualHost *:80>
>>>   <IfVersion >= 2.4>
>>>    Define instance "mykoha"
>>>   </IfVersion>
>>>    Include /etc/koha/apache-shared.conf
>>> #  Include /etc/koha/apache-shared-disable.conf
>>>   Include /etc/koha/apache-shared-opac-plack.conf
>>>    Include /etc/koha/apache-shared-opac.conf
>>>
>>>    ServerName mykoha.myDNSname.org
>>>    SetEnv KOHA_CONF "/etc/koha/sites/mykoha/koha-conf.xml"
>>>    AssignUserID mykoha-koha mykoha-koha
>>>
>>>    ErrorLog    /var/log/koha/mykoha/opac-error.log
>>> #  TransferLog /var/log/koha/mykoha/opac-access.log
>>> </VirtualHost>
>>>
>>> # Intranet
>>> <VirtualHost *:80>
>>>   <IfVersion >= 2.4>
>>>    Define instance "mykoha"
>>>   </IfVersion>
>>>    Include /etc/koha/apache-shared.conf
>>> #  Include /etc/koha/apache-shared-disable.conf
>>>   Include /etc/koha/apache-shared-intranet-plack.conf
>>>    Include /etc/koha/apache-shared-intranet.conf
>>>
>>>    ServerName mykoha-intra.myDNSname.org
>>>    SetEnv KOHA_CONF "/etc/koha/sites/mykoha/koha-conf.xml"
>>>    AssignUserID mykoha-koha mykoha-koha
>>>
>>>    ErrorLog    /var/log/koha/mykoha/intranet-error.log
>>> #  TransferLog /var/log/koha/mykoha/intranet-access.log
>>> </VirtualHost>
>>>
>>> /etc/koha/apache-shared-opac-plack.conf
>>>
>>> # Apache configuration settings that are shared for every Koha instance.
>>> # This file contains settings for the Plack configuration of the OPAC.
>>> #
>>> # This file should be included from an instance's
>>> # /etc/apache2/site-available file, from within the VirtualHost section
>>> # for the OPAC.
>>>
>>> # Plack is only available out-of-the-box for Apache 2.4.7+ setups
>>> <IfVersion >= 2.4.8>
>>>     <IfModule mod_proxy_http.c>
>>>
>>>         ProxyPreserveHost On
>>>
>>>         RequestHeader set X-FORWARDED-PROTO "https" env=HTTPS
>>>
>>>         # Point the OPAC site to Plack
>>>         ProxyPass /index.html "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/opac/opac-main.pl"
>>>         ProxyPassReverse /index.html
>>> "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/opac/opac-main.pl"
>>>         ProxyPass /cgi-bin/koha
>>> "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/opac"
>>>         ProxyPassReverse /cgi-bin/koha
>>> "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac"
>>>
>>>         # Point the /api endpoint to Plack
>>>         RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl
>>>         RewriteRule ^/api/(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2
>>> [L,PT]
>>>
>>>         ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/api"
>>>         ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/api"
>>>
>>>     </IfModule>
>>> </IfVersion>
>>>
>>> /etc/koha/apache-shared-intranet-plack.conf
>>>
>>> # Apache configuration settings that are shared for every Koha instance.
>>> # This file contains settings for the Plack configuration of the
>>> intranet.
>>> #
>>> # This file should be included from an instance's
>>> # /etc/apache2/site-available file, from within the VirtualHost section
>>> # for the intranet.
>>>
>>> # Plack is only available out-of-the-box for Apache 2.4.8+ setups
>>> <IfVersion >= 2.4.8>
>>>     <IfModule mod_proxy_http.c>
>>>
>>>         # FIXME: These scripts should be fixed so they
>>>         # don't break under plack/starman
>>>         ProxyPass "/cgi-bin/koha/offline_circ/process_koc.pl" "!"
>>>         ProxyPass "/cgi-bin/koha/tools/background-job-progress.pl" "!"
>>>         ProxyPass "/cgi-bin/koha/tools/batchMod.pl" "!"
>>>         ProxyPass "/cgi-bin/koha/tools/export.pl" "!"
>>>         ProxyPass "/cgi-bin/koha/tools/manage-marc-import.pl" "!"
>>>         ProxyPass "/cgi-bin/koha/tools/stage-marc-import.pl" "!"
>>>         ProxyPass "/cgi-bin/koha/tools/upload-cover-image.pl" "!"
>>>         ProxyPass "/cgi-bin/koha/svc/cataloguing/metasearch" "!"
>>>
>>>         ProxyPreserveHost On
>>>
>>>         RequestHeader set X-FORWARDED-PROTO "https" env=HTTPS
>>>
>>>         # Point the intranet site to Plack
>>>         ProxyPass /index.html "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/intranet/mainpage.pl"
>>>         ProxyPassReverse /index.html
>>> "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/intranet/mainpage.pl"
>>>         ProxyPass /cgi-bin/koha
>>> "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/intranet"
>>>         ProxyPassReverse /cgi-bin/koha
>>> "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet"
>>>
>>>         # Point the /api endpoint to Plack
>>>         RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl
>>>         RewriteRule ^/api/(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2
>>> [L,PT]
>>>
>>>         ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/api"
>>>         ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|
>>> http://localhost/api"
>>>
>>>     </IfModule>
>>> </IfVersion>
>>>
>>> 2. Step by step way to reproduce the issue
>>>
>>> docker stop test && docker rm test
>>> docker run \
>>>   --name test \
>>>   --cap-add=SYS_NICE \
>>>   --cap-add=DAC_READ_SEARCH \
>>>   -p 8080:8080 \
>>>   -p 80:80 \
>>>   -d debian:testing \
>>> bin/sh -c "while true; do echo hello world; sleep 1; done"
>>> docker exec -ti test bash
>>>
>>> apt-get update && apt-get install -y \
>>>   wget \
>>>   gnupg
>>>
>>> wget -q -O- https://debian.koha-community.org/koha/gpg.asc | apt-key
>>> add -
>>>
>>> echo 'deb http://debian.koha-community.org/koha stable main' | tee
>>> /etc/apt/sources.list.d/koha.list
>>>
>>> apt-get update && apt-get install -y \
>>>   koha-common \
>>>   mariadb-server
>>>
>>> service mariadb start
>>>
>>> a2enmod rewrite \
>>>   cgi \
>>>   headers \
>>>   proxy_http \
>>>   && a2dissite 000-default
>>>
>>> service apache2 restart
>>>
>>> koha-create --create-db mykoha
>>>
>>> koha-plack --enable mykoha
>>>
>>> koha-plack --start mykoha
>>>
>>> service apache2 restart
>>> _______________________________________________
>>>
>>> Koha mailing list  http://koha-community.org
>>> Koha at lists.katipo.co.nz
>>> Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha
>>>
>>

-- 
Tomás Cohen Arazi
Theke Solutions (http://theke.io)
✆ +54 9351 3513384
GPG: B2F3C15F


More information about the Koha mailing list