Lets create some folders with a meaningful name
cd /var/www mkdir example.com mkdir -p example.com/public_html mkdir -p example.com/log mkdir -p example.com/backups mkdir -p example.com/src
Now lets setup the vhost config
cd /etc/apache2/sites-available/ sudo nano example.com.conf
paste this in there (ctrl + o to save, ctrl + x to exit)
<VirtualHost *:80> ServerAdmin marc@example.com ServerName example.com ServerAlias www.example.com DirectoryIndex index.html index.php DocumentRoot /var/www/example.com/public_html LogLevel warn ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/access.log combined </VirtualHost> <Directory /var/www/example.com/public_html> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
Make that live and restart Apache
a2ensite example.com.conf service apache2 restart
Download, decompress and cleanup
cd /var/www/example.com/src wget http://wordpress.org/latest.tar.gz tar -zxvf /var/www/example.com/src/latest.tar.gz mv /var/www/example.com/src/latest.tar.gz /var/www/example.com/src/wordpress-`date "+%Y-%m-%d"`.tar.gz cp -R /var/www/example.com/src/wordpress/* /var/www/example.com/public_html/ rm -rf /var/www/example.com/src/wordpress/
Correct the the file permissions (as you probably lazily did this all with root)
chown -R www-data:www-data /var/www/example.com/public_html
got to http://example.com and run the setup.