In the last installment, I got the Visor driver working. My sitescooper process also requires that I have a local web server (long story), so I needed Apache. It was already there and running (curiously, Apache 1.3.34, not Apache 2), and it was no problem to point the DocumentRoot to the right place.
But when I tested my local site, I discovered that although I could see the text on my website, I couldn't see any of the images. Furthermore, if I right-clicked on any of those images and tried "View image", the link was pointing to the right place (http://localhost/images/foo.jpg). The file (/path/to/mysite/images/foo.jpg) existed with all the right permissions. What was going on?
/var/log/apache/error.log gave me the clue. When I was trying to view http://localhost/images/foo.jpg, apache was throwing this error:
[error] [client 127.0.0.1] File does not exist: /usr/share/images/foo.jpg/usr/share/images? Huh?
Searching for usr/share/images in /etc/apache/httpd.conf gave the answer. It turns out that Ubuntu, in their infinite wisdom, has decided that no one would ever want a directory called images in their webspace. Instead, they set up an alias so that any reference to /images gets redirected to /usr/share/images.
Anyway, the solution is to comment out that stanza of httpd.conf:
<IfModule mod_alias.c> # Alias /icons/ /usr/share/apache/icons/ # # <Directory /usr/share/apache/icons> # Options Indexes MultiViews # AllowOverride None # Order allow,deny # Allow from all # </Directory> # # Alias /images/ /usr/share/images/ # # <Directory /usr/share/images> # Options MultiViews # AllowOverride None # Order allow,deny # Allow from all # </Directory> </IfModule>
I suppose it's nice that they provided an example for how to use mod_alias. But at the cost of breaking any site that has directories named /images or /icons? Is it just me, or is that a bit crazy?
[ 21:55 May 13, 2007 More linux | permalink to this entry ]