<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>4.2&nbsp;Installing from the ZIP Download</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Virgo User Guide"><link rel="up" href="ch04.html" title="4.&nbsp;Installing Virgo Server for Apache Tomcat"><link rel="prev" href="ch04.html" title="4.&nbsp;Installing Virgo Server for Apache Tomcat"><link rel="next" href="ch04s03.html" title="4.3&nbsp;Installing from an update site"><!--Begin Google Analytics code--><script type="text/javascript">
			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script><script type="text/javascript">
			var pageTracker = _gat._getTracker("UA-2728886-3");
			pageTracker._setDomainName("none");
			pageTracker._setAllowLinker(true);
			pageTracker._trackPageview();
		</script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.2&nbsp;Installing from the ZIP Download</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Prev</a>&nbsp;</td><th width="60%" align="center">4.&nbsp;Installing Virgo Server for Apache Tomcat</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch04s03.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="installation-zip"></a>4.2&nbsp;Installing from the ZIP Download</h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1048"></a>Downloading the ZIP file</h3></div></div></div><p>
				Virgo Server for Apache Tomcat is distributed as a ZIP file. This can be downloaded from
				<a class="ulink" href="http://www.eclipse.org/virgo/download/" target="_top">here</a>.
			</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="installation-zip-installing"></a>Installing</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="installation-zip-installing-linux"></a>Linux</h4></div></div></div><p>
					To install Virgo Server for Apache Tomcat on Linux, unzip the distribution package to the desired installation directory.
					For example, to install into <code class="literal">/opt</code>:
				</p><pre class="screen">prompt$ unzip virgo-web-server-3.6.4.RELEASE.zip -d /opt</pre><p>
					This creates a directory called <code class="literal">virgo-web-server-3.6.4.RELEASE</code> under <code class="literal">/opt</code>.
				</p><p>
					Virgo Server for Apache Tomcat requires write access to the installation directory, in this case <code class="literal">/opt/virgo-web-server-3.6.4.RELEASE</code>.
					Typically this means it must be run as the user that installed it, or the installation directory&#8217;s ownership must be changed.
				</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="installation-zip-installing-win"></a>Microsoft Windows</h4></div></div></div><p>
					To install the Virgo Server for Apache Tomcat on Windows, unzip the distribution package to the desired installation directory.
					You should use a zip application such as 7zip, not the built-in folder decompression.  Note that both Windows and
					Java have some issues with long file names and file paths, so we recommend installing to the root directory of
					your chosen drive.
				</p></div></div></div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript">
			_lf_cid = "LF_48be82fa";
			_lf_remora();
		</script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch04s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4.&nbsp;Installing Virgo Server for Apache Tomcat&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;4.3&nbsp;Installing from an update site</td></tr></table></div></body></html>