Difference between revisions of "Building Mapguide on Ubuntu 7.10 Server"

From OSGeo
Jump to navigation Jump to search
m (Fixed startup script to actually work...)
Line 63: Line 63:
 
  sudo nano /etc/environment
 
  sudo nano /etc/environment
  
(Add the following line)
+
''(Add the following line)''
 +
 
 
  JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun"
 
  JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun"
  
Line 107: Line 108:
 
  sudo mkdir /usr/local/mapguideopensource
 
  sudo mkdir /usr/local/mapguideopensource
  
(replace administrator with your userid if necessary)
+
''(replace administrator with your userid if necessary)''
 +
 
 
  sudo chown administrator /usr/local/mapguideopensource
 
  sudo chown administrator /usr/local/mapguideopensource
  
Line 113: Line 115:
  
 
''(careful when copying and pasting this line, the - got changed into . for me)''
 
''(careful when copying and pasting this line, the - got changed into . for me)''
 +
 
  find . -name "*.gz" -exec tar xzf {} \;
 
  find . -name "*.gz" -exec tar xzf {} \;
  
Line 129: Line 132:
 
Go for the gusto:
 
Go for the gusto:
  
  aclocal
+
aclocal
  libtoolize --force
+
libtoolize --force
  automake --add-missing --copy
+
automake --add-missing --copy
  autoconf
+
autoconf
  
  ./configure --enable-optimized
+
./configure --enable-optimized
  
  nohup make > make_mapguide.log
+
nohup make > make_mapguide.log
  
= Here be Dragons - Uncharted territory not yet tested =
+
nohup make install > install_mapguide.log
  
make install
+
If you want to use webstudio, copy the files to the webserverextension folder:
  
Not sure yet if these are needed...
+
cp -fpR /home/administrator/mgsvn/Web/src/webstudio /usr/local/mapguideopensource/webserverextensions/www/webstudio
  
sudo chown administrator /usr/lib/python2.4
+
== Start Services Manually ==
sudo chown administrator /usr/lib/python2.5
 
 
 
To activate webstudio, you have to copy the files to the webserverextension folder as follows:
 
 
 
cp -R /home/administrator/mgsvn/Web/src/webstudio /usr/local/mapguideopensource/webserverextensions/www/webstudio
 
 
 
The above command should be all one line, with a 'space' between webstudio and /usr
 
  
 +
This is an optional step, for initial testing:
  
 +
sudo /usr/local/mapguideopensource/webserverextensions/apache2/bin/apachectl restart
 +
sudo /usr/local/mapguideopensource/server/bin/mgserverd.sh
 +
 
== Set Services to Start Automatically ==
 
== Set Services to Start Automatically ==
 
'''!!!  Totally Untested - Use at OWN RISK  !!!'''
 
  
 
These steps are entirely optional, and you can do them later if you want...
 
These steps are entirely optional, and you can do them later if you want...
Line 170: Line 168:
 
Create a startup script for Mapguide server:
 
Create a startup script for Mapguide server:
  
  touch /usr/local/mapguideopensource/server/mapguidectl
+
  touch /usr/local/mapguideopensource/mapguidectl
  chmod u=rwx,go=r /usr/local/mapguideopensource/server/mapguidectl
+
  chmod u=rwx,go=r /usr/local/mapguideopensource/mapguidectl
  nano /usr/local/mapguideopensource/server/mapguidectl
+
  nano /usr/local/mapguideopensource/mapguidectl
  
 
Add the following contents:
 
Add the following contents:
  
#! /bin/sh
+
#! /bin/sh
# MapGuide init script
+
# MapGuide init script
case "$1" in
+
case "$1" in
  start)
+
start)
    echo "Starting MapGuide Server 2.0.0"
+
  echo "Starting MapGuide Server 2.0.0..."
    export GDAL_DATA="/usr/local/mapguideopensource/share/gdal"
+
  export GDAL_DATA="/usr/local/mapguideopensource/share/gdal"
    export PROJ_LIB="/usr/local/mapguideopensource/share/proj"
+
  export PROJ_LIB="/usr/local/mapguideopensource/share/proj"
    export LD_LIBRARY_PATH="/usr/local/fdo-3.3.0/:$$LD_LIBRARY_PATH"
+
  export LD_LIBRARY_PATH="/usr/local/fdo-3.3.0/:$LD_LIBRARY_PATH"
    echo "$$LD_LIBRARY_PATH"
+
  pushd /usr/local/mapguideopensource/server/bin/ >> /dev/null
    pushd /usr/local/mapguideopensource/server/bin/
+
  ./mgserver daemon
    ./mgserver start
+
  popd > /dev/null
    popd
+
  echo "... started"
    ;;
+
  ;;
  stop)
+
stop)
    echo "Stopping MapGuide Server 2.0.0"
+
  echo "Stopping MapGuide Server 2.0.0"
    pushd /usr/local/mapguideopensource/server/bin/
+
  MGPROCESS=`ps ax | grep "\.\/mgserver daemon$" | cut -d " " -f 1`
    ./mgserver stop
+
  if [ "$MGPROCESS" != "" ]
    popd
+
  then
    ;;
+
      kill $MGPROCESS
  *)
+
      echo "... stopped"
    echo "Usage: $0 {start|stop}"
+
  else
    exit 1
+
      echo "MapGuide Server not running"
    ;;
+
  fi
esac
+
  ;;
exit 0
+
*)
 +
  echo "Usage: $0 {start|stop}"
 +
  exit 1
 +
  ;;
 +
esac
 +
exit 0
  
 
Add MapGuide's control script into the system init structure:
 
Add MapGuide's control script into the system init structure:
  
  sudo ln -s /usr/local/mapguideopensource/server/mapguidectl /etc/init.d/mapguide
+
  sudo ln -s /usr/local/mapguideopensource/mapguidectl /etc/init.d/mapguide
  
 
Set up some default run level actions for MapGuide (basically, start on interactive, stop on shutdown/restart)
 
Set up some default run level actions for MapGuide (basically, start on interactive, stop on shutdown/restart)
  
 
  sudo update-rc.d mapguide defaults 35 65
 
  sudo update-rc.d mapguide defaults 35 65

Revision as of 11:17, 13 November 2007

NOT ready for Prime Time!!!

Below are instructions that will aid a user with installing FDO 3.3 and MapGuide Open Source 2.0 from SVN trunk on Ubuntu 7.10 (Gutsy Gibbon) Server. It is based on previous instructions, credit to their authors!

NOTES

By the time you read this, FDO 3.3 and MapGuide 2.0 may have their own branches in SVN. If so, just swap out references to /trunk/ with the appropriate /branch/* where necessary.

The default directory used in these instructions is called /home/administrator. This assumes that you create your primary user account with the name "administrator". If you do not, mentally adjust where necessary.

You may want to consider using a client like PuTTY to access your server's terminal via openssh-server from a different computer. This really helps with copying and pasting. If so, either ensure that you install the OpenSSH server during your basic install, or add "openssh-server" to the list of packages below.

Any time that you run a task and pipe its output to a logfile, make sure that you look at the end of the logfile when you're done to make sure that it completed successfully. If it didn't then you have the logfile to post an error report from... Here's an example of how to do this:

tail -n 30 mylogfile.log

BASIC SETUP

Install a basic Ubuntu Server 7.10 (Gutsy Gibbon). Once this is complete, you will have to add some extra packages to compile MapGuide. Make sure that you get all of these packages; the line is really long:

sudo apt-get install build-essential bison flex automake1.7 automake1.9 libtool doxygen subversion libjpeg62-dev libpng12-dev libfreetype6-dev libexpat1-dev libxalan110-dev libxslt1-dev expat libcurl4-openssl-dev libasound2-Dev python2.5-dev sun-java5-jdk

If Java fails to install, you may need to edit /etc/apt/sources.list to uncomment the multiverse repository lines and then try installing it again.

To avoid "bad fd number" errors, type the following in the terminal:

sudo dpkg-reconfigure dash

and choose No at the prompt. Be aware that this changes your default /bin/sh from dash back to bash.

Prepare your SVN profile to use the appropriate options for FDO and MapGuide. Type the following at the Terminal.

(this just sets up your initial .subversion settings folder)

svn info http://svn.osgeo.org/fdo

(edit ~/.subversion/config)

nano .subversion/config

You can enable options by removing the comments (# ) in front of them, or just add new lines to the appropriate locations.

In the Miscellany section, enable:

Use-commit-times=yes
Enable-auto-props=yes

In the Auto-Props section, add:

*.*=svn:eol-style=native
*.sh=svn:executable

Save and close the config file.

Set the SUN Java to be the default Java installation:

sudo update-java-alternatives -s java-1.5.0-sun

Edit /etc/jvm, moving "/usr/lib/jvm/java-1.5.0-sun" to the top of the list

sudo nano /etc/jvm

Edit /etc/environment so that services will know where to look for Java

sudo nano /etc/environment

(Add the following line)

JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun"

Log off and then log back on so that these settings take effect. Alternatively, export JAVA_HOME in your current session.

FDO INSTALL

In terminal type the following:

mkdir fdosvn

(be prepared to wait a long time for this command to complete, the test data takes a while to download)

svn checkout http://svn.osgeo.org/fdo/trunk fdosvn

(type in your password after the following command if prompted)

sudo mkdir /usr/local/fdo-3.3.0

(if you are not logged in as administrator, you change the userid below!)

sudo chown administrator /usr/local/fdo-3.3.0
cd fdosvn
source ./setenvironment.sh

In terminal, type the following to run the builds. Note, there will be no output from either command until completion as it is all being spooled to nohup.out. You can log into another terminal session and tail this file if you start getting antsy :-)

nohup ./build_thirdparty.sh > build_thirdparty.log
nohup ./build_linux.sh > build_linux.log

APACHE / PHP INSTALL

In Terminal type the following:

cd ~

(you should now be in /home/administrator, or whatever your $HOME is)

mkdir mgsvn
svn checkout http://svn.osgeo.org/mapguide/trunk/MgDev/ mgsvn
sudo mkdir /usr/local/mapguideopensource

(replace administrator with your userid if necessary)

sudo chown administrator /usr/local/mapguideopensource
cd mgsvn/Oem/LinuxApt

(careful when copying and pasting this line, the - got changed into . for me)

find . -name "*.gz" -exec tar xzf {} \;
nohup ./build_apt.sh > ../../build_apt.log

BUILD OEM

Perform the following:

cd ~/mgsvn/
nohup ./build_oem.sh > build_oem.log

BUILD MAPGUIDE

Go for the gusto:

aclocal
libtoolize --force
automake --add-missing --copy
autoconf
./configure --enable-optimized
nohup make > make_mapguide.log
nohup make install > install_mapguide.log

If you want to use webstudio, copy the files to the webserverextension folder:

cp -fpR /home/administrator/mgsvn/Web/src/webstudio /usr/local/mapguideopensource/webserverextensions/www/webstudio

Start Services Manually

This is an optional step, for initial testing:

sudo /usr/local/mapguideopensource/webserverextensions/apache2/bin/apachectl restart
sudo /usr/local/mapguideopensource/server/bin/mgserverd.sh

Set Services to Start Automatically

These steps are entirely optional, and you can do them later if you want...

Add Apache's control script into the system init structure:

sudo ln -s /usr/local/mapguideopensource/webserverextensions/apache2/bin/apachectl /etc/init.d/apache-mapguide

Set up some default run level actions for Apache (basically, start on interactive, stop on shutdown/restart)

sudo update-rc.d apache-mapguide defaults 30 70

Create a startup script for Mapguide server:

touch /usr/local/mapguideopensource/mapguidectl
chmod u=rwx,go=r /usr/local/mapguideopensource/mapguidectl
nano /usr/local/mapguideopensource/mapguidectl

Add the following contents:

  1. ! /bin/sh
  2. MapGuide init script

case "$1" in

start)
  echo "Starting MapGuide Server 2.0.0..."
  export GDAL_DATA="/usr/local/mapguideopensource/share/gdal"
  export PROJ_LIB="/usr/local/mapguideopensource/share/proj"
  export LD_LIBRARY_PATH="/usr/local/fdo-3.3.0/:$LD_LIBRARY_PATH"
  pushd /usr/local/mapguideopensource/server/bin/ >> /dev/null
  ./mgserver daemon
  popd > /dev/null
  echo "... started"
  ;;
stop)
  echo "Stopping MapGuide Server 2.0.0"
  MGPROCESS=`ps ax | grep "\.\/mgserver daemon$" | cut -d " " -f 1`
  if [ "$MGPROCESS" != "" ]
  then
     kill $MGPROCESS
     echo "... stopped"
  else
     echo "MapGuide Server not running"
  fi
  ;;
*)
  echo "Usage: $0 {start|stop}"
  exit 1
  ;;

esac exit 0

Add MapGuide's control script into the system init structure:

sudo ln -s /usr/local/mapguideopensource/mapguidectl /etc/init.d/mapguide

Set up some default run level actions for MapGuide (basically, start on interactive, stop on shutdown/restart)

sudo update-rc.d mapguide defaults 35 65