Changes for page Your First Deployment
Last modified by Pascal Robert on 2013/04/21 13:53
From version 8.1
edited by Pascal Robert
on 2012/01/08 07:36
on 2012/01/08 07:36
Change comment:
There is no comment for this version
To version 9.1
edited by Pascal Robert
on 2012/01/08 16:28
on 2012/01/08 16:28
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -10,7 +10,7 @@ 10 10 11 11 We will focus on the classic tools since this is the method that the majority of the community use. The classic deployment tools consists of: 12 12 13 -* wotaskd. A daemon that act as a watchdog to send lifeboat to the applications its manage + launching and stopping applications. Source code is available and it's actually a Project Application application!13 +* wotaskd. A daemon that act as a watchdog to send lifeboat to the applications its manage + launching and stopping applications. Source code is available and it's actually a Project Wonder application 14 14 15 15 * Module for your Web server software (Apache or IIS). If a module don't exist for your preferred Web server, you can use a CGI. 16 16 ... ... @@ -20,29 +20,105 @@ 20 20 21 21 = Building the "products" = 22 22 23 -When you run your projects inside Eclipse, they use the incremental builder and the "internal builds" are not ready for deployment (e.g. don't use the build from the "build" folder of the project, it's not a complete build !). You need to use Ant or Maven to actually build a full "product". Let's focus on Ant because, again, this is what the majority use. You can also use Jenkins, but Jenkins will need to call Maven or Ant to build the projects anyway.23 +When you run your projects inside Eclipse, they use the incremental builder and the "internal builds" are not ready for deployment (e.g. don't use the build from the "build" folder of the project, it's not a complete build). You need to use Ant or Maven to actually build a full "product". Let's focus on Ant because, again, this is what the majority use. You can also use Jenkins, but Jenkins will need to call Maven or Ant to build the projects anyway. 24 24 25 25 One important thing to remember is that you need to build and install the frameworks before your build your applications. Building your applications will NOT add the frameworks to the product if you didn't build the frameworks first. So let's build and install the **BlogCommon** framework first. 26 - 27 -In Eclipse, right-click on the **BlogCommon** project, and select **WOLips Ant Tools** -> **Install**. 28 28 29 - By callingthis,EclipsewillcallAntto build theframeworkandinstall itin (on OS X)**/Library/Frameworks**,sotheframework shouldbeat**/Library/Frameworks/BlogCommon.framework**.27 +In Eclipse, right-click on the **BlogCommon** project, and select **WOLips Ant Tools** > **Install**. 30 30 31 - You are now readyto build theapplications.The procedureisthe same as for frameworks,so right-click on the**BlogRest**project,and select**WOLipsAntTools**-> **Install**.The applicationwill install itselfin (on OS X) **/Library/WebObjects/Applications/**.Butthere'sa differencewitha buildforaframework: buildingan applicationwill build three products:29 +By calling this, Eclipse will call Ant to build the framework and install it in (on OS X) **/Library/Frameworks**, so the framework should be at **/Library/Frameworks/BlogCommon.framework**. 32 32 31 +You are now ready to build the applications. The procedure is the same as for frameworks, so right-click on the **BlogRest** project, and select **WOLips Ant Tools** > **Install**. The application will install itself in (on OS X) **/Library/WebObjects/Applications/**. But there's a difference with a build for a framework: building an application will build three products: 32 + 33 33 * a .woa (in our case: **BlogRest.woa**) that is a regular application bundle. 34 34 * a tar+gzip archive of the application (in our case: **BlogRest-Application.tar.gz**) 35 35 * a tar+gzip archive of the Web server resources (the files that are in the **WebResources** folders of your projects). That file is name **<ApplicationName>-WebServerResources.tar.gz** (so in our case, **BlogRest-WebServerResources.tar.gz**). 36 36 37 -The tar archive exists to make it faster to copy the application to your deployment server because it's two files instead of hundred and they are compressed. 37 +The tar archive exists to make it faster to copy the application to your deployment server because it's two files instead of hundred and they are compressed. 38 38 39 39 = Installing the deployment tools = 40 40 41 -We are now ready to install the deployment tools. The wiki have installation instructions for 41 +We are now ready to install the deployment tools. The wiki have installation instructions for many platforms, so jump over to the instructions for your deployment platform. Running the deployment tools (at least wotaskd and the Apache module) is also useful on your development machine. 42 42 43 -* Installing on Mac OS X 44 -* Installing on Linux 45 -* Installing on Windows 46 -* Installing on BSD 43 +* [[Installing on Mac OS X>>WO:Deploying on Mac OS X Server]] 44 +* [[Installing on Linux>>WO:Installing WebObjects 5.4 on Linux]] 45 +* [[Installing on Windows>>WO:Deploying on Windows]] 46 +* [[Installing on FreeBSD>>WO:Deploying on FreeBSD 8.2 and WebObjects 5.4.3]] 47 47 48 48 = Configuring the applications with JavaMonitor = 49 + 50 +Before adding the application into JavaMonitor, you have to copy the applications on the deployment server. You can use any tools that you usually use to copy files on the remote server (scp, rsync, CyberDuck, etc.). Usually you need to copy the application in the following remote directory: 51 + 52 +* /Library/WebObjects/Applications (on OS X) 53 +* /opt/Local/Library/WebObjects/Applications (on other UNIX systems than OS X, like Linux, BSD or Solaris) 54 + 55 +Copy the **BlogRest-Application.tar.gz** archive into the correct directory from the above list and uncompressed it (//tar zxf BlogRest-Application.tar.gz//). Doing this command will result in a new directory called **BlogRest.woa**. 56 + 57 +One last step to do for the application. Usually, the application will run with the //appserver// user and the //appserveradm// group. You need to make sure that either the group or the user can run the application. The best way to do this is to change the group of the files to be //appserveradm//. Your user on the deployment server should also be part of that group. To change the group: 58 + 59 +{{code}} 60 +chgrp -R appserveradm BlogRest.woa 61 +{{/code}} 62 + 63 +You also need to install the Web server resources to a different location. Why is that? Because it's better to serve static resources like images and CSS from the Web server software (Apache, IIS, etc.) than from the Web application to get better performance and caching. 64 + 65 +Usually, the Web server resources goes to: 66 + 67 +* /Library/WebServer/Documents/WebObjects (on OS X) 68 +* /opt/Local/Library/WebServer/Documents/WebObjects (on other UNIX systems than OS X, like Linux, BSD or Solaris) 69 + 70 +Copy the **BlogRest-WebServerResources.tar.gz** archive into the correct directory from the above list and uncompressed it (//tar zxf BlogRest-WebServerResources.tar.gz//). Doing this command will result in a new directory called **BlogRest.woa**. 71 + 72 +Everything on the file system is ok, the next step is to add the application to JavaMonitor. If the development tools have been installed correctly, JavaMonitor will run on port 56789 on your deployment server. For example, if the DNS name of your deployment server is my.host.com, the URL will be http:~/~/my.host.com:56789 73 + 74 +After the **Add Application Named** label, enter **BlogRest** into the text field and click **Add Application**. 75 + 76 +You will get to a page where you need to specific the path to the launch script inside the application bundle. If the development server is on OS X, the path will be: 77 + 78 +{{code}} 79 +/Library/WebServer/Documents/WebObjects/BlogRest.woa/BlogRest 80 +{{/code}} 81 + 82 +Put that path in the text field next to the **MacOSX** label. 83 + 84 +On other UNIXs, the path is: 85 + 86 +{{code}} 87 +/opt/Local/Library/WebServer/Documents/WebObjects/BlogRest.woa/BlogRest 88 +{{/code}} 89 + 90 +Put that path in the text field next to the **Unix** label. 91 + 92 +It would also be useful to log problems to a log file. For now, we will put the log into ///tmp//. That means that the log will be lost when you reboot the server or if you have tools like WebMin that cleans ///tmp// every day, but for now it would do the job. 93 + 94 +To specific the path to the log file, go to the **Output Path** section and enter ///tmp// in the text field next to **MacOSX** (if your deployment box is on OS X) or next to **Unix** (if your development is UNIX but not OS X). 95 + 96 +The next step is to click on the **Push All** button. Now, we can add instances of the application. To do so, click on the **Detail View** link. 97 + 98 +You will see a section saying //Add: 1 instance(s) on host: //. Click the **Add** button. That will add one instance of the application. It's possible to run multiple instances of an application, mainly to load balance requests and also to have other working instances in case an instance is going AWOL. But for now, running one instance is enough. 99 + 100 +If the application was started, a link on the application name will appear after 30 seconds in JavaMonitor. If a link don't appear after a minute and the status is still **STOP**, something is wrong. Check the log that was created in /tmp (the log should be /tmp/WOCommunity-1) to check for any errors. 101 + 102 +If the log don't even exist, 99% of the time, the problem is file permissions. Make sure that the launch script for the application (BlogRest.woa/BlogRest) is accessible for the **appserver** user. If the file permissions are ok, you can launch the script manually with the **appserver** user by doing: 103 + 104 +On OS X: 105 + 106 +{{code}} 107 + 108 +sudo su - appserver 109 +cd /Library/WebServer/Documents/WebObjects/BlogRest.woa/ 110 +./BlogRest 111 + 112 +{{/code}} 113 + 114 +On other UNIXs: 115 + 116 +{{code}} 117 + 118 +sudo su - appserver 119 +cd /opt/Local/Library/WebServer/Documents/WebObjects/BlogRest.woa/ 120 +./BlogRest 121 + 122 +{{/code}} 123 + 124 +If the application can start from the command line, it should start by the development tools too. If you see errors when launching the application by command line, fix them and try to launch it by command line again.