Report this

What is the reason for this report?

How to finish WordPress Installation without SSH?

Posted on March 22, 2019

I’m currently preparing to conduct a workshop for 20-30 non-technical people. One of the steps is to spin up a droplet with WordPress pre-installed, using the one click applications. I can’t ask them to use SSH; they will get scared as soon as they see the command line(web or terminal). I’m looking to run a script post installation from User Data which will finish up the WordPress installation.

I found the script which is run after login /opt/digitalocean/wp_setup.sh:

# Enable WordPress on firstlogin
mv /var/www/html /var/www/html.old
mv /var/www/wordpress /var/www/html
chown -Rf www-data:www-data /var/www/html
echo "This script will copy the WordPress instalation into"
echo "Your web root and move the existing one to /var/www/html.old"
echo "--------------------------------------------------"
echo "This setup requires a domain name.  If you do not have one yet, you may"
echo "cancel this setup, press Ctrl+C.  This script will run again on your next login"
echo "--------------------------------------------------"
echo "Enter the domain name for your new WordPress site."
echo "(ex. example.org or test.example.org) do not include www or http/s"
echo "--------------------------------------------------"
a=0
while [ $a -eq 0 ]
do
 read -p "Domain/Subdomain name: " dom
 if [ -z "$dom" ]
 then
  a=0
  echo "Please provide a valid domain or subdomain name to continue to press Ctrl+C to cancel"
 else
  a=1
fi
done
sed -i "s/\$domain/$dom/g"  /etc/apache2/sites-enabled/000-default.conf
a2enconf block-xmlrpc

service apache2 restart
cp /etc/skel/.bashrc /root
echo -en "\n\n\n"
echo "Next, you have the option of configuring LetsEncrypt to secure your new site.  Before doing this, be sure that you have pointed your domain or subdomain to this server's IP address.  You can also run LetsEncrypt certbot later with the command 'certbot --apache'"
echo -en "\n\n\n"
 read -p "Would you like to use LetsEncrypt (certbot) to configure SSL(https) for your new site? (y/n): " yn
    case $yn in
        [Yy]* ) certbot --apache; echo "WordPress has been enabled at https://$dom  Please open this URL in a browser to complete the setup of your site.";break;;
        [Nn]* ) echo "WordPress has been enabled at http://$dom  Please open this URL in a browser to complete the setup of your site.";exit;;
        * ) echo "Please answer y or n.";;
    esac

I tried running first 3 commands post install from User Data to move WordPress to it’s directory so that it is visible. But when accessing the IP address it would tell me I need to finish the installation through SSH. When I logged in using USSH, it did ask me to Enter the domain name for your new WordPress site. same as in the above script. I cancel that script with Ctrl+C and then accessing the IP address after that will show the first WordPress page fine.

Is there anything else happening behind the scenes that makes the website available? Or does anyone know how to install WordPress with actually one click?

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Start building today

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.