Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 26/06/2016 18:22:00

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Gestion multi-sites et URLs de production ?

Bonsoir,
J'ai installé la version de déploiement et je rencontre quelques soucis avec la gestion de plusieurs sites.

Dans le cadre de la prise d'Ametys j'ai créé 2 sites.
Un site nommé Test1 avec en configuration l'URL :
Un site nommé Test2 avec en configuration l'URL :
(Pour l'instant je n'ai rien déclaré au niveau Apache et Tomcat)

Depuis le BackOffice, Sites, Ouvrir dans le CMS pour Test1 je rentre bien dans l'interface d'édition du site. Pour la page que j'ai nommé accueil, la version en ligne me renvoie vers l'URL :
Jusqu'ici tout va bien.

En revanche, quand j'ouvre dans le CMS le site Test2, je rentre curieusement dans l'interface d'édition du site Test1. La version en ligne me renvoie de la même manière vers l'URL :

Impossible donc de gérer un second site.
J'ai probablement zappé quelque chose, peut être pouvez vous m'éclairer ?

---

Ma seconde question concerne l'URL de production d'un site. Pour un site en production, faut-il configurer Apache pour attaquer directement les URLs de type http://<URL du CMS>/live/<NOM DU SITE>/fr/index.html
?

Merci d'avance pour vos lumières

Cordialement
Vincent

Offline

#2 27/06/2016 09:47:36

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

Peut-être ne vous êtes vous pas donné les droits de gérer le second site ?

Dans ce cas en effet, toute url vers un site sur lequel on n'a pas les droits redirige vers l'écran de choix des sites qui liste les sites sur lesquels on a les droits. Dans votre cas, vous ne devez avoir les droits que sur un seul site (test1) et donc il vous redirige automatiquement


Raphael Franchet
Expert Ametys

Offline

#3 28/06/2016 08:13:19

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

Bonjour,
Merci pour votre réponse, c'était bien une question de droits.

Ma deuxième interrogation porte sur l'URL de production d'un site.

Dans mon test, j'ai créé un site avec l'URL
Dans l'éditeur du site, un clic sur "Version en ligne" me renvoie vers l'URL :
Lorsque j'ouvre cette URL sans être connecté (en navigation privée) je tombe sur une page d'authentification "Bienvenue sur Ametys Demo 3.8.0".
Mon site cufr.localhost ne contient qu'une seule page d'accueil en niveau de partage "public", je me pose donc la question, comment atteindre cette page directement sans avoir à se connecter sur la plateforme Ametys ???

Offline

#4 28/06/2016 10:29:44

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

la "version en ligne" est une prévisualisation via la backoffice de ce que le front office est censé afficher
donc pour y accéder il faut être connecté au backoffice.

pour aller sur le site en ligne, tapez:
mais pour que cela fonctionne il faut avoir une application site correctement configurée qui reçoit cette requête : en général on met donc un apache httpd devant.


Raphael Franchet
Expert Ametys

Offline

#5 28/06/2016 12:55:34

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

J'ai configuré un VirtualHost Apache pour le back office
DocumentRoot "E:/cms/Ametys_CMS/application/v1_0_0/cms"
que j'atteins bien sur :

J'atteins bien l'application SITE sur : http://localhost/_admin

En revanche comment déclarer un VirtualHost pour le site  créé ?
Quel est le DocumentRoot associé à ce site ?

D'autre part, je suis étonné de ne rien trouver dans les répertoires "data/cache" et "data/repository".

Offline

#6 28/06/2016 13:31:44

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

Sur le wiki vous avez un exemple de fichier de configuration d'apache httpd pour le back et pour le front.
Côté CMS le DocumentRoot importe peu car on ne l'utilise pas : tout est transmis à Tomcat.
Coté SITE office on l'utilise et il doit pointer vers le répertoire de cache.

Vous parlez de data/cache du front ? il se remplit à chaque fois qu'une ressource cachable est demandée (au minimum le css ou images par exemple ; mais les pages html aussi lorsqu'elles sont statiques) : peut être ne regardez-vous pas le dossier de cache que vous avez configuré dans l'admin du site ?


Raphael Franchet
Expert Ametys

Offline

#7 28/06/2016 15:39:59

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

Dans mon arborescence j'ai 2 répertoires cache.

Un répertoire E:\cms\Ametys_CMS\data\cache
Un répertoire E:\cms\Ametys_CMS\application\v1_0_0\site\WEB-INF\data\cache

Dans la configuration du font-office j'ai comme valeur pour URL de répertoire du cache :
file://E:/cms/Ametys_CMS/application/v1_0_0/site/WEB-INF/data/cache

Ces 2 répertoires restent vides.

Dans la configuration httpd d'Apache j'ai déclaré un virtual host pour le site cufr.localhost.
Malgré tout  me renvoie vers la page d'authentification de l'application SITE.

Voici un extrait de httpd.conf

#Back-Office CMS
<VirtualHost *:80>
        # Racine des documents statiques du CMS
        DocumentRoot "E:/cms/Ametys_CMS/application/v1_0_0/cms"
        
        <Directory "E:/cms/Ametys_CMS/application/v1_0_0/cms">
            #Order allow,deny
            #Allow from all
            Require all granted
        </Directory>

        ServerName cms.localhost
        UseCanonicalName On
        AddDefaultCharset     UTF-8

        RewriteEngine On
        ProxyRequests Off
        ProxyPreserveHost On 
        
        # the default timeout is 5 minutes, but it do exists very long operations (building live workspace) where the js timeout is set to 10 hours.
        ProxyTimeout 172800

        # uncomment the following lines if you have unflatten the WEB-INF/lib/*-resources.jar
        # RewriteRule ^(/.*i18n.js)$                               http://localhost:8080$1      [P,L]
        # RewriteRule  ^/plugins/([a-zA-Z0-9]*)/resources/(.*)$    /plugins/$1/resources/$2              [L]
        # RewriteRule  ^/kernel/resources/(.*)$                    /kernel/resources/$1                  [L]
        # RewriteRule  ^/_([a-zA-Z0-9]*)/resources/(.*)$           /workspaces/$1/resources/$2           [L]
        # RewriteRule  ^/resources/(.*)$                           /workspaces/cms/resources/$1          [L]
        RewriteRule  ^/skins/([a-zA-Z0-9]*)/resources/(.*)$      /skins/$1/resources/$2                  [L]
        RewriteRule  ^/skins/([a-zA-Z0-9]*)/templates/(.*)/resources/(.*)$      /skins/$1/templates/$2/resources/$3                  [L]
        RewriteRule  ^/skins/([a-zA-Z0-9]*)/templates/(.*)/styles/(.*)$      /skins/$1/templates/$2/styles/$3                  [L]
        
        RewriteRule        ^(/.*)$  http://localhost:8080$1 [P,L]
        ProxyPassReverse   /        http://localhost:8080/
        
        # Autorisation locale de proxification
        <Proxy http://localhost:8080/*>
            Order deny,allow
            Allow from all
        </Proxy>

        ErrorLog C:/xampp/apache/logs/cms-error.log
        CustomLog C:/xampp/apache/logs/cms-access.log combined
</VirtualHost>

#Front-Office SITE
<VirtualHost *:80>
        # Racine des documents statiques du CMS
        DocumentRoot "E:/cms/Ametys_CMS/application/v1_0_0/site/WEB-INF/data/cache"

        <Directory "E:/cms/Ametys_CMS/application/v1_0_0/site/WEB-INF/data/cache">
            #Order allow,deny
            #Allow from all
            Require all granted
            Options FollowSymLinks
        </Directory>
        
        ServerName localhost
        UseCanonicalName On
        
        #-><IfModule deflate_module>
        #->    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
        #-></IfModule>

        AddDefaultCharset UTF-8

        RewriteEngine On
        ProxyRequests Off
        ProxyPreserveHost On 

        # Traitement statique des erreurs
        #ProxyErrorOverride On
        #ErrorDocument 400 /error/500.html
        #ErrorDocument 401 /error/401.html
        #ErrorDocument 403 /error/500.html
        #ErrorDocument 404 /error/404.html
        #ErrorDocument 500 /error/500.html
        #ErrorDocument 501 /error/500.html
        #ErrorDocument 502 /error/500.html
        #ErrorDocument 503 /error/500.html
        #ErrorDocument 506 /error/500.html
        
        <Directory "E:/cms/Ametys_CMS/application/v1_0_0/site/skins/CHARTE_TEST">
            #Order allow,deny            
            #Allow from all
            Require all granted
            Options Multiviews
            Options FollowSymLinks
        </Directory>
        
        #RewriteRule    ^/error/(.+)$  E:/cms/Ametys_CMS/application/v1_0_0/site/skins/CHARTE_TEST/error/$1 [L]

        # positionne le header Content-disposition quand la variable d'environnement download est présente
        Header         set Content-Disposition "attachment; filename=%{download}e;filename*=utf-8''%{download}e" env=download

        RewriteRule ^/(.*);jsessionid=(.*)$ /$1

        RewriteRule             ^/?$                /fr/index.html [R]
        RewriteRule             ^/fr/?$          /fr/index.html [R] 
        RewriteRule             ^/en/?$          /en/index.html [R]
        RewriteRule             ^/es/?$          /es/index.html [R]
        RewriteRule             ^/zh/?$          /zh/index.html [R]
       
        ## Si l'URL matche l'expression suivante et que le fichier existe, on le sert en statique avec le serveur Apache.     
        RewriteCond    %{DOCUMENT_ROOT}/$1     -f
        RewriteRule    ^/(.+)$  %{DOCUMENT_ROOT}/$1 [L]

        # Ce bloc sert à positionner la variable d'environnement download quand il y a un paramètre de requête download=true
        # La valeur de la variable download est le nom du fichier "%-encodé".
        RewriteCond    %{DOCUMENT_ROOT}/MON_SITE/$1$3     -f
        RewriteCond    %{QUERY_STRING}         ^.*download=true.*$
        RewriteRule    ^/(([^/]*/)*)([^/]+)$  %{DOCUMENT_ROOT}/MON_SITE/$1$3 [E=download:$3,L]

        RewriteCond    %{DOCUMENT_ROOT}/MON_SITE/$1     -f
        RewriteRule    ^/(.+)$  %{DOCUMENT_ROOT}/MON_SITE/$1 [L]

        ## Redirection de toute autre forme de requetes :
        RewriteRule        ^(/.*)$  http://localhost:8080$1 [E=AMETYS_PROXY_PASS:1,P,L]
        RequestHeader set UNIQUE_ID %{UNIQUE_ID}e env=AMETYS_PROXY_PASS
        ProxyPassReverse   /        http://localhost:8080/
        
        LogFormat "%{UNIQUE_ID}e MON_SITE %h %l %u %t \"%r\" %s/%>s %b %{AMETYS_PROXY_PASS}e \"%{Referer}i\" \"%{User-Agent}i\"" MON_SITE-combined
        
        ErrorLog C:/xampp/apache/logs/site-error.log
        CustomLog C:/xampp/apache/logs/site-access.log MON_SITE-combined
        
        # Autorisation locale de proxification
        <Proxy http://localhost:8080/*>
            #Order deny,allow
            #Allow from all
            Require all granted            
        </Proxy>
</VirtualHost>

#Site cufr.localhost
<VirtualHost *:80>
        # Racine des documents statiques du CMS
        DocumentRoot "E:/cms/Ametys_CMS/application/v1_0_0/site/WEB-INF/data/cache"

        <Directory "E:/cms/Ametys_CMS/application/v1_0_0/site/WEB-INF/data/cache">
            #Order allow,deny
            #Allow from all
            Require all granted
            Options FollowSymLinks
        </Directory>
        
        ServerName cufr.localhost
        UseCanonicalName On
        
        #-><IfModule deflate_module>
        #->    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
        #-></IfModule>

        AddDefaultCharset UTF-8

        RewriteEngine On
        ProxyRequests Off
        ProxyPreserveHost On 

        # Traitement statique des erreurs
        #ProxyErrorOverride On
        #ErrorDocument 400 /error/500.html
        #ErrorDocument 401 /error/401.html
        #ErrorDocument 403 /error/500.html
        #ErrorDocument 404 /error/404.html
        #ErrorDocument 500 /error/500.html
        #ErrorDocument 501 /error/500.html
        #ErrorDocument 502 /error/500.html
        #ErrorDocument 503 /error/500.html
        #ErrorDocument 506 /error/500.html
        
        <Directory "E:/cms/Ametys_CMS/application/v1_0_0/cms/skins/demo">
            #Order allow,deny            
            #Allow from all
            Require all granted
            Options Multiviews
            Options FollowSymLinks
        </Directory>
        
        #RewriteRule    ^/error/(.+)$  E:/cms/Ametys_CMS/application/v1_0_0/cms/skins/demo/error/$1 [L]

        # positionne le header Content-disposition quand la variable d'environnement download est présente
        Header         set Content-Disposition "attachment; filename=%{download}e;filename*=utf-8''%{download}e" env=download

        RewriteRule ^/(.*);jsessionid=(.*)$ /$1

        RewriteRule             ^/?$                /fr/index.html [R]
        RewriteRule             ^/fr/?$          /fr/index.html [R] 
        RewriteRule             ^/en/?$          /en/index.html [R]
        RewriteRule             ^/es/?$          /es/index.html [R]
        RewriteRule             ^/zh/?$          /zh/index.html [R]
       
        ## Si l'URL matche l'expression suivante et que le fichier existe, on le sert en statique avec le serveur Apache.     
        RewriteCond    %{DOCUMENT_ROOT}/$1     -f
        RewriteRule    ^/(.+)$  %{DOCUMENT_ROOT}/$1 [L]

        # Ce bloc sert à positionner la variable d'environnement download quand il y a un paramètre de requête download=true
        # La valeur de la variable download est le nom du fichier "%-encodé".
        RewriteCond    %{DOCUMENT_ROOT}/cufr_mayotte/$1$3     -f
        RewriteCond    %{QUERY_STRING}         ^.*download=true.*$
        RewriteRule    ^/(([^/]*/)*)([^/]+)$  %{DOCUMENT_ROOT}/cufr_mayotte/$1$3 [E=download:$3,L]

        RewriteCond    %{DOCUMENT_ROOT}/cufr_mayotte/$1     -f
        RewriteRule    ^/(.+)$  %{DOCUMENT_ROOT}/cufr_mayotte/$1 [L]

        ## Redirection de toute autre forme de requetes :
        RewriteRule        ^(/.*)$  http://localhost:8080$1 [E=AMETYS_PROXY_PASS:1,P,L]
        RequestHeader set UNIQUE_ID %{UNIQUE_ID}e env=AMETYS_PROXY_PASS
        ProxyPassReverse   /        http://localhost:8080/
        
        LogFormat "%{UNIQUE_ID}e cufr_mayotte %h %l %u %t \"%r\" %s/%>s %b %{AMETYS_PROXY_PASS}e \"%{Referer}i\" \"%{User-Agent}i\"" cufr_mayotte-combined
        
        ErrorLog C:/xampp/apache/logs/site-error.log
        CustomLog C:/xampp/apache/logs/site-access.log cufr_mayotte-combined
        
        # Autorisation locale de proxification
        <Proxy http://localhost:8080/*>
            #Order deny,allow
            #Allow from all
            Require all granted            
        </Proxy>
