I was asked to implement a chat server and I did run into a few snags although overall; it wasn’t too bad of an experience.  I’ve noted the issues and their resolution for everyone’s benefit so enjoy!  This post is kind of in a “note form”, a list of commands without too much chatter.  If you have questions feel free to ask.

Install instrucations: OpenFire Chat Server,Ubuntu with Red5

Reference: http://wp.evolutioncreations.com/2008/05/installing-openfire-on-ubuntu-804

Install Core Components:

Open a terminal, command prompt or whatever you want to call it :)

sudo -i

Type in your password and hopefully you’ll get a prompt with root access

apt-get install apache2

apt-get install php5 libapache2-mod-php5

/etc/init.d/apache2 restart

apt-get install mysql-server

apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

nano /etc/php5/apache2/php.ini

At the bottom of that file add this line:

extension=mysql.so

Save it, usually I have to do a ctl+alt+x if I’m ssh’d to the machine or if you’re right on the console just ctl+x.

/etc/init.d/apache2 restart

Install Java

apt-get install sun-java6-bin

That’s pretty much it for installing your core components, Apache, PHP, MySQL and Java.

Preliminary Troubleshooting issues to look out for:

Issue: Apache PhpMyAdmin issue fix – I had some errors with Apache2 and PhpMyAdmin because of missing conf files

Does /etc/apache2/conf.d/phpmyadmin.conf exist? If not, does /etc/phpmyadmin/apache.conf exist?

If the first doesn’t exist and the second does, try this “fix”:

ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

/etc/init.d/apache2 restart

Issue: PhpMyAdmin issue

nano /etc/phpmyadmin/htpasswd.setup
* comment out the admin section

# admin:*

Pre-configuration for OpenFire:

Creating the DB’s – this is where I part ways with the reference site

MySQL Commands:

mysql -h localhost -u root -p

create database openfire;

CREATE USER ‘openfire’@’localhost’ IDENTIFIED BY ‘whateverpasswordyouwanthere’;

grant all on *.* to ‘openfire’@’%’ identified by ‘whateverpasswordyouusedhere’; flush privileges;

Now to “quit” your mysql prompt type in:  \q

* Note that you can call your database and user anything you want, I use “openfire” out of convenience.

OpenFire Installation:

Download the latest release:

wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.6.4_all.deb <– Can be whatever latest is

*Note:   it downloads the files as “downloadServlet?filename=openfire%2Fopenfire_3.6.4_all.deb” so you need to do a:
mv downloadServlet?filename=openfire%2Fopenfire_3.6.4_all.deb openfire_3.6.4_all.deb

dpkg -i openfire_3.6.4_all.deb
Browse to: http://yourhost.com:9090 it can also be http://ipaddresshere:9090

*Note: http://yourhost.com:9091 ← Secure Chat Channel

I think you get an “installation” page and you don’t have to logon the first time you hit that URL, it’ll walk you through the configuration upon first use, creating username and password, etc.

*Note: PhpMyAdmin Page URL: http://yourhost.com/phpmyadmin or http://ipaddresshere/phpmyadmin

Username:   root

Password:  Whatever_you_specified_at_setup_of_MySQL

*Note worthy:

Plugins directory for OpenFire on Ubuntu: /usr/share/openfire

Installing Red5 Plugin:

Site: http://www.igniterealtime.org/projects/openfire/plugins-beta.jsp

cd /usr/share/openfire/plugins

wget http://www.igniterealtime.org/projects/openfire/plugins-beta/red5.war

/etc/init.d/openfire restart

That should have downloaded the red5.war file and restarted openfire which THEN creates a “red5” directory in your plugins folder, the “red5” directory in the plugins folder will NOT be there until you do the above steps.

Red5 URL: http://yourhost.com:7070/red5/red5.html or http://ipaddress:7070/red5/red5.html

You can now login to your OpenFire Chat Server and navigate to the plugins directory, there you’ll see red5 in the list!

http://yourhost.com:9090/plugin-admin.jsp

Navigate to & configure your options for the red5 plugin:

http://yourhost.com:9090/plugins/red5/conf?action=display

Here’s the “sparkweb” page WITH Red5:

http://yourhost.com:7070/red5/sparkweb/index.html

Here’s the “sparkweb” page WITHOUT Red5:

http://yourhost.com:9090/login.jsp

Lastly!  Here’s where you can find the red5-plugin for the SPARK Chat Client:  /usr/share/openfire/plugins/red5/spark/red5-plugin.jar – just drop it in the plugins folder “C:\Program Files\Spark\plugins”, restart SPARK.

One of the ONLY bummers is the “video” on the web chat interface is tiny, I haven’t yet played with it enough to see if there are any options to make the video larger so it’s actually useful.  You can use the Red5 server for a lot of things not just OpenFire Chat.

Pidgin IM Settings for OpenFire

Here are my settings for Pidgin that worked over a secure connection.

Basic Tab:

Username: Pretty straight forward one :p

Domain: This must be the name of your chat server (mine was “chat”)

Resource: I left that blank

Password: Again; pretty straight forward :p

* Remember password, warning – it’s saved in an XML file in plain text

Advanced Tab:

Connection Security: Ese encryption if available (note that if you mandate this setting it doesn’t work but if it’s “optional” it will choose to use the secure connection over the non secured one if you have port 5223 open to your chat server).  After setting this I then went back and made it mandatory, not sure if setting it mandatory by default will work so let me know!  :)

Connection port: 5222 (5223 didn’t work even though I confirmed the port is open)

Connect server: Whatever yours is, maybe an IP (10.0.0.200) or maybe a FQDN like chat.imawesome.net.  * I recommend using the FQDN in case you change IP’s you don’t have to mess around.

Proxy Tab:

Proxy type: No Proxy

Once you get all those settings in you’re golden!  This is only if you want to use Pidgin IM as a chat client.  If you’re going to use the web chat feature with “fastpath” you need to have the spark chat client (which is actually pretty nice!).