WordPress kickstart, del 2

Som jag lovade i kommentarerna till förra inlägget, här kommer scriptet som låter dig sätta upp en WordPress-site under minuten. Perfekt för utveckling och test med andra ord.
Jag förutsätter en del i koden. Till exempel bör du ha nginx som webbserver med en apachelik struktur för virtual hosts, dvs en katalog /etc/nginx/sites-available där alla virtual hosts är definierade, och en katalog /etc/nginx/sites-enabled, där de för tillfället aktiverade servrarna är inlänkade.

Men här är hela härligheten, lycka till. Tänk på att detta använder jag bara på min egen utvecklings-server, inte i någon delad miljö. Det finns ingen kontroll av input eller andra säkerhetsåtgärder. Använd på egen risk.

###########################################
# Constants, set and forget
###########################################
# temp storage for the wordpress tarball
TMP_STORAGE=wptemp

# web root for the wordpress site
WWWROOT=/var/www

# Privileged db use/pwd for creating database and granting rights
DBROOT=badass
DBROOTPWD=badass

# Database owner/pwd for the WordPress tables
DBUSER=dbuser
DBPWD=dbuser

# user:group for the web server
WWWUSER=nginx
WWWGRP=nginx

# network device used for detecting external ip address
DEVICE=eth0

###########################################
# ok, no touching down there

# Get the WordPress stuff, the nightly build, unzip it
cd $TMP_STORAGE
wget http://wordpress.org/nightly-builds/wordpress-latest.zip
unzip wordpress-latest.zip

# Get the site name
echo -n "Domain name? : "
read -e WP_DIR

# mv the WordPress files to their final destination. 
# we will add web server config later
cp -R wordpress ${WWWROOT}/${WP_DIR}
rm -rf wordpress*

# Create virtual host config for nginx. 
# Use the template below and then replace the site name
ngx_template=$(cat < /etc/nginx/sites-available/${WP_DI
R}.conf
ln -s /etc/nginx/sites-available/${WP_DIR}.conf /etc/nginx/sites-enabled/

# Create mysql database
dbname=${WP_DIR//[\.-]/_}
mysql -u ${DBROOT} -p${DBROOTPWD} < ${WWWROOT}/${WP_DIR}/wp-config.php

chown ${WWWUSER}:${WWWGRP} ${WWWROOT}/${WP_DIR}/wp-config.php
rm ${WWWROOT}/${WP_DIR}/wp-config-sample.php

# Reload web server
/etc/init.d/nginx reload

echo "Done!"
echo "Add this to your hosts file:"
echo ` ifconfig ${DEVICE} | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d
 " " -f 1` ${WP_DIR}