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

Tomas Cohen Arazi tomascohen at gmail.com
Sat Mar 27 00:35:45 NZDT 2021


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
>


More information about the Koha mailing list