Finally got this figured out. The
Alias /phpmyadmin/ /usr/share/phpmyadmin/ in /etc/apache2/conf.d/phpmyadmin.conf is more or less meaningless. I'm not sure if that is a product of filesystem security or virtual path collisions or a combination of both. However, adding a symbolic link of
ln -s /usr/share/phpmyadmin /srv/www/<domain_name>/html (which is my virtual host directory structure) works. I'd tried this before but perhaps was too impatient as it seems it took an apache2 restart (for a file system change??) and several browser refreshes for this to "take effect" (and, yep, I've always had "FollowSymLinks" in my configs). Lord. So now it works. Any vhost with this link can use the phpmyadmin.
If anyone is curious or has this problem, here is how I set up my Apache topology (Debian Lenny) with Virtual Hosts, PHP5, fcgid and phpMyAdmin (assuming you have already installed mysql-server successfully):
Software installation:
Code:
apt-get install apache2 libapache2-mod-fcgid php5-cgi php5-common php5-gd php5-mysql phpmyadmin
Post-install Virtual Hosts setup:Create filesystem topology
Code:
mkdir -p /srv/www/default/html
mkdir -p /srv/www/default/logs
mkdir -p /srv/www/<domain_name1>/html
mkdir -p /srv/www/<domain_name1>/logs
mkdir -p /srv/www/<domain_name2>/html
mkdir -p /srv/www/<domain_name2>/logs
etc...for each domain you want to host as a virtual host
fcgid setup:Configure fcgid (a faster alternative to mod_php5)
Code:
rm /etc/apache2/mods-available/fcgid.conf
vi /etc/apache2/mods-available/fcgid.conf
<IfModule mod_fcgid.c>
MaxRequestsPerProcess 500
AddHandler fcgid-script .php .fcgi
AddHandler cgi-script .cgi .pl
FCGIWrapper "/usr/bin/php-cgi" .php
</IfModule>
Virtual Hosts configuration setup:Configure the "default" Virtual Host (
http://<your_linode_ip_address>)
Code:
rm /etc/apache2/sites-available/default
vi /etc/apache2/sites-availabe/default
<VirtualHost *:80>
ServerAdmin <you>@<yourdomain.tld>
DocumentRoot /srv/www/default/html/
<Directory />
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
</Directory>
ErrorLog /srv/www/default/logs/error.log
LogLevel warn
CustomLog /srv/www/default/logs/access.log combined
</VirtualHost>
Configure other Virtual Hosts (
http://www.) - add one of these for each domain you want to host; I will put both <domain_name1> and <domain_name2> here for illustrative purposes as they are referenced above.
Code:
vi /etc/apache2/sites-availabe/<domain_name1>
<VirtualHost *:80>
ServerAdmin <you>@<yourdomain>
ServerName <domain_name1>
ServerAlias www.<domain_name1>
DocumentRoot /srv/www/<domain_name1>/html/
<Directory />
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
</Directory>
ErrorLog /srv/www/<domain_name1>/logs/error.log
LogLevel warn
CustomLog /srv/www/<domain_name1>/logs/access.log combined
</VirtualHost>
a2ensite <domain_name1>
Code:
vi /etc/apache2/sites-availabe/<domain_name2>
<VirtualHost *:80>
ServerAdmin <you>@<yourdomain>
ServerName <domain_name2>
ServerAlias www.<domain_name2>
DocumentRoot /srv/www/<domain_name2>/html/
<Directory />
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
</Directory>
ErrorLog /srv/www/<domain_name2>/logs/error.log
LogLevel warn
CustomLog /srv/www/<domain_name2>/logs/access.log combined
</VirtualHost>
a2ensite <domain_name2>
phpMyAdmin post-configure setup:Code:
ln -s /usr/share/phpmyadmin /srv/www/default/html
(I set up my default as the only site with access to phpMyAdmin)
Restart Apache:Code:
/etc/init.d/apache2 restart
I'm glad this is fixed and hope this helps others.