</VirtualHost>

Offline

#8 28/06/2016 15:44:44

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

qu'est-ce que vous appelez l'authentification du site ? n'est-ce pas la configuration nécessaire au premier accès ?

au niveau des path, je recommande d'avoir des liens symboliques du type "cms -> v1_0_0/cms" ; comme ça lors d'un changement de version tous vos paths restent corrects : il suffit de changer le lien symbolique

data/cache ne sert que si vous l'utilisez smile là vous avez mis partout WEB-INF/data/cache donc le premier ne sert à rien.
le cache ne se remplira qu'à partir du moment où vous arrivez à afficher des pages via l'application site.


Raphael Franchet
Expert Ametys

Offline

#9 28/06/2016 18:45:58

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

Raphaël Franchet wrote:

le cache ne se remplira qu'à partir du moment où vous arrivez à afficher des pages via l'application site.

Et c'est bien ma difficulté d'atteindre le site via l'application site smile
J'ai tenté de suivre scrupuleusement la documentation pour l'installation du front-office, à partir de l'exemple httpd-site.conf.
en personnalisant les valeurs de répertoire (/home/cms/Ametys_CMS/application, /home/cms/Ametys_CMS/data), de nom de domaine (), de port tomcat (PORT_TOMCAT), nom du site (INTERNALSITENAME), etc...

Mais comment afficher les pages via l'application site ?

Quand je parle de l'authentification du site cela correspondant à la copie d'écran en PJ. Le site cufr.localhost est composé de page en niveau de partage public. Pourquoi cette authentification ?

Offline

#10 29/06/2016 09:38:14

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

L'écran que vous montrez est l'écran de connexion du back-office.
Si quand vous tapez  vous tombez là dessus c'est que votre conf Apache Httpd est mauvaise, puisque vous êtes envoyés sur l'application "cms" au lieu de l'application "site".

En fait, cela peut même provenir de votre configuration de tomcat.
Pouvez-vous m'indiquez les URLs que vous souhaitez pour le cms et pour le site ?

Si par exemple vous souhaitez qqchose de la forme:  et  ; cela veut dire que dans tomcat l'application "site" et l'application "cms" doivent être installées à la racine (contexte ROOT) : 3 solutions alors pour vous :
* deux tomcats sur deux ports différents avec une application à la racine de chacun
* un tomcat avec deux connectors donc deux ports différents avec une application à la racine de chacun
* un tomcat avec deux virtualhost avec une application à la racine de chacun

Si vous souhaitez qqchose de la fome: http://localhost/cms et  dans ce cas, un seul tomcat avec une application sur le contexte "/cms" et une sur le contexte ROOT fera l'affaire.

