LAMP & Ubuntu

This should be easier, but I think made harder because I corrupted my Firefox applications helper list, and then chose the wrong way out

My problem, the browser tries to download index.phtml, in retrospect because, I believe that the module wasn’t properly installed into apache. Using Ubuntu 9.04

The Right Way

This page, Apache MySQL PHP at https://help.ubuntu.com/ is the bible.

apt-get install  apache2 php5 php5-mysql libapache2-mod-php5 php5-mysql mysql-server

I am running in a virtual box so I needed to create a /etc/apache2/conf.d/fqdn. There wasn’t one on my system, it needs the line

ServerName localhost

I suspect that fixed it, and that my errors were caused by not initially correctly installing libapache2-mod-php5. I have proved that my install works by using Opera. Now to remove the .phtml line from the firefox browser and make the vm a server.

Short URL’s

Microblogging makes this important. There are a bunch, but I prefer http://is.gd because its five characters long.

Services

Other’s I’ve found and used include

A number of people publish top 10 lists, you can use google to find them.

Problem definition

I am interested in writing or implementing a url-shortener, for use inside the firewall, or implementing through an API. It seems quite simple until you consider performance at scale. My first thought was to use a database with an identifier/sequence data type as the key to the hashing algorithm, since its best to keep a record of the URL’s issued so if people ask twice for the same url it can be reused.

The second part is resolving the URL on request. Is this just an apache solution with a very large redirect file?

Some research

I used google: url shortner howto, to see what it came up with.

Two interesting finds included

Ideas

Idea No 1 was to use a database identifier type and hash it, I was going to investigate if we could use a web server redirection file, or if I’d have to write something using a db retrieval. However both these the database transactions introduce serial bottlenecks and inhibit scalability.

So can pre-allocate the sh.urls in blocks , and allocate them using hadoop? Is hadoop a sensible solution for “find me next unused”, or perhaps it doesn’t matter; its just find me one unused slot?

Apache as a Proxy Server for Snipsnap

This article describes my efforts to implement the configuration described at http://www.snipsnap.org in the Apache as a Proxy.

Using the Java Server

Using Version 1.0b3 seems to work as documented on http://www.snipsnap.org, the problems documented below are either tomcat’s or belong to the .war implementation.

Using Tomcat

I have done this using

  • A Cobalt Qube running Linux 2.2 (Yeah, I know but its what I have got!).
  • Apache V1.3.29
  • Snipsnap Version 1.0b3 Uttoxeter .war
  • Tomcat Version 4.1

because this is an appliance, I can’t turn Apache off, nor is it wise to upgrade it. So I implemented SnipSnap as .war on port 8080 and am now seeking to hide this from the world using the Apache proxy capability. This is to create a decent single naming convention accross my web space.I had some problems, but basically, the following lines worked for me

httpd.conf

ProxyRequest off
ProxyPass        /snipsnap     http://davelevy.info/snipsnap
ProxyPassReverse /snipsnap     http://davelevy.info/snipsnap

The SnipSnap configuration

I set conf using the GUI provided

app.real.port=8080
app.real.path=/snipsnap
app.real.host=davelevy.info

It seems to be working quite nicely, but many of the URLs held in snipsnap are now port aware, so I may have some legacy problems. I recommend anyone following me try and fix this before they insert any content.

ooOOOoo

This was copied across from my snipsnap on 7th June 2013. The bliki had been rebuilt several times but this page was not updated. I had got to the point where I installed it with the Java Server, and then used apache as a proxy to hide the port.

Further history and practice is documented at my user record on http://snipsnap.org.

The notes above say that I couldn’t turn the webserver off, that wasn’t true, it was possible to do so using the CLI, once one had an ssh connection.