#!/bin/sh set -e _host="$_local_hostname.$_local_domain" _user_root='root' _ssh_cmd_root="ssh $_user_root@$_host" _scp_to="$_user_root@$_host" _ssh_cmd_www="sshpass -p$_passwd_www ssh $_user_www@$_host" _ssh_cmd_www_cd="$_ssh_cmd_www cd /var/www/html/wordpress &&" _wp_url="http://$_host" printf "\nInstalling requirements ..." $_ssh_cmd_root 'apt-get update && apt-get -y upgrade && apt-get -y install apache2 mariadb-server php php-common libapache2-mod-php python-mysqldb php-gd php-ssh2 php-mysql php-dom php-simplexml php-xml php-xmlreader php-curl php-ftp php-iconv php-imagick php-mbstring php-posix php-sockets php-tokenizer php-zip' printf "\nConfiguring Apache ..." scp ./dev/config/000-default.conf "$_scp_to":/etc/apache2/sites-enabled/000-default.conf $_ssh_cmd_root 'a2enmod rewrite; systemctl restart apache2' printf "\nSetting %s permissions ..." "$_user_www" $_ssh_cmd_root "echo \"$_user_www:$_passwd_www\" | chpasswd" # TODO $_user_www 's home directory is hardcoded here - should maybe make it # into a variable $_ssh_cmd_root 'sed -i '\''s+www-data:/var/www:/usr/sbin/nologin+www-data:/var/www:/bin/bash+'\'' /etc/passwd' $_ssh_cmd_root 'chown -R www-data: /var/www' printf "\nCreating database ..." # database is insecure (no root password, remote root login, etc) - but not # worried because it's in a trusted dev environment with no remote connections. # TODO ensure production database is secure TODO $_ssh_cmd_root 'echo "create database wordpress;" | mysql' _mysql_cmd='GRANT ALL PRIVILEGES ON wordpress.* TO \"wordpress\"@\"localhost\" IDENTIFIED BY \"'"$_wp_db_passwd"'\";' $_ssh_cmd_root "echo \"$_mysql_cmd\" | mysql" $_ssh_cmd_root 'echo "FLUSH PRIVILEGES;" | mysql' printf "\nInstalling WordPress CLI ...\n" $_ssh_cmd_root "wget -nv -O /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x /usr/local/bin/wp" printf "\nInstalling WordPress ..." $_ssh_cmd_www "cd /var/www/html && wp core download --path=wordpress --skip-content" printf "\nConfiguring WordPress ..." $_ssh_cmd_root 'mkdir -p /var/www/.wp-cli/cache && chown -R www-data: /var/www/.wp-cli' $_ssh_cmd_www_cd "wp config create --dbname=wordpress --dbuser=wordpress --dbpass='$_wp_db_passwd'" $_ssh_cmd_www 'sed -i "s/