Last active
December 21, 2015 20:00
-
-
Save edtoon/6358598 to your computer and use it in GitHub Desktop.
example mod_vhost_dbd / wildcard hosting server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ######################### | |
| # 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