[ckan-dev] mounting CKAN at a non-root URL

Armin Retterath armin.retterath at gmail.com
Mon Aug 17 11:22:50 UTC 2015


hi nigel,

i had the same problem as giuiliano and set the right ckan.site_url - the
problem is maybe the apache mod_proxy (reverse proxy). i defined the
mod_proxy on the localhost server of ckan to serve ckan at port 80. on the
reverse proxy in the www, i did the same to publish my ckan installation.
the problem now is, that the 2 different mod_proxy make trouble - they
rewrite  urls, so that some links are false.
for example see: http://opendata.geoportal.rlp.de/dataset
in chromiums developer tools there is following error:

XMLHttpRequest cannot load http://opendata.geoportal.rlp.de%2C%
20opendata.geoportal.rlp.de/api/i18n/de. No 'Access-Control-Allow-Origin'
header is present on the requested resource. Origin '
http://opendata.geoportal.rlp.de' is therefore not allowed access.
(cors list is configured in development.ini and the application run without
any errors on http://localhost:80/ !)

Firebug give none error!

maybe there is a possible option for mod_proxy not to rewrite
http://opendata.geoportal.rlp.de/api/i18n/de to
http://opendata.geoportal.rlp.de%2C%20opendata.geoportal.rlp.de/api/i18n/de
- which is urldecoded: http://opendata.geoportal.rlp.de,
opendata.geoportal.rlp.de/api/i18n/de :-( .
another option maybe to allow the paster serve listening on foreign ip's.
default it only listen on localhost!
did someone know how to alter this behaviour?

thanx in advance,

armin


2015-08-15 5:20 GMT+02:00 Nigel Babu <nigel at nigelb.me>:

> To everyone on this thread, the problem you're all hitting is the same. if
> you want your ckan site on somedomain.com/ckan, you need to set `site_url
> = http://somedomain.com/ckan`. Giuiliano, I notice that your site_url
> isn't set correctly. If you have set it correctly in the config, perhaps
> you need to restart Apache for the setting to take effect.
>
> --
> nigelb
>
>
> On Fri, Aug 14, 2015, at 08:33 PM, Hildegard Gerlach wrote:
>
> Hello,
>
> we also would like to run CKAN at a non-root URL. I think we have a
> similar configuration as Giuliano.
> We are using supervisord to run Ckan with the paster command, but I don't
> think this makes any difference to the problem.
>
> ---------------------------- extract of superisord.conf
> [program:ckan]
> command=/Ckan/ckan_home/ckan_env/bin/paster serve
> /Ckan/ckan_home/ckan_env/src/ckan/production.ini
> user=ckan
> ________________________________
> and ckan.conf
>
>         ProxyPass        / http://localhost:5000/ retry=1 acquire=3000
> timeout=600 Keepalive=On
>         ProxyPassReverse / http://localhost:5000/
>
> I tried what has been described in this thread, but I didn't succeed to
> get it working as it should.
> It is also not clear to me where data-site-root can be configured.
> Changing it in base.html doesn't work.
>
> Would it be possible to get a documentation how to install (or move) Ckan
> on a non-root URL ? It would be appreciated.
>
> Thanx in advance
>
> Hilde
>
> On 8/14/2015 11:08 AM, Armin Retterath wrote:
>
> hello together,
> i now got another subdomain:
> opendata.geoportal.rlp.de
> but the viewers are not shown any longer?????
> on the real server the viewer are shown without any problems.
> on 127.0.0.1 apache proxy_http get port 5000 to 80 and on the front server
> the same module is used to transfer the requests so the ckan server ???
> thanx in advance
> armin
>
> 2015-08-14 9:40 GMT+02:00 Giuliano Veronese - Provincia di Pordenone <
> <veronese at provincia.pordenone.it>veronese at provincia.pordenone.it>:
>
> Hello Nigel,
> thank you for your answer.
> I can not link you the site because it is offline (virtual machine for
> experiments).
>
> This is the output you asked:
> {"Help": "Return a dictionary with information about the site's
> configuration.", "Success": true, "result": {"ckan_version": "2.1a",
> "site_url": "http: //catalog.data .gov "," site_description ":" ","
> SITE_TITLE ":" Data.gov "," error_emails_to ":"
> catalog-notification at googlegroups.com "," locale_default ":" en ","
> extensions ": [" geodatagov "," datagov_harvest ","
> geodatagov_geoportal_harvester "," z3950_harvester "," arcgis_harvester ","
> waf_harvester_collection "," geodatagov_csw_harvester ","
> geodatagov_doc_harvester "," geodatagov_waf_harvester "," spatial_metadata
> "," spatial_query "," resource_proxy "," spatial_harvest_metadata_api ",
> "recline_preview", "pdf_preview", "googleanalytics", "SAML2", "datajson",
> "datajson_harvest", "archiver", "qa", "ckan_harvester", "report",
> "broken_link_report", "datagovtheme", "extlink "]}}
>
> I send you the contents of ckan file (/etc/apache2/sites-availables/ckan):
>
> <VirtualHost *:80>
>         ServerAdmin webmaster at localhost
>         DocumentRoot /var/www
>
>     ProxyPass        /geoserver   http://localhost:8090/geoserver
>         ProxyPassReverse /geoserver <http://localhost:8090/geoserver>
> http://localhost:8090/geoserver
>         ProxyPass        /mapstore <http://localhost:8081/mapstore>
> http://localhost:8081/mapstore
>         ProxyPassReverse /mapstore <http://localhost:8081/mapstore>
> http://localhost:8081/mapstore
>         ProxyPass        /mapstore   ajp://localhost:8013/mapstore
>         ProxyPassReverse /mapstore   ajp://localhost:8013/mapstore
>         ProxyPass        /geostore   ajp://localhost:8013/geostore
>         ProxyPassReverse /geostore   ajp://localhost:8013/geostore
>         ProxyPass        /http_proxy ajp://localhost:8013/http_proxy
>         ProxyPassReverse /http_proxy ajp://localhost:8013/http_proxy
>         ProxyPass        /geonetwork <http://localhost:8082/geonetwork>
> http://localhost:8082/geonetwork
>         ProxyPassReverse /geonetwork <http://localhost:8082/geonetwork>
> http://localhost:8082/geonetwork
>         ProxyPass        /ckan http://localhost:5000
>         ProxyPassReverse /ckan http://localhost:5000
>
>         <Directory />
>                 Options FollowSymLinks
>                 AllowOverride None
>         </Directory>
>
>     <Directory /var/www/>
>                 Options Indexes FollowSymLinks MultiViews
>                 AllowOverride None
>                 Order allow,deny
>                 allow from all
>         </Directory>
>
>
> ### Abilitare FCGI http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
>
>    # FcgidMaxRequestsPerProcess should be <= PHP_FCGI_MAX_REQUESTS
>    # The example PHP wrapper script overrides the default PHP setting.
>     FcgidMaxRequestsPerProcess 10000
>
>    # Uncomment the following line if cgi.fix_pathinfo is set to 1 in
>    # php.ini:
>    # FcgidFixPathinfo 1
>
>     Alias /phpapp/ /usr/local/phpapp/
>   <Location /phpapp/>
>     AddHandler fcgid-script .php
>     Options +ExecCGI
>     FcgidWrapper /usr/local/bin/php-wrapper .php
>
>     # Customize the next two directives for your requirements. Configurata
> sopra
>     # Order allow,deny
>     # Allow from all
>   </Location>
>
> ### fine inserimento FCGI
>
>
>     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
>         <Directory /usr/lib/cgi-bin>
>                 AllowOverride None
>                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
>                 Order allow,deny
>                 Allow from all
>         </Directory>
>
>         ErrorLog ${APACHE_LOG_DIR}/error.log
>
>         # Possible values include: debug, info, notice, warn, error, crit,
>         # alert, emerg.
>
>         LogLevel warn
>         CustomLog ${APACHE_LOG_DIR}/access.log combined
>
> </VirtualHost>
>
> And finally, the row that contains "data-site-root" and "data-locale-root"
> in source of the page:
>
> <body data-site-root="http://localhost:7000/" data-locale-root="
> http://localhost:7000/" >
>
> I tried to manually edit the file "base.html" and to change the
> 'data-site-root' and 'data-locale-root', but did not work and I have
> restored the original version:
> ORIGINAL: <body{% block bodytag %} data-site-root="{{ h.url('/',
> locale='default', qualified=true) }}" data-locale-root="{{ h.url('/',
> qualified=true) }}" {% endblock %}>
> RESULT: <body data-site-root="http://localhost:7000/" data-locale-root="
> http://localhost:7000/" >
> CHANGED (but now restored): <body{% block bodytag %} data-site-root="{{
> h.url('/ckan', locale='default', qualified=true) }}" data-locale-root="{{
> h.url('/ckan', qualified=true) }}" {% endblock %}>
> RESULT: <body data-site-root="http://localhost:7000/ckan"
> data-locale-root="http://localhost:7000/ckan" > (do not work)
>
> Note: that "localhost:7000" is only redirection used by VirtualBox ( the
> server CKAN runs, on the virtual machine, on port 5000)
> Thanks for your help.
>
> Giuliano
>
>
>
> Il 13/08/2015 16:23, Nigel Babu ha scritto:
>
> Can you link me to the site? If not, please paste the output of
> /api/action/status_show. In your case, it might be
> ckan/api/action/status_show.
>
> Can you also view the source of the page and paste the <body> tag? I'd
> like to see the values of data-site-root and data-locale-root.
>
>
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>
>
>
>
>
> _______________________________________________
> ckan-dev mailing listckan-dev at lists.okfn.org https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>
>
> *_______________________________________________*
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>
>
>
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20150817/967e239a/attachment-0003.html>


More information about the ckan-dev mailing list