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

Armin Retterath armin.retterath at gmail.com
Mon Aug 17 15:13:13 UTC 2015


the solution maybe to define the proxy for https and http directly in the
ini file? or is this a problem of debian 8?

i solved the issues by editing
https://github.com/ckan/ckanext-geoview/blob/master/ckanext/geoview/controllers/service_proxy.py
and
https://github.com/ckan/ckan/blob/master/ckanext/resourceproxy/controller.py
defining the 'proxies' variable and adding this variable to each call to
the requests function. but this is only a workaround i think ;-)

best regards from germany
armin

2015-08-17 14:45 GMT+02:00 Armin Retterath <armin.retterath at gmail.com>:

> hi nigel,
>
> i deployed the system with the use of nginx - now the first problem
> disapears, but the other problem occurs:
> the service_proxy script don't care about the proxy which defined in the
> /etc/environment :-( .
> is there another option to set an env var in the application (proxy and
> port?) with running paster the system proxy and port is recognized !
>
>
> http://opendata.geoportal.rlp.de/dataset/denkmaldaten-gdke/resource/aa71be28-0ff6-4454-8203-2f0683d1a158
>
> thanx in advance
>
> armin
>
> 2015-08-17 13:22 GMT+02:00 Armin Retterath <armin.retterath at gmail.com>:
>
>> 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/d467d325/attachment-0003.html>


More information about the ckan-dev mailing list