web-dev-qa-db-fra.com

Impossible de mettre quoi que ce soit dans/var/lib/Tomcat7/webapps /

Je commençais aujourd'hui avec le développement Web Java et je rencontrais des problèmes. J'ai installé mon Tomcat7 sur ma machine Ubuntu. Maintenant, lorsque je navigue sur // localhost: 8080, la page d’accueil par défaut s’affiche:

Ceci est la page d'accueil par défaut de Tomcat. Vous pouvez le trouver sur le système de fichiers local à l'adresse suivante: /var/lib/Tomcat7/webapps/ROOT/index.html

Les vétérans de Tomcat7 pourraient être ravis d'apprendre que cette instance système de Tomcat est installée avec CATALINA_HOME dans /usr/share/Tomcat7 et CATALINA_BASE dans /var/lib/Tomcat7, en respectant les règles de /usr/share/doc/Tomcat7-common/RUNNING.txt.gz.

Mais étrangement, lorsque j'essaie echo $CATALINA_HOME, rien ne s'affiche. De plus, je ne peux rien copier/créer dans le répertoire par défaut/var/lib/Tomcat7/ROOT, même s’il s’agit simplement de fournir quelques autorisations, mais je me demandais si c’était la bonne façon de le faire?

Ce que je voudrais faire est de créer un répertoire séparé dans ma maison où je peux mettre mon application Web et Tomcat peut le lire à partir de là. Y a-t-il un moyen de le faire? Dans Apache, je peux le faire en changeant la racine du document et le répertoire, mais je ne sais pas comment le faire pour Tomcat.

11
Sudh

Mais étrangement, lorsque j'essaie d'écouter $ CATALINA_HOME, rien ne s'affiche.

En effet, la version fournie définit CATALINA_HOME juste avant le lancement de Tomcat, après l'avoir lue à partir d'un fichier de configuration (généralement quelque part dans/etc).

De plus, je ne peux rien copier/créer dans le répertoire par défaut/var/lib/Tomcat7/ROOT, même s’il s’agit simplement de fournir quelques autorisations, mais je me demandais si c’était la bonne façon de le faire?

Le problème des autorisations est lié au fait que vous n’êtes pas root (ou à l’utilisateur Tomcat). La plupart des installations Tomcat empaquetées (deb ou RPM) ont tendance à s'installer avec un utilisateur spécifique à l'esprit, et copier des éléments dans un environnement différent ne fonctionne parfois pas.

/usr/share/Tomcat7 est votre répertoire CATALINA_HOME. Il contient des liens vers d'autres répertoires, tels que /var/lib/Tomcat7/webapps, /etc/Tomcat7, etc. Vous ne devez pas copier directement dans une application Web, vous devez en faire un package WAR et le "déployer". Les avantages sont nombreux.

Ce que je voudrais faire est de créer un répertoire séparé dans ma maison où je peux mettre mon application Web et Tomcat peut le lire à partir de là. Y a-t-il un moyen de le faire?

Oui, un est créé lors du "déploiement d'une application Web". Consultez la documentation standard de Tomcat7 et envisagez d'installer l'application Web "manager" si vous préférez une interface sans ligne de commande. Maintenant que vous savez quelle "installation" d'une application Web est appelée, ce sera probablement une tâche plus facile.

Dans Apache, je peux le faire en changeant la racine du document et le répertoire, mais je ne sais pas comment le faire pour Tomcat.

Tomcat a un ensemble d'exigences différent, légèrement plus restrictif, pour une racine de document. Vous devez l'apprendre et accepter l'idée que ce ne sera jamais la même chose. Fondamentalement, sous le répertoire "webapps", se trouve un fichier WAR ou un répertoire développé provenant d'un fichier WAR. Editer sur place n'est pas une bonne idée pour Tomcat, car les équivalents CGI ne sont pas lus à partir du disque, à chaque exécution, mais liés dans la mémoire de Tomcat. Cela signifie qu'une modification du répertoire peut ne pas affecter votre application Web, ce qui constitue une raison suffisante pour ne pas changer les fichiers sur le disque d'une application Web déployée.

Modifiez l'application Web, reconditionnez-la et mettez à jour le déploiement. C'est vraiment la "bonne" voie à suivre avec Tomcat.

10
Edwin Buck

Donner l'autorisation 777 au dossier webroot

Sudo chmod -R 777 Webroot

Après avoir déplacé vers le dossier Tomcat

4
Jithin U. Ahmed

Mais étrangement, lorsque j'essaie d'écouter $ CATALINA_HOME, rien ne s'affiche.

Si vous avez installé Tomcat7 en utilisant cette commande

Sudo apt-get install Tomcat7

/ usr/share/Tomcat7 est votre CATALINA_HOME. Toutefois, vous devez l'ajouter en tant que variable d'environnement dans le fichier /.bashrc.

Sudo vi ~/.bashrc

Vous pouvez ajouter cette information à la fin du fichier:

export Java_HOME=/usr/lib/jvm/default-Java
export CATALINA_HOME=/usr/share/Tomcat7

Enregistrez et quittez .bashrc. Vous pouvez appliquer les modifications en redémarrant le fichier bashrc.

. ~/.bashrc

Maintenant, vous verriez le chemin quand echo $ CATALINA_HOME.

Référence

0
Yong