Search form

Bash: WordPress Installer

A basic WordPress installer in Bash. Assumes Ubuntu 14.04 LTS, so adjust as necessary. The end-of-line backslashes here are added for ease of display, so remove them before running this.

#!/bin/bash
# Set sitename and directory for WordPress
WPDIR=/var/www/wordpress;
SITENAME=mydomain.com;
EMAIL=myemail@somewhere.com;
 
# Download latest WordPress and untar it
wget https://wordpress.org/latest.zip;
unzip latest.zip;
mv wordpress/* $WPDIR;
 
# Set permissions on /var/www/wpdir to web user
# Assumes Debian/Ubuntu; for Fedora/CentOS use apache:apache
chown -hR www-data:www-data $WPDIR;
 
# Write an Apache virtual host file for
# Again assumes Debian/Ubuntu, for Fedora/CentOS use httpd instead of apache2, etc.
echo -e "\n\tServerAdmin $EMAIL\n\tServerName $SITENAME\n\tDocumentRoot \
$WPDIR\n" > /etc/apache2/sites-available/$SITENAME.conf;
a2ensite $SITENAME.conf;
service apache2 restart;
 
# Set up database
mysql -uroot -p -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET='utf8'; \
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES, \
CREATE TEMPORARY TABLES ON wordpress.* TO 'wp-user'@'localhost' IDENTIFIED BY 'wp-password'; \
FLUSH PRIVILEGES;"

Categories: