You can copy and paste the following bash script into the startup script area of the Vultr Control Panel.
It will install all of necessary packages to run WordPress, generate and import database credentials, and open the necessary firewall ports.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
#/bin/sh install_dir="/var/www/html" #Creating Random WP Database Credenitals db_name="wp`date +%s`" db_user=$db_name db_password=`date |md5sum |cut -c '1-12'` sleep 1 mysqlrootpass=`date |md5sum |cut -c '1-12'` sleep 1 ftp_password=`date |md5sum |cut -c '1-12'` #### Install Packages for https and mysql yum -y install httpd httpd-devel yum -y install mysql mysql-server mysql-devel yum -y install lynx vsftpd ##### Open firewall for http and SSL iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT /etc/init.d/iptables save /etc/init.d/iptables restart #### Start http /etc/init.d/httpd start chkconfig httpd on #### Start mysql and set root password /etc/init.d/mysqld start chkconfig mysqld on /usr/bin/mysql -e "USE mysql;" /usr/bin/mysql -e "UPDATE user SET Password=PASSWORD($mysqlrootpass) WHERE user='root';" /usr/bin/mysql -e "FLUSH PRIVILEGES;" touch /root/.my.cnf chmod 640 /root/.my.cnf echo "[client]">/root/.my.cnf echo "user=root">/root/.my.cnf echo "password="$mysqlrootpass>/root/.my.cnf ####Install PHP yum -y install php php-common php-mysql php-gd php-mbstring php-mcrypt php-xml php-devel sed -i '0,/AllowOverride\ None/! {0,/AllowOverride\ None/ s/AllowOverride\ None/AllowOverride\ All/}' /etc/httpd/conf/httpd.conf #Allow htaccess usage /etc/init.d/httpd restart ####Download and extract latest Wordpress Package if test -f /tmp/latest.tar.gz then echo "WP is already downloaded." else echo "Downloading Wordpress" cd /tmp/ && wget "http://wordpress.org/latest.tar.gz"; fi /bin/tar -C $install_dir -zxf /tmp/latest.tar.gz --strip-components=1 chown apache: $install_dir -R #### Set FTP Credentials echo $ftp_password | passwd apache --stdin /etc/init.d/vsftpd start chkconfig vsftpd on #### Create WP-config and set DB credentials /bin/mv $install_dir/wp-config-sample.php $install_dir/wp-config.php /bin/sed -i "s/database_name_here/$db_name/g" $install_dir/wp-config.php /bin/sed -i "s/username_here/$db_user/g" $install_dir/wp-config.php /bin/sed -i "s/password_here/$db_password/g" $install_dir/wp-config.php cat << EOF >> $install_dir/wp-config.php define('FS_METHOD', 'ftpext'); define('FTP_BASE', '$install_dir'); define('FTP_USER', 'apache'); define('FTP_PASS', '$ftp_password'); define('FTP_HOST', '127.0.0.1'); define('FTP_SSL', false); EOF cat << EOF >> $install_dir/.htaccess # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond % !-f RewriteCond % !-d RewriteRule . /index.php [L] </IfModule> # END WordPress EOF chown apache: $install_dir -R ##### Set WP Salts grep -A50 'table_prefix' $install_dir/wp-config.php > /tmp/wp-tmp-config /bin/sed -i '/**#@/,/$p/d' $install_dir/wp-config.php /usr/bin/lynx --dump -width 200 https://api.wordpress.org/secret-key/1.1/salt/ >> $install_dir/wp-config.php /bin/cat /tmp/wp-tmp-config >> $install_dir/wp-config.php && rm /tmp/wp-tmp-config -f /usr/bin/mysql -u root -e "CREATE DATABASE $db_name" /usr/bin/mysql -u root -e "GRANT ALL PRIVILEGES ON $db_name.* to '"$db_user"'@'localhost' IDENTIFIED BY '"$db_password"';" ######Display generated passwords to log file. echo "Database Name: " $db_name echo "Database User: " $db_user echo "Database Password: " $db_password echo "Mysql root password: " $mysqlrootpass echo "FTP Password: " $ftp_password |
You will not need, but can retrieve the database credentials by tailing the end of the /tmp/firstboot.log
file after installation. It is also recommended to remove the /tmp/firstboot.log
file upon installation. You will be able to access your installation at http://yourip
.