Compare commits

..

5 Commits

Author SHA1 Message Date
Ray Elliott 6aaf86df78 wip 2020-09-08 21:01:00 +01:00
Ray Elliott 8a3c354254 remove plugin uninstall 2020-09-08 20:33:56 +01:00
Ray Elliott bbc106c018 use user and root ssh where appropriate 2020-09-08 18:59:02 +01:00
Ray Elliott e3186d9cc9 re-organise config structure 2020-09-08 18:24:06 +01:00
Ray Elliott d3549ec9ed update 2020-09-08 17:37:58 +01:00
38 changed files with 198 additions and 223 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
files/private files/private
*.secret data/

View File

@ -1,4 +0,0 @@
## apache configuration
#
## uncomment if using apache
apache2_version='latest'

8
config/local/database Normal file
View File

@ -0,0 +1,8 @@
export mariadb_version='latest'
#mysql_version='latest'
export db_root_pass='9483ujtej0--=0FFFdl'
export db_name='wordpress'
export db_user='wordpress'
export db_pass='wordpress'

View File

@ -1,9 +1,18 @@
# local specific options # local specific options
## export if using local development environment ## export if using local development environment
export domain='test123.home' export domain='thecampsitebible.home'
export url='http://test123.home' export url='http://thecampsitebible.home'
# set to anything other than the empty string to set up a dev environment # set to anything other than the empty string to set up a dev environment
export dev_env='true' export dev_env='true'
## user configuration
export user='ray'
export user_pass='ray'
export group='ray'
## ssh configuration
export ssh_root='root@thecampsitebible.home'
export ssh_user='ray@thecampsitebible.home'

View File

@ -1,4 +0,0 @@
## uncomment if using mariadb
mariadb_version='latest'
db_root_pass='9483ujtej0--=0FFFdl'

View File

@ -1,3 +0,0 @@
## uncomment if using mysql
#mysql_version='latest'
#db_root_pass='9483ujtej0--=0FFFdl'

View File

@ -1,5 +0,0 @@
## nginx configuration
## uncomment if using nginx
#nginx_version='latest'

View File

@ -1,5 +0,0 @@
## ssh configuration
## uncomment if connecting via ssh
export ssh='root@test123.home'

View File

@ -1,6 +0,0 @@
## user configuration
## uncomment to set user
export user='ray'
export user_pass='ray'
export group='ray'

View File

@ -1,10 +1,15 @@
## litespeed configuration apache2_version='latest'
## uncomment if using litespeed
#nginx_version='latest'
## specify specific version from latest, 54, 55, 56, 70, 71, 72, 73 or 74 ## specify specific version from latest, 54, 55, 56, 70, 71, 72, 73 or 74
#export litespeed_version='latest' #export litespeed_version='latest'
## php version ######################
# litespeed specific #
######################
## litespeed php version
#export ls_lsphp_version='73' #export ls_lsphp_version='73'
## https://openlitespeed.org/kb/1-click-install/ ## https://openlitespeed.org/kb/1-click-install/

View File

@ -2,22 +2,18 @@
export wp_user='admin' export wp_user='admin'
export wp_pass='admin' export wp_pass='admin'
export wp_email='myemail@isnet.uk' export wp_email='myemail@example.com'
export wp_version='latest' export wp_version='latest'
export wp_path='/var/www/html/wordpress' export wp_path='/var/www/html/wordpress'
export wp_locale='en_GB' export wp_locale='en_GB'
export wp_title='The WordPress' export wp_title='The Campsite Bible'
export wp_db_name='wordpress'
export wp_db_user='wordpress'
export wp_db_pass='wordpress'
## list of themes to install - first one will be activated ## list of themes to install - first one will be activated
export wp_themes="twentytwenty" export wp_themes="twentytwenty"
## list of plugins to install ## list of plugins to install
export wp_plugins="akismet all-in-one-seo-pack" export wp_plugins="geodirectory"
## list of plugins to install and activate ## list of plugins to install and activate
export wp_plugins_active="" export wp_plugins_active=""

View File

@ -1,4 +0,0 @@
## apache configuration
#
## uncomment if using apache
# apache2_version='latest'

View File

@ -1,11 +0,0 @@
# cloudways configuration
. ./config/remote/cloudways.secret
cloudways_user='cloudways@rayelliott.dev'
cloudways_url='https://wordpress-453075-1468300.cloudwaysapps.com'
cloudways_ssh='test123@wordpress-453075-1468300.cloudwaysapps.com'
cloudways_db_name='mhhusspndh'
cloudways_db_user='mhhusspndh'

8
config/remote/database Normal file
View File

@ -0,0 +1,8 @@
# export mariadb_version='latest'
# export mysql_version='latest'
# export db_root_pass='9483ujtej0--=0FFFdl'
export db_name='mhhusspndh'
export db_user='mhhusspndh'
export db_pass='w9Chzh6fR4'

View File

@ -1,4 +0,0 @@
## uncomment if using mariadb
# mariadb_version='latest'
# db_root_pass='9483ujtej0--=0FFFdl'

View File

@ -1,3 +0,0 @@
## uncomment if using mysql
#mysql_version='latest'
#db_root_pass='9483ujtej0--=0FFFdl'

View File

@ -1,5 +0,0 @@
## nginx configuration
## uncomment if using nginx
#nginx_version='latest'

View File

@ -1,6 +1,15 @@
# remote specific options # remote specific options
## export if using local development environment export domain='wordpress-453075-1468300.cloudwaysapps.com.example.com'
#export domain='test123.example.com' export url='https://wordpress-453075-1468300.cloudwaysapps.com.example.com'
#export url='http://test123.example.com'
## user configuration
## uncomment to set user
# export user='ray'
# export user_pass='ray'
# export group='ray'
## ssh configuration
# export ssh_root='root@wordpress-453075-1468300.cloudwaysapps.com' # we do not have root access
export ssh_user='test123@wordpress-453075-1468300.cloudwaysapps.com'

View File

@ -1,5 +0,0 @@
## ssh configuration
## uncomment if connecting via ssh
# export ssh='root@test123.isnet.uk'

View File

@ -1,6 +0,0 @@
## user configuration
## uncomment to set user
# export user='ray'
# export user_pass='ray'
# export group='ray'

View File

@ -1,10 +1,15 @@
## litespeed configuration # apache2_version='latest'
## uncomment if using litespeed
#nginx_version='latest'
## specify specific version from latest, 54, 55, 56, 70, 71, 72, 73 or 74 ## specify specific version from latest, 54, 55, 56, 70, 71, 72, 73 or 74
#export litespeed_version='latest' #export litespeed_version='latest'
## php version ######################
# litespeed specific #
######################
## litespeed php version
#export ls_lsphp_version='73' #export ls_lsphp_version='73'
## https://openlitespeed.org/kb/1-click-install/ ## https://openlitespeed.org/kb/1-click-install/

View File

@ -1,23 +1,19 @@
## wordpress configuration - uncomment if using wordpress ## wordpress configuration - uncomment if using wordpress
# export wp_user='admin' export wp_user='cloudways@rayelliott.dev'
# export wp_pass='admin' export wp_pass='McXNn4vgua'
# export wp_email='myemail@isnet.uk' export wp_email='myemail@example.com'
# export wp_version='latest' export wp_version='latest'
# export wp_path='/var/www/html/wordpress' export wp_path='/home/453075.cloudwaysapps.com/mhhusspndh/public_html'
# export wp_locale='en_GB' export wp_locale='en_GB'
# export wp_title='The WordPress' export wp_title='The Campsite Bible'
# export wp_db_name='wordpress'
# export wp_db_user='wordpress'
# export wp_db_pass='wordpress'
## list of themes to install - first one will be activated ## list of themes to install - first one will be activated
# export wp_themes="twentytwenty" export wp_themes="twentytwenty"
## list of plugins to install ## list of plugins to install
# export wp_plugins="akismet all-in-one-seo-pack" export wp_plugins="geodirectory breeze malcare-security"
## list of plugins to install and activate ## list of plugins to install and activate
# export wp_plugins_active="" # export wp_plugins_active=""

View File

@ -18,11 +18,6 @@ for _file in ./config/$_target/* ; do
. "$_file" . "$_file"
done done
if [ "$_target" = remote ] && [ -n "$cloudways_user" ] ; then
echo "Using Cloudways - nothing to install"
exit
fi
# source script files # source script files
if [ -n "$_target_os" ] ; then if [ -n "$_target_os" ] ; then
_script_dir="./scripts/$_target_os" _script_dir="./scripts/$_target_os"
@ -35,11 +30,11 @@ fi
echo "Using Scripts in: $_script_dir" echo "Using Scripts in: $_script_dir"
# check we have ssh access # check we have ssh access
[ -z "$ssh" ] && echo "Error: no ssh configuration specified" && exit 5 [ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
# update # update
echo "Updating .." echo "Updating .."
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
apt-get -qq -y update && apt-get -qq -y upgrade apt-get -qq -y update && apt-get -qq -y upgrade
EOSSH EOSSH

View File

@ -7,7 +7,10 @@ fi
. ./"$1" . ./"$1"
ssh -T $ssh << EOSSH # check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
ssh -T $ssh_root << EOSSH
ufw allow http && ufw allow https ufw allow http && ufw allow https
@ -24,9 +27,9 @@ if [ -n "$wp_user" ] ; then
--wordpressplus "$url" \ --wordpressplus "$url" \
--wordpresspath "$wp_path" \ --wordpresspath "$wp_path" \
--dbrootpassword "$db_root_pass" \ --dbrootpassword "$db_root_pass" \
--dbpassword "$wp_db_pass" \ --dbpassword "$db_pass" \
--dbname "$wp_db_name" \ --dbname "$db_name" \
--dbuser "$wp_db_user" \ --dbuser "$db_user" \
--wpuser "$wp_user" \ --wpuser "$wp_user" \
--wppassword "$wp_pass" \ --wppassword "$wp_pass" \
&& ufw allow 7080 && ufw allow 7080

View File

@ -16,7 +16,7 @@
db_file="$wp_path/data.sql" db_file="$wp_path/data.sql"
wp db export --dbuser=wordpress --dbpass=$wp_db_pass --add-drop-table --alow-root "$db_file" wp db export --dbuser=wordpress --dbpass=$db_pass --add-drop-table --alow-root "$db_file"
tar czf /tmp/wordpress.tar.gz "$wp_path" tar czf /tmp/wordpress.tar.gz "$wp_path"
# scp # scp
rm "$db_file" rm "$db_file"

View File

@ -16,7 +16,7 @@ for _file in ./config/$_target/* ; do
done done
# check we have ssh access # check we have ssh access
[ -z "$ssh" ] && echo "Error: no ssh configuration specified" && exit 5 [ -z "$ssh_user" ] && echo "Error: no user ssh configuration specified" && exit 5
if [ -n "$wp_user" ] ; then if [ -n "$wp_user" ] ; then
. ./scripts/export-wp.sh . ./scripts/export-wp.sh

View File

@ -29,9 +29,6 @@ fi
echo "Using Scripts in: $_script_dir" echo "Using Scripts in: $_script_dir"
# check we have ssh access
[ -z "$ssh" ] && echo "Error: no ssh configuration specified" && exit 5
if [ -n "$wp_user" ] ; then if [ -n "$wp_user" ] ; then
# TODO - confirmation prompt # TODO - confirmation prompt
echo "IMPORTANT - we need a confirmation prompt here" echo "IMPORTANT - we need a confirmation prompt here"

View File

@ -5,7 +5,10 @@ if [ "$apache2_version" != 'latest' ] ; then
exit 30 exit 30
fi fi
ssh -T $ssh << EOSSH # check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
ssh -T $ssh_root << EOSSH
echo "Installing Apache2" echo "Installing Apache2"
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
echo "Installing packages .." echo "Installing packages .."

View File

@ -1,6 +1,9 @@
#!/bin/sh #!/bin/sh
ssh -T $ssh << EOSSH # check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
ssh -T $ssh_root << EOSSH
sed -i '/PubkeyAuthentication/c\PubkeyAuthentication yes' /etc/ssh/sshd_config sed -i '/PubkeyAuthentication/c\PubkeyAuthentication yes' /etc/ssh/sshd_config
sed -i '/PasswordAuthentication/c\PasswordAuthentication no' /etc/ssh/sshd_config sed -i '/PasswordAuthentication/c\PasswordAuthentication no' /etc/ssh/sshd_config

View File

@ -2,7 +2,10 @@
_home_dir="/home/$user" _home_dir="/home/$user"
ssh -T $ssh << EOSSH # check we have ssh access
[ -z "$ssh_user" ] || [ -z "$ssh_root" ] && echo "Error: user and root ssh configuration must be specified" && exit 5
ssh -T $ssh_root << EOSSH
echo "Installing packages .." echo "Installing packages .."
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
@ -36,7 +39,7 @@ if command -v php ; then
fi fi
EOSSH EOSSH
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
su "$user" su "$user"
@ -46,16 +49,14 @@ echo 'export NVM_DIR="\$HOME/.nvm"' >> "$_home_dir/.profile"
echo '[ -s "\$NVM_DIR/nvm.sh" ] && \. "\$NVM_DIR/nvm.sh"' >> "$_home_dir/.profile" echo '[ -s "\$NVM_DIR/nvm.sh" ] && \. "\$NVM_DIR/nvm.sh"' >> "$_home_dir/.profile"
EOSSH EOSSH
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
su --login "$user" su --login "$user"
. ./.profile . ./.profile
nvm install --lts --latest-npm nvm install --lts --latest-npm
EOSSH EOSSH
ssh -T $ssh << EOSSH ssh -T $ssh_user << EOSSH
su --login "$user"
. ./.profile . ./.profile
echo "Configuring neovim ..." echo "Configuring neovim ..."
npm install -g neovim npm install -g neovim

View File

@ -5,9 +5,12 @@ if [ "$mariadb_version" != 'latest' ] ; then
exit 30 exit 30
fi fi
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
_mysql_cmd="mysql -uroot -e " _mysql_cmd="mysql -uroot -e "
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
if mysql --version ; then if mysql --version ; then
echo "ERROR: unable to install MariaDb, 'mysql' already installed - aborting install" echo "ERROR: unable to install MariaDb, 'mysql' already installed - aborting install"
exit 35 exit 35
@ -24,6 +27,10 @@ ssh -T $ssh << EOSSH
$_mysql_cmd "DROP DATABASE IF EXISTS test;" $_mysql_cmd "DROP DATABASE IF EXISTS test;"
$_mysql_cmd "DELETE FROM mysql.db WHERE Db='test' OR Db='"'test\\_%'"'" $_mysql_cmd "DELETE FROM mysql.db WHERE Db='test' OR Db='"'test\\_%'"'"
$_mysql_cmd "CREATE DATABASE $db_name;"
$_mysql_cmd "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_pass';"
$_mysql_cmd "FLUSH PRIVILEGES;"
mysqladmin --user=root password "$db_root_pass" mysqladmin --user=root password "$db_root_pass"
mysqladmin --user=root --password="$db_root_pass" flush-privileges mysqladmin --user=root --password="$db_root_pass" flush-privileges
EOSSH EOSSH

View File

@ -5,9 +5,12 @@ if [ "$mysql_version" != 'latest' ] ; then
exit 30 exit 30
fi fi
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
_mysql_cmd="mysql -uroot -e " _mysql_cmd="mysql -uroot -e "
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
if mysql --version ; then if mysql --version ; then
echo "ERROR: unable to install MySQL, 'mysql' already installed - aborting install" echo "ERROR: unable to install MySQL, 'mysql' already installed - aborting install"
exit 35 exit 35
@ -24,6 +27,10 @@ ssh -T $ssh << EOSSH
$_mysql_cmd "DROP DATABASE IF EXISTS test;" $_mysql_cmd "DROP DATABASE IF EXISTS test;"
$_mysql_cmd "DELETE FROM mysql.db WHERE Db='test' OR Db='"'test\\_%'"'" $_mysql_cmd "DELETE FROM mysql.db WHERE Db='test' OR Db='"'test\\_%'"'"
$_mysql_cmd "CREATE DATABASE $db_name;"
$_mysql_cmd "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_pass';"
$_mysql_cmd "FLUSH PRIVILEGES;"
mysqladmin --user=root password "$db_root_pass" mysqladmin --user=root password "$db_root_pass"
mysqladmin --user=root --password="$db_root_pass" flush-privileges mysqladmin --user=root --password="$db_root_pass" flush-privileges
EOSSH EOSSH

View File

@ -5,10 +5,13 @@ if [ "$php_version" != 'latest' ] ; then
exit 30 exit 30
fi fi
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
if [ -n "$wp_user" ] ; then if [ -n "$wp_user" ] ; then
echo 'Installing PHP for WordPress ...' echo 'Installing PHP for WordPress ...'
ssh -T $ssh << 'EOSSH' ssh -T $ssh_root << 'EOSSH'
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
echo "Installing packages .." echo "Installing packages .."
apt-get install -qq -y php libapache2-mod-php php-fpm php-bcmath php-curl php-gd php-imagick php-mbstring \ apt-get install -qq -y php libapache2-mod-php php-fpm php-bcmath php-curl php-gd php-imagick php-mbstring \
@ -25,7 +28,7 @@ EOSSH
else else
echo 'Installing default PHP ...' echo 'Installing default PHP ...'
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
echo "Installing packages .." echo "Installing packages .."
apt-get install -qq -y php libapache2-mod-php php-mysql apt-get install -qq -y php libapache2-mod-php php-mysql

View File

@ -1,8 +1,11 @@
#!/bin/sh #!/bin/sh
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
_home_dir="/home/$user" _home_dir="/home/$user"
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
echo "Creating user .." echo "Creating user .."
useradd -m -d "$_home_dir" "$user" useradd -m -d "$_home_dir" "$user"
echo "$user:$user_pass" | chpasswd echo "$user:$user_pass" | chpasswd
@ -11,12 +14,12 @@ EOSSH
echo "Configuring ssh .." echo "Configuring ssh .."
ssh $ssh mkdir -v -p "$_home_dir/.ssh" ssh $ssh_root mkdir -v -p "$_home_dir/.ssh"
scp files/private/id_rsa "$ssh:$_home_dir/.ssh/" scp files/private/id_rsa "$ssh_root:$_home_dir/.ssh/"
scp files/id_rsa.pub "$ssh:$_home_dir/.ssh/" scp files/id_rsa.pub "$ssh_root:$_home_dir/.ssh/"
scp files/known_hosts "$ssh:$_home_dir/.ssh/" scp files/known_hosts "$ssh_root:$_home_dir/.ssh/"
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
cp -v /root/.ssh/authorized_keys "$_home_dir/.ssh/authorized_keys" cp -v /root/.ssh/authorized_keys "$_home_dir/.ssh/authorized_keys"
chown -v -R "$user:$group" "$_home_dir/.ssh" chown -v -R "$user:$group" "$_home_dir/.ssh"
@ -61,7 +64,7 @@ ssh -T $ssh << EOSSH
"$_home_dir/.config/zsh/install.sh" "$_home_dir/.config/zsh/install.sh"
EOSSH EOSSH
ssh -T $ssh << EOSSH ssh -T $ssh_root << EOSSH
chsh -s /usr/bin/zsh "$user" chsh -s /usr/bin/zsh "$user"
EOSSH EOSSH

View File

@ -1,29 +1,25 @@
echo "Installing WordPress .." echo "Installing WordPress .."
_mysql_cmd="mysql -uroot -p$db_root_pass -e " # check we have ssh access
[ -z "$ssh_user" ] || [ -z "$ssh_root" ] && echo "Error: user and root ssh configuration must be specified" && exit 5
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
# install wp-cli first # install wp-cli first
if [ ! -f /usr/local/bin/wp ] ; then if [ ! -f /usr/local/bin/wp ] ; then
wget -nv -O /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ 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 && chmod +x /usr/local/bin/wp
fi fi
EOSSH
su "$user" ssh -T $ssh_user << EOSSH
if wp core is-installed --quiet --path="$wp_path" ; then if wp core is-installed --quiet --path="$wp_path" ; then
echo "WordPress already installed" echo "WordPress already installed"
else else
# first create database and user echo "wp core download \
if command -v mysql ; then --version=$wp_version \
$_mysql_cmd "CREATE DATABASE $wp_db_name;" --path=$wp_path \
$_mysql_cmd "GRANT ALL PRIVILEGES ON $wp_db_name.* TO '$wp_db_user'@'localhost' IDENTIFIED BY '$wp_db_pass';" --skip-content \
$_mysql_cmd "FLUSH PRIVILEGES;" --locale=$wp_locale"
else
echo "ERROR: mysql not found - aborting WordPress install"
exit 40
fi
wp core download \ wp core download \
--version="$wp_version" \ --version="$wp_version" \
--path="$wp_path" \ --path="$wp_path" \
@ -31,9 +27,9 @@ else
--locale="$wp_locale" --locale="$wp_locale"
wp config create \ wp config create \
--path="$wp_path" \ --path="$wp_path" \
--dbname="$wp_db_name" \ --dbname="$db_name" \
--dbuser="$wp_db_user" \ --dbuser="$db_user" \
--dbpass="$wp_db_pass" \ --dbpass="$db_pass" \
--locale="$wp_locale" \ --locale="$wp_locale" \
--extra-php <<PHP --extra-php <<PHP
define( 'WP_DEBUG', true ); define( 'WP_DEBUG', true );
@ -54,8 +50,7 @@ printf "\nInstalling themes ..."
option='--activate' option='--activate'
for theme in $wp_themes ; do for theme in $wp_themes ; do
echo " installing $theme ..." echo " installing $theme ..."
ssh -T $ssh << EOSSH ssh -T $ssh_user << EOSSH
su "$user"
wp theme install $theme "$option" --path="$wp_path" wp theme install $theme "$option" --path="$wp_path"
EOSSH EOSSH
option='' option=''
@ -66,8 +61,7 @@ if [ -n "$wp_plugins" ] ; then
printf "\nInstalling plugins ..." printf "\nInstalling plugins ..."
for plugin in $wp_plugins ; do for plugin in $wp_plugins ; do
echo " installing $plugin ..." echo " installing $plugin ..."
ssh -T $ssh << EOSSH ssh -T $ssh_user << EOSSH
su "$user"
wp plugin install $plugin --path="$wp_path" wp plugin install $plugin --path="$wp_path"
EOSSH EOSSH
done done
@ -77,30 +71,17 @@ if [ -n "$wp_plugins_active" ] ; then
printf "\nInstalling plugins to activate ..." printf "\nInstalling plugins to activate ..."
for plugin in $wp_plugins_active ; do for plugin in $wp_plugins_active ; do
echo " installing $plugin ..." echo " installing $plugin ..."
ssh -T $ssh << EOSSH ssh -T $ssh_user << EOSSH
su "$user"
wp plugin install $plugin --activate --path="$wp_path" wp plugin install $plugin --activate --path="$wp_path"
EOSSH EOSSH
done done
fi fi
if [ -n "$wp_plugins_active" ] ; then if [ -n "$_apache2_version" ] ; then
printf "\nUninstalling plugins ..." ssh -T $ssh_root << EOSSH
for plugin in $wp_plugins_uninstall ; do
echo " installing $plugin ..."
ssh -T $ssh << EOSSH
su "$user"
wp plugin deactivate $plugin --path="$wp_path"
wp plugin uninstall $plugin --path="$wp_path"
EOSSH
done
fi
config_path='/etc/apache2/sites-available/wordpress.conf'
ssh -T $ssh << EOSSH
if [ -n "$apache2_version" ] ; then if [ -n "$apache2_version" ] ; then
mkdir -p /var/log/wordpress/ mkdir -p /var/log/wordpress/
cat << EOF > $config_path cat << EOF > /etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80> <VirtualHost *:80>
ServerName $domain ServerName $domain
DocumentRoot $wp_path DocumentRoot $wp_path
@ -122,5 +103,12 @@ EOF
a2ensite wordpress a2ensite wordpress
a2dissite 000-default a2dissite 000-default
systemctl reload apache2 systemctl reload apache2
elif [ -n "nginx_version" ] ; then
echo "TODO - nginx wordpress config"
elif [ -n "litespeed_version" ] ; then
echo "TODO - litespeed wordpress config"
else
echo "Warning: no webserver configuration found"
fi fi
EOSSH EOSSH
fi

View File

@ -1,15 +0,0 @@
echo "Removing WordPress .."
_mysql_cmd="mysql -uroot -p$db_root_pass -e "
ssh -T $ssh << EOSSH
# remove database
if command -v mysql ; then
$_mysql_cmd "DROP DATABASE $wp_db_name;"
else
echo "ERROR: no installed database found - aborting WordPress removal"
exit 40
fi
# remove files
rm -Rf $wp_path
EOSSH

View File

@ -7,23 +7,26 @@ _db_filename="wordpress-$_timestamp.db"
_archive_filename="wordpress-$_timestamp.tar.gz" _archive_filename="wordpress-$_timestamp.tar.gz"
_local_dest_dir="./data/$_target" _local_dest_dir="./data/$_target"
ssh -T $ssh << EOSSH # check we have ssh access
[ -z "$ssh_user" ] && echo "Error: no user ssh configuration specified" && exit 5
ssh -T $ssh_user << EOSSH
cd "$wp_path" cd "$wp_path"
wp db export \ wp db export \
--path="$wp_path" \ --path="$wp_path" \
--dbuser="$wp_db_user" \ --dbuser="$db_user" \
--dbpass="$wp_db_pass" \ --dbpass="$db_pass" \
--add-drop-table \ --add-drop-table \
--allow-root \ --allow-root \
"/tmp/$_db_filename" "/tmp/$_db_filename"
tar czf "/tmp/$_archive_filename" "$wp_path" tar czf "/tmp/$_archive_filename" "$wp_path"
EOSSH EOSSH
scp "$ssh:/tmp/$_archive_filename" "$_local_dest_dir/$_archive_filename" scp "$ssh_user:/tmp/$_archive_filename" "$_local_dest_dir/$_archive_filename"
scp "$ssh:/tmp/$_db_filename" "$_local_dest_dir/$_db_filename" scp "$ssh_user:/tmp/$_db_filename" "$_local_dest_dir/$_db_filename"
exit exit
ssh -T $ssh << EOSSH ssh -T $ssh_user << EOSSH
rm "/tmp/$_db_filename" rm "/tmp/$_db_filename"
rm "/tmp/$_archive_filename" rm "/tmp/$_archive_filename"
EOSSH EOSSH

View File

@ -1,13 +1,19 @@
#!/bin/sh
echo "Removing WordPress .." echo "Removing WordPress .."
_mysql_cmd="mysql -uroot -p$db_root_pass -e " # check we have ssh access
[ -z "$ssh_user" ] && echo "Error: no user ssh configuration specified" && exit 5
ssh -T $ssh << EOSSH _mysql_cmd="mysql -u$db_user -p$db_pass -e "
ssh -T $ssh_user << EOSSH
# remove database # remove database
if command -v mysql ; then if command -v mysql ; then
$_mysql_cmd "DROP DATABASE $wp_db_name;" $_mysql_cmd "DROP DATABASE $db_name;"
$_mysql_cmd "CREATE DATABASE $db_name;"
else else
echo "ERROR: no installed database found - aborting WordPress removal" echo "ERROR: mysql not found - aborting WordPress removal"
exit 40 exit 40
fi fi
# remove files # remove files