Concentrez-vous d'abord sur réussir cette configuration de tomcat avant de vous occuper d'Apache HTTPD. (donc utilisez le numéro de port dans un premier temps : par exemple


Raphael Franchet
Expert Ametys

Offline

#11 29/06/2016 21:23:07

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

Je souhaiterais simplement obtenir une URL pour atteindre le back-office et des URLs pour atteindre chacun des sites créés... et cela sans même parler de frontal Apache pour l'instant, sur le Tomcat ce serait déjà bien.

La documentation d'installation ne fournit pas toutes les informations nécessaires.

Où peut-on trouver un exemple clair de configuration de Tomcat pour Ametys ?

Configuration des contextes ? Peux t-on connaitre précisément les répertoires physiques à déclarer pour le cms, pour les sites créés ???

Quel est l'interprétation faîte des URLs déclarées pour le cms, pour l'application SITE et pour les sites, déclarées dans les configurations à travers les interfaces web ???

A la lecture des messages sur ce forum je ne suis pas le premier à rencontrer des difficultés pour l'installation, c'est fort dommage de buter sur cette étape qui ne devrait pas être un frein à la prise en main d'Ametys.

Offline

#12 29/06/2016 21:34:55

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

aux dernières nouvelles :

An error occurred. Please contact the administrator of the application.org.apache.avalon.framework.component.ComponentException: Unable to initialize the ComponentManager (key [org.apache.cocoon.Processor])
    at org.ametys.runtime.cocoon.TreeProcessor.compose(TreeProcessor.java:94)
    at org.apache.avalon.framework.container.ContainerUtil.compose(ContainerUtil.java:173)
    at org.apache.avalon.excalibur.component.DefaultComponentFactory.newInstance(DefaultComponentFactory.java:266)
    at org.apache.avalon.excalibur.component.ThreadSafeComponentHandler.initialize(ThreadSafeComponentHandler.java:108)
    at org.apache.avalon.excalibur.component.ExcaliburComponentManager.initialize(ExcaliburComponentManager.java:524)
    at org.apache.cocoon.components.CocoonComponentManager.initialize(CocoonComponentManager.java:583)
    at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
    at org.apache.cocoon.Cocoon.initialize(Cocoon.java:345)
    at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
    at org.apache.cocoon.servlet.CocoonServlet.createCocoon(CocoonServlet.java:1435)
    at org.ametys.runtime.servlet.RuntimeServlet.createCocoon(RuntimeServlet.java:225)
    at org.apache.cocoon.servlet.CocoonServlet.init(CocoonServlet.java:495)
    at org.ametys.runtime.servlet.RuntimeServlet.init(RuntimeServlet.java:171)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5231)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5518)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1861)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.Exception: Caught an exception trying to initialize the component org.ametys.plugins.flipbook.ConvertContentAttachment2ImagesComponent
    at org.ametys.runtime.plugin.component.ThreadSafeComponentManager.initialize(ThreadSafeComponentManager.java:205)
    at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
    at org.ametys.runtime.cocoon.TreeProcessor.compose(TreeProcessor.java:62)
    ... 28 more
Caused by: org.apache.avalon.framework.service.ServiceException: Unable to initialize component org.ametys.plugins.repository.AmetysObjectResolver (key [org.ametys.plugins.repository.AmetysObjectResolver]) (Key='org.ametys.plugins.repository.AmetysObjectResolver')
    at org.apache.avalon.framework.service.WrapperServiceManager.lookup(WrapperServiceManager.java:80)
    at org.ametys.plugins.flipbook.AbstractConvertDocument2ImagesComponent.service(AbstractConvertDocument2ImagesComponent.java:75)
    at org.apache.avalon.framework.container.ContainerUtil.service(ContainerUtil.java:143)
    at org.ametys.runtime.plugin.component.ThreadSafeComponentManager$ComponentFactory.instanciate(ThreadSafeComponentManager.java:376)
    at org.ametys.runtime.plugin.component.PluginsComponentManager$ProxyComponentFactory.newInstance(PluginsComponentManager.java:104)
    at org.ametys.runtime.plugin.component.PluginsComponentManager$ProxyComponentFactory.newInstance(PluginsComponentManager.java:94)
    at org.ametys.runtime.plugin.component.ThreadSafeComponentManager.initialize(ThreadSafeComponentManager.java:200)
    ... 30 more
Caused by: org.apache.avalon.framework.component.ComponentException: Unable to initialize component org.ametys.plugins.repository.AmetysObjectResolver (key [org.ametys.plugins.repository.AmetysObjectResolver])
    at org.ametys.runtime.plugin.component.ThreadSafeComponentManager.lookup(ThreadSafeComponentManager.java:134)
    at org.ametys.runtime.plugin.component.PluginsComponentManager.lookup(PluginsComponentManager.java:64)
    at org.apache.avalon.framework.service.WrapperServiceManager.lookup(WrapperServiceManager.java:68)
    ... 36 more
Caused by: java.lang.RuntimeException: Unable to get Session
    at org.ametys.plugins.repository.provider.JackrabbitRepository.login(JackrabbitRepository.java:160)
    at org.ametys.plugins.repository.provider.AbstractRepository.login(AbstractRepository.java:103)
    at org.ametys.plugins.repository.AmetysObjectResolver.initialize(AmetysObjectResolver.java:87)
    at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
    at org.ametys.runtime.plugin.component.ThreadSafeComponentManager$ComponentFactory.configureAndStart(ThreadSafeComponentManager.java:392)
    at org.ametys.runtime.plugin.component.PluginsComponentManager$ProxyComponentFactory.newInstance(PluginsComponentManager.java:112)
    at org.ametys.runtime.plugin.component.PluginsComponentManager$ProxyComponentFactory.newInstance(PluginsComponentManager.java:94)
    at org.ametys.runtime.plugin.component.ThreadSafeComponentManager.lookup(ThreadSafeComponentManager.java:130)
    ... 38 more
Caused by: java.lang.IllegalArgumentException: Separator not found. Token [��������������������������������������������������������������������������������]
    at org.apache.jackrabbit.core.lock.LockInfo.parseLockToken(LockInfo.java:311)
    at org.apache.jackrabbit.core.lock.LockManagerImpl.reapplyLock(LockManagerImpl.java:300)
    at org.apache.jackrabbit.core.lock.LockManagerImpl.load(LockManagerImpl.java:272)
    at org.apache.jackrabbit.core.lock.LockManagerImpl.<init>(LockManagerImpl.java:208)
    at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.createLockManager(RepositoryImpl.java:1909)
    at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getLockManager(RepositoryImpl.java:1891)
    at org.apache.jackrabbit.core.RepositoryImpl.getLockManager(RepositoryImpl.java:858)
    at org.apache.jackrabbit.core.WorkspaceImpl.getInternalLockManager(WorkspaceImpl.java:530)
    at org.apache.jackrabbit.core.XASessionImpl.init(XASessionImpl.java:128)
    at org.apache.jackrabbit.core.XASessionImpl.<init>(XASessionImpl.java:100)
    at org.ametys.plugins.repository.provider.AmetysSession.<init>(AmetysSession.java:46)
    at org.ametys.plugins.repository.provider.AmetysRepository.createSessionInstance(AmetysRepository.java:51)
    at org.apache.jackrabbit.core.RepositoryImpl.createSession(RepositoryImpl.java:930)
    at org.apache.jackrabbit.core.RepositoryImpl.login(RepositoryImpl.java:1468)
    at org.ametys.plugins.repository.provider.JackrabbitRepository.login(JackrabbitRepository.java:145)
    ... 45 more

Offline

#13 30/06/2016 09:36:18

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

Bonjour,
il existe énormément de façon de configurer un tomcat et chacun à ses préférences. Je vous conseille donc de lire la documentation de Tomcat avant d'aller plus loin mais dans tous les cas le plus simple que je vous conseille est d'installer le cms dans le contexte "/cms" et le site dans le contexte ROOT "/".
Suite à cela http://localhost:8080/cms/_admin devrait vous mener à l'administration du cms et http://localhost:8080/_admin à l'administration du site.
Arrivez-vous à cela ?

Concernant l'erreur que vous indiquez dans le message suivant elle est vraiment très étrange. Assurez-vous que tomcat est bien éteint via un "ps waux | grep tomcat" puis effacer le fichier "lock" dans le repository (emplacement par défaut cms/WEB-INF/data/repository/.lock) ainsi que les fichiers "locks" de chaque workspace du repository (emplacement par défaut cms/WEB-INF/data/repository/workspaces/*/locks). Ensuite redémarrez.


Raphael Franchet
Expert Ametys

Offline

#14 30/06/2016 13:28:31

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

Bonjour,
Je vous remercie, l'erreur n'apparaît plus en supprimant les fichiers "lock" de Tomcat.

Tomcat et Apache sont bien configurés pour atteindre :
Le Back-office (CMS) : cms.localhost/_admin
Le Front-office (SITE) : localhost/_admin

En revanche ma question porte uniquement sur le paramétrage du Tomcat pour atteindre un site web créé dans Ametys.

J'ai créé un site avec dans sa configuration l'url déclarée  (Informations générales du site)

Pour le Front-office j'ai déclaré dans le fichier ../localhost/ROOT.xml le contexte :
<Context docBase="E:\cms\Ametys_CMS\application\v1_0_0\site" privileged="true"
    antiResourceLocking="false" antiJARLocking="false">
</Context>

C'est tout bon ça fonctionne.

Pour la Back-office j'ai déclaré dans le fichier ../cms.localhost/ROOT.xml le contexte :
<Context docBase="E:\cms\Ametys_CMS\application\v1_0_0\cms" privileged="true"
    antiResourceLocking="false" antiJARLocking="false">
</Context>

C'est tout bon ça fonctionne.

Dans le cas du Front-office selon les préconisations de la documentation d'installation j'ai donc indiqué le chemin docBase="E:\cms\Ametys_CMS\application\v1_0_0\site"

Dans le cas du Back-office toujours selon les préconisations de la documentation d'installation j'ai donc indiqué le chemin docBase="E:\cms\Ametys_CMS\application\v1_0_0\cms"

Tout cela fonctionne.

Ma question porte sur la déclaration d'un contexte Tomcat pour un site web créé dans Ametys, en l'occurrence mon site .
Quel est le répertoire à indiquer en docBase ???

Last edited by vcotrez (30/06/2016 13:29:30)

Offline

#15 30/06/2016 13:58:33

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

Je comprends enfin votre problème : Alors en fait, il y a une application pour le backoffice et une seule application front-office pour gérer tous les sites.
Donc il n'y a pas de contexte tomcat a déclarer de manière supplémentaire pour chaque site.

Par contre, vous avez envie que cufr.localhost renvoie sur l'application site, il faut donc vous assurez (c'est la valeur par défaut) que "localhost" est bien le defaultHost dans la conf tomcat (server.xml)

Enfin, en attendant de configurer ApacheHTTPD, allez dans l'admin du cms, et changer l'url de votre site de  en .

