Skip to content

Instantly share code, notes, and snippets.

@edtoon
Last active December 21, 2015 20:00
Show Gist options
  • Select an option

  • Save edtoon/6358598 to your computer and use it in GitHub Desktop.

Select an option

Save edtoon/6358598 to your computer and use it in GitHub Desktop.
example mod_vhost_dbd / wildcard hosting server
#########################
# install binary stuffs #
#########################
apt-get install apache2 apache2-prefork-dev libaprutil1-dbd-mysql unzip mysql-server
mkdir -p /usr/local/src/mod_vhost_dbd
cd /usr/local/src/mod_vhost_dbd
wget http://dbd-modules.googlecode.com/files/dbd-modules-1.0.6.zip
unzip dbd-modules-1.0.6.zip
apxs2 -c mod_vhost_dbd.c
apxs2 -i mod_vhost_dbd.la
###################
# configure mysql #
###################
TMPFILE=`mktemp`
echo -n > $TMPFILE
chmod 0600 $TMPFILE
cat >> $TMPFILE << __EOF__
CREATE DATABASE demo;
USE demo;
GRANT SELECT, INSERT, UPDATE, DELETE ON demo.* TO 'demo'@'localhost' IDENTIFIED BY 'demo';
FLUSH PRIVILEGES;
CREATE TABLE IF NOT EXISTS apachevhost (
serverName varchar(128) not null,
documentroot varchar(255) not null,
primary key(serverName)
);
__EOF__
mysql < $TMPFILE
rm $TMPFILE
unset TMPFILE
####################
# configure apache #
####################
cat > /etc/apache2/sites-available/demo << __EOF__
LoadModule dbd_module /usr/lib/apache2/modules/mod_dbd.so
LoadModule vhost_dbd_module /usr/lib/apache2/modules/mod_vhost_dbd.so
<VirtualHost *:80>
ServerName *
DocumentRoot "/var/www"
DBDriver mysql
DBDParams host=127.0.0.1,user=demo,pass=demo,dbname=demo
DBDocRoot "SELECT documentRoot FROM apachevhost WHERE serverName = %s" HOSTNAME
</VirtualHost>
__EOF__
a2dissite default
a2ensite demo
service apache2 reload
##############
# add a site #
##############
mkdir -p /usr/local/imprev/sites/123mainstreet
TMPFILE=`mktemp`
echo -n > $TMPFILE
chmod 0600 $TMPFILE
cat >> $TMPFILE << __EOF__
INSERT INTO demo.apachevhost (serverName, documentroot)
VALUES ('123mainstreet.demo.subdue.net', '/usr/local/imprev/sites/123mainstreet');
__EOF__
mysql -udemo -pdemo < $TMPFILE
rm $TMPFILE
unset TMPFILE
echo "<b>hi paul</b>" > /usr/local/imprev/sites/123mainstreet/index.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment