[Koha] plack with koha soruce package
Fridolin SOMERS
fridolin.somers at biblibre.com
Tue Mar 8 09:04:12 NZDT 2022
Sure, here is our PSGI file.
We follow the one for package to sometimes adapt.
Best regards,
Le 05/03/2022 à 01:50, vinod kumar a écrit :
> Dear Sir,
>
> Thanks for your mail.
> I have plack installed in my system too. But in the source package
> installation there is no PSGI file in my "/etc/koha" directory. If I use
> that available in tar package, that will not work as asking for the koha
> instance name, which is while we set up Koha via deb package. But in
> source tar installation there is no instance name so the PSGI file not
> working. Can you please share a sample PSGI file code, which can work
> for my source package installation.
> I shall be thankful to you.
>
> On Sat, Mar 5, 2022 at 12:41 AM Fridolin SOMERS
> <fridolin.somers at biblibre.com <mailto:fridolin.somers at biblibre.com>> wrote:
>
> Hi,
>
> We at Biblibre are using the dev install to run from git sources (in
> /home/koha/src).
>
> We have a SystemD unit for plack/starman.
> You can adapt it.
> Then edit your Apache configuration to use Starman as backend.
>
> Best regards,
>
> Le 03/03/2022 à 03:56, vinod kumar a écrit :
> > Hello Friends,
> >
> > I am a library professional and have been using Koha in my
> library for the
> > last 2 years. I have Koha 20.05.05 installed on Ubuntu 20.04. I have
> > installed Koha using source tar package and not using koha-common
> > installation. I have studied various koha articles to use in Koha
> to boost
> > speed. But in all articles, enabling plack steps given only for
> koha-common
> > installation only, using koha-plack command. In my case, I have
> installed
> > Koha using tar source package, so no such commands were found.
> > Can Anyone guide me how to enable the plack package for Koha tar
> source
> > package installation. I will be thankful to you.
> > Thanks,
> > _______________________________________________
> >
> > Koha mailing list http://koha-community.org
> <http://koha-community.org>
> > Koha at lists.katipo.co.nz <mailto:Koha at lists.katipo.co.nz>
> > Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha
> <https://lists.katipo.co.nz/mailman/listinfo/koha>
>
> --
> Fridolin SOMERS <fridolin.somers at biblibre.com
> <mailto:fridolin.somers at biblibre.com>>
> Software and system maintainer 🦄
> BibLibre, France
> _______________________________________________
>
> Koha mailing list http://koha-community.org <http://koha-community.org>
> Koha at lists.katipo.co.nz <mailto:Koha at lists.katipo.co.nz>
> Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha
> <https://lists.katipo.co.nz/mailman/listinfo/koha>
>
--
Fridolin SOMERS <fridolin.somers at biblibre.com>
Software and system maintainer 🦄
BibLibre, France
-------------- next part --------------
#!/usr/bin/perl
# This file is part of Koha.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
use Modern::Perl;
use Plack::Builder;
use Plack::App::CGIBin;
use Plack::App::Directory;
use Plack::App::URLMap;
use Plack::Request;
use Mojo::Server::PSGI;
# Pre-load libraries
use C4::Koha;
use C4::Languages;
use C4::Letters;
use C4::Members;
use C4::XSLT;
use Koha::Caches;
use Koha::Cache::Memory::Lite;
use Koha::Database;
use Koha::DateUtils;
use Koha::Logger;
use CGI qw(-utf8 ); # we will loose -utf8 under plack, otherwise
{
no warnings 'redefine';
my $old_new = \&CGI::new;
*CGI::new = sub {
my $q = $old_new->( @_ );
$CGI::PARAM_UTF8 = 1;
Koha::Caches->flush_L1_caches();
Koha::Cache::Memory::Lite->flush();
return $q;
};
}
my $intranet = Plack::App::CGIBin->new(
root => '/home/koha/src'
)->to_app;
my $opac = Plack::App::CGIBin->new(
root => '/home/koha/src/opac'
)->to_app;
my $apiv1 = builder {
my $server = Mojo::Server::PSGI->new;
$server->load_app('/home/koha/src/api/v1/app.pl');
$server->to_psgi_app;
};
builder {
enable "ReverseProxy";
enable "Plack::Middleware::Static";
# + is required so Plack doesn't try to prefix Plack::Middleware::
eval { require Koha::Middleware::SetEnv; };
if ( !$@ ) {
enable "+Koha::Middleware::SetEnv";
}
eval { require Koha::Middleware::RealIP; };
if ( !$@ ) {
enable "+Koha::Middleware::RealIP";
}
mount '/opac' => $opac;
mount '/intranet' => $intranet;
mount '/api/v1/app.pl' => $apiv1;
};
More information about the Koha
mailing list