Il ne vous reste qu'à taper  dans votre navigateur. Tomcat va le traiter avec le contexte "localhost": c'est donc l'application "site" qui va prendre la main et demander au back-office les informations.
Si cela fonctionne c'est que vous avez bien mis les bons paramètres dans la configuration d'admin du site et du cms.


Raphael Franchet
Expert Ametys

Offline

#16 30/06/2016 14:49:13

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

Je progresse...

J'ai suivi vos conseils, désormais lorsque je tente d'atteindre le site  il semble que ce soit le back-office qui me renvoie l'erreur suivante :

cms.localhostjava.net.UnknownHostException: cms.localhost
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
    at sun.net.www.http.HttpClient.New(HttpClient.java:308)
    at sun.net.www.http.HttpClient.New(HttpClient.java:326)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1169)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:933)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
    at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2943)
    at java.net.HttpURLConnection.getHeaderFieldDate(HttpURLConnection.java:552)
    at java.net.URLConnection.getLastModified(URLConnection.java:559)
    at org.apache.excalibur.source.impl.URLSource.getInfos(URLSource.java:164)
    at org.apache.excalibur.source.impl.AbstractSource.checkInfos(AbstractSource.java:62)
    at org.apache.excalibur.source.impl.URLSource.getInputStream(URLSource.java:227)
    at org.ametys.plugins.site.SiteCache._synchronizeSites(SiteCache.java:90)
    at org.ametys.plugins.site.SiteCache.getSites(SiteCache.java:71)
    at org.ametys.site.GetSiteAction.act(GetSiteAction.java:71)
    at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:120)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
    at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
    at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
    at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:118)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
    at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
    at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
    at org.apache.cocoon.Cocoon.process(Cocoon.java:699)
    at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1159)
    at org.ametys.runtime.servlet.RuntimeServlet._doService(RuntimeServlet.java:135)
    at org.ametys.runtime.servlet.RuntimeServlet.service(RuntimeServlet.java:92)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: Unable to synchronize site data
    at org.ametys.plugins.site.SiteCache._synchronizeSites(SiteCache.java:110)
    at org.ametys.plugins.site.SiteCache.getSites(SiteCache.java:71)
    at org.ametys.site.GetSiteAction.act(GetSiteAction.java:71)
    at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:120)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
    at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
    at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
    at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:118)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
    at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
    at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
    at org.apache.cocoon.Cocoon.process(Cocoon.java:699)
    at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1159)
    at org.ametys.runtime.servlet.RuntimeServlet._doService(RuntimeServlet.java:135)
    at org.ametys.runtime.servlet.RuntimeServlet.service(RuntimeServlet.java:92)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.UnknownHostException: cms.localhost
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1890)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1885)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1884)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1457)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
    at org.apache.excalibur.source.impl.URLSource.getInputStream(URLSource.java:284)
    at org.ametys.plugins.site.SiteCache._synchronizeSites(SiteCache.java:90)
    ... 46 more
Caused by: java.net.UnknownHostException: cms.localhost
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
    at sun.net.www.http.HttpClient.New(HttpClient.java:308)
    at sun.net.www.http.HttpClient.New(HttpClient.java:326)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1169)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:933)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
    at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2943)
    at java.net.HttpURLConnection.getHeaderFieldDate(HttpURLConnection.java:552)
    at java.net.URLConnection.getLastModified(URLConnection.java:559)
    at org.apache.excalibur.source.impl.URLSource.getInfos(URLSource.java:164)
    at org.apache.excalibur.source.impl.AbstractSource.checkInfos(AbstractSource.java:62)
    at org.apache.excalibur.source.impl.URLSource.getInputStream(URLSource.java:227)
    ... 47 more

Est-ce un problème avec le cache ?

Unable to synchronize site data

Dans la configuration du Back-office, j'ai des doutes aussi sur les valeurs suivantes :

Adresses IP des front-offices : j'ai indiqué 127.0.0.1
Applications front-office : j'ai indiqué http://localhost:8080

Offline

#17 30/06/2016 15:25:28

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

Alors je pense au contraire que c'est une erreur du front-office qui n'arrive pas à contacter le back.

Allez dans http://localhost:8080/_admin pour configurer l'application.
Là on vous demande de saisir l'adresse du back-office et vous avez mis:

problème votre machine ne semble pas résoudre "cms.localhost" en 127.0.0.1
donc vous pouvez l'ajouter au fichier /etc/hosts pour que ce soit le cas.


Raphael Franchet
Expert Ametys

Offline

#18 01/07/2016 10:41:18

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

Merci pour votre aide.

Cette fois ci il semble que le front-office atteigne bien le back-office.
En revanche j'obtiens une autre erreur :

org.apache.cocoon.ResourceNotFoundException : Resource not found for URL

Resource not found for URL http://cms.localhost:8080/generate/cufr_mayotte/fr/index.html?_contextPath=&_baseServerPath=http://cufr.localhost&_initialRequest=%2Ffr%2Findex.htmlorg.apache.cocoon.ResourceNotFoundException: Resource not found for URL http://cms.localhost:8080/generate/cufr_mayotte/fr/index.html?_contextPath=&_baseServerPath=http://cufr.localhost&_initialRequest=%2Ffr%2Findex.html
    at org.ametys.site.GeneratePageAction.act(GeneratePageAction.java:165)
    at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:120)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
    at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.handleCocoonRedirect(ConcreteTreeProcessor.java:300)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.access$000(ConcreteTreeProcessor.java:49)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor$TreeProcessorRedirector.cocoonRedirect(ConcreteTreeProcessor.java:348)
    at org.apache.cocoon.environment.ForwardRedirector.redirect(ForwardRedirector.java:60)
    at org.apache.cocoon.components.treeprocessor.sitemap.RedirectToURINode.invoke(RedirectToURINode.java:70)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
    at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:139)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
    at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
    at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
    at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:118)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
    at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
    at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
    at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
    at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
    at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
    at org.apache.cocoon.Cocoon.process(Cocoon.java:699)
    at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1159)
    at org.ametys.runtime.servlet.RuntimeServlet._doService(RuntimeServlet.java:135)
    at org.ametys.runtime.servlet.RuntimeServlet.service(RuntimeServlet.java:92)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

Offline

#19 01/07/2016 10:44:36

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Gestion multi-sites et URLs de production ?

C'est une excellente nouvelle smile

Cette erreur vient simplement du fait que sur le site en question vous n'avez pas créé de page d'url "index" qui soit validée.
Pour créer la page d'accueil il convient de créer une page de titre "index" puis de la renommer en "Accueil" par exemple (en conservant l'url).
Puis il faut qu'elle soit validée : soit qu'elle contienne un service, soit un contenu validé.


Raphael Franchet
Expert Ametys

Offline

#20 04/07/2016 06:37:53

vcotrez
Guest
Registered: 17/06/2016
Posts: 22

Re: Gestion multi-sites et URLs de production ?

Bonjour,
Ça tourne !
Je vous remercie pour votre aide précieuse.

Offline

#21 29/08/2017 09:56:02

nicolasbrunet
Guest
From: Cergy
Registered: 26/08/2013
Posts: 48
Website

Re: Gestion multi-sites et URLs de production ?

Bonjour,

Comment faut-il configurer Ametys pour gérer plusieurs sites sous le même domaine ? Exemples : /site1/fr/index.html, /site2/fr/index.html, etc ???


Webmestre de l'université de Cergy-Pontoise

Offline

#22 29/08/2017 10:52:26

Cédric Damioli
Ametys Product Manager
From: Toulouse
Registered: 10/08/2010
Posts: 321

Re: Gestion multi-sites et URLs de production ?

Ca se fait normalement tout seul.
Il suffit de renseigner l'URL dans la configuration de chaque site (sans le "/fr/index.html").

Si ça ne fonctionne pas, ou pas bien, c'est sans doute un problème de configuration Apache.

Vous avez une erreur ?

Offline

#23 29/08/2017 11:23:33

nicolasbrunet
Guest
From: Cergy
Registered: 26/08/2013
Posts: 48
Website

Re: Gestion multi-sites et URLs de production ?

Merci pour la réponse. A vrai dire ce n'est pas moi qui fait la configuration et je suis nul en la matière... mais si vous aviez un petit "tuto" ça aurait pu aider mon service informatique...
Configuration Apache, c'est-à-dire ?


Webmestre de l'université de Cergy-Pontoise

Offline

#24 29/08/2017 16:59:46

Cédric Damioli
Ametys Product Manager
From: Toulouse
Registered: 10/08/2010
Posts: 321

Re: Gestion multi-sites et URLs de production ?

C'est le serveur qui reçoit les requêtes de l'extérieur et qui les dispatche à Ametys.
La configuration n'est pas toujours la même en fonction des URL, des sites, ...

Offline

#25 31/08/2017 10:50:47

Duffy
Guest
Registered: 05/09/2012
Posts: 4

Re: Gestion multi-sites et URLs de production ?

Bonjour,
je repondis à la question de Nicolas:
après votre explication, nous avons bien configuré le champ URL (https://xxx.u-cergy.fr/chong par example)
quand on navigue le site, on a une erreur 404.
Anyware a paramétré notre apache, dans la configue on a
        RewriteCond    %{DOCUMENT_ROOT}/www/$1     -f
        RewriteRule    ^/(.+)$  %{DOCUMENT_ROOT}/www/$1 [L]
je sais pas si c'est vraiment lié (en tout cas...ça n'a rien changé quand je modifie ces 2 lignes...)
Merci pour votre aide
Chong

Last edited by Duffy (31/08/2017 14:18:02)

Offline

Board footer

Powered by FluxBB