These are the steps I took to install Glassfish 3.1.2 on Ubuntu 11.10.
I should point out that I used a Proxmox KVM virtual server for this. I first tried an OpenVZ virtual server but kept running into an error: "There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server." After some googling I decided this error had something to do with the networking which is significantly different on OpenVZ than KVM so I abandoned the OpenVZ container and created a KVM virtual host.
These steps are a combination of two other guides in order to provide an internal Glassfish server that is password protected (
here and
here).
Before I began I installed Ubuntu 11.10 server (64-bit) on the Proxmox KVM virtual machine and updated to the latest available updates then backed-up the virtual machine.
- Install Java (I chose the natively available version of Java, openjdk):
~# sudo apt-get install openjdk-7-jdk
- Install the unzip utility (not included by default in Ubuntu 11.10):
~# sudo apt-get install unzip
- Create user and group to install and run Glassfish (I chose glassfish and glassfishadm):
~# sudo adduser --home /home/glassfish --system --shell /bin/bash glassfish
~# sudo groupadd glassfishadm
~# sudo usermod -a -G glassfishadm glassfish
- Change to glassfish user:
~# sudo su - glassfish
- Get Glassfish zip:
~# wget http://download.java.net/glassfish/3.1.1/release/glassfish-3.1.1.zip
- Unzip glassfish and move it to root of glassfish user home folder:
~# unzip glassfish-3.1.2.zip
~# mv glassfish3/* .
~# rm -r glassfish3
~# rm glassfish-3.1.2.zip
- Change owner and group of entire folder:
~# chown -R glassfish *
~# chgrp -R glassfishadm *
- Exit glassfish user:
~# exit
- Create script to start and stop Glassfish server at /etc/init.d/glassfish. This script will use the glassfish user to start and stop the Glassfish instance so that it does not run as root:
#!/bin/bash
case "$1" in
start)
su - glassfish -c "/home/glassfish/bin/asadmin start-domain domain1"
;;
stop)
su - glassfish -c "/home/glassfish/bin/asadmin stop-domain domain1"
;;
restart)
su - glassfish -c "/home/glassfish/bin/asadmin stop-domain domain1"
su - glassfish -c "/home/glassfish/bin/asadmin start-domain domain1"
;;
*)
echo "usage: $0 {start|stop|restart}"
;;
esac
exit 0
- Set script to run at boot:
~# sudo chmod u+x /etc/init.d/glassfish
~# sudo update-rc.d glassfish defaults
- Set admin password (default password for admin is blank):
~# sudo su - glassfish -c "/home/glassfish/bin/asadmin --user admin change-admin-password"
Enter admin password> _
Enter new admin password>
Enter new admin password again>
Command change-admin-password executed successfully.
- Set security on Glassfish:
~# sudo su - glassfish -c "/home/glassfish/bin/asadmin enable-secure-admin"
- Start the server:
~# sudo /etc/init.d/glassfish start