/dev/trouble
Eric Roller's Development Blog

phpMyAdmin

- Posted in General by

I see from my web-server log that people like to guess the path to phpMyAdmin in all different variations, colours, shapes and sizes. Now, this is exactly why I have not installed it in a fashion that makes it visible to anyone other than me. Better yet, come to think of it, I have not installed it at all and I don't think I ever will. But if I do, you should probably search for all variations, colours, shapes and sizes of phpMyNeatlyStashedAwayAndHiddenInstallationOfMyAdmin.

This blocking effort appears to have started in the Windows world but it is applicable to all UNIX-based systems where a hosts file is used.

Basically, copy the contents of this example hosts file to the end of your /etc/hosts file (requires root access).

[more]

In /etc/hosts, make sure not to remove the pre-defined settings, but you may comment out the duplicate "127.0.0.1 localhost" line. It should look similar to this:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

# Custom entries (not shown)


# This MVPS HOSTS file is a free download from:            #
# http://www.mvps.org/winhelp2002/                         #
#                                                          #
# Notes: the browser does not read this "#" symbol         #
# You can create your own notes, after the # symbol        #
# This *must* be the first line: 127.0.0.1     localhost   #
# *********************************************************#
# ---------------- Updated: Sept-02-2009 ------------------#
# *********************************************************#
#                                                          #
# Entries with comments are all searchable via Google.     #
#                                                          #
# Disclaimer: this file is free to use for personal use    #
# only. Furthermore it is NOT permitted to copy any of the #
# contents or host on any other site without permission or #
# meeting the full criteria of the below license terms.    #
#                                                          #
# This work is licensed under the Creative Commons         #
# Attribution-NonCommercial-ShareAlike License.            #
# http://creativecommons.org/licenses/by-nc-sa/3.0/        #

##DUPLICATE:
##127.0.0.1  localhost

#start of lines added by WinHelp2002
# [Misc A - Z]
127.0.0.1  fr.a2dfp.net
127.0.0.1  m.fr.a2dfp.net
127.0.0.1  ad.a8.net
[...]

Finally, remember to check the example hosts file for updates; it is updated quite frequently.

To automate this process, I have created this script. You would need to execute it with "sudo" (or it could be placed into /etc/periodic/monthly ?).

#!/bin/csh
# File: host_db_update

echo "Started /etc/hosts update"

# Download the current version without progress info:
curl -so /tmp/hosts.zip http://www.mvps.org/winhelp2002/hosts.zip

if (-s /tmp/hosts.zip) then
    # Unzip quietly and convert CRLF -> LF
    unzip -aoqq -d /tmp /tmp/hosts.zip HOSTS
    rm /tmp/hosts.zip
endif

if (! -fs /tmp/HOSTS) then
    echo "Error: Download of hosts file failed."
    rm -f /tmp/HOSTS
    exit 1
endif

set tmpdate = `grep -m 1 Updated: /tmp/HOSTS|awk '{print $4}'`
set etcdate = `grep -m 1 Updated: /etc/hosts|awk '{print $4}'`

if (X"${tmpdate}" == X"${etcdate}") then
    echo "Info: Hosts file is already up-to-date (${etcdate})"
    rm -f /tmp/HOSTS
    exit 0
endif

# Remove the previous MVPS additions from /etc/hosts
sed '/^# This MVPS HOSTS/,$ d' /etc/hosts > /tmp/hosts.new

# Append the new settings
sed '/localhost$/ s/^/##/' /tmp/HOSTS >> /tmp/hosts.new
rm /tmp/HOSTS

# Make a backup and move the new file:
cp /etc/hosts{,~}
mv /tmp/hosts.new /etc/hosts

# Print a message:
echo "Updated /etc/hosts with settings from ${tmpdate}"
exit 0