Created
August 22, 2017 21:59
-
-
Save d1rk/01da61481be4472bbcc8d0c9207478a7 to your computer and use it in GitHub Desktop.
Digitalocean user_data provisions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#cloud-config | |
apt_update: true | |
packages: | |
- nginx | |
- php7.0-fpm | |
- php-mysql | |
- mysql-server | |
- php7.0-mcrypt | |
- php7.0-gd | |
- php7.0-curl | |
- php7.0-xml | |
write_files: | |
- path: /etc/nginx/sites-available/default | |
content: | | |
server { | |
listen 80 default_server; | |
listen [::]:80 default_server ipv6only=on; | |
root /var/www/html; | |
index index.php index.html index.htm; | |
server_name localhost; | |
location / { | |
# First attempt to serve request as file, then | |
# as directory, then fall back to displaying a 404. | |
try_files $uri $uri/ =404; | |
# Uncomment to enable naxsi on this location | |
# include /etc/nginx/naxsi.rules | |
} | |
error_page 404 /404.html; | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root /usr/share/nginx/html; | |
} | |
location ~ \.php$ { | |
try_files $uri =404; | |
fastcgi_split_path_info ^(.+\.php)(/.+)$; | |
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; | |
fastcgi_index index.php; | |
include fastcgi.conf; | |
} | |
} | |
- path: /var/www/html/info.php | |
content: | | |
<?php | |
phpinfo(); | |
?> | |
runcmd: | |
- mkdir -p /var/www/html | |
- cp /usr/share/nginx/html/index.html /var/www/html/ | |
- sed -i -e "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /etc/php/7.0/fpm/php.ini | |
# Ensure backwards compatible with 14.04 | |
- file=/etc/nginx/fastcgi.conf; if [ ! -f "$file" ]; then ln -s /etc/nginx/fastcgi_params "$file"; fi | |
- service nginx restart |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# Wordpress Setup Script | |
# | |
# This script will install and configure WordPress on | |
# an Ubuntu 16.04 droplet | |
export DEBIAN_FRONTEND=noninteractive; | |
# Generate root and WordPress mysql passwords | |
rootmysqlpass=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev | tr -dc 'a-zA-Z0-9'`; | |
wpmysqlpass=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev | tr -dc 'a-zA-Z0-9'`; | |
# Write passwords to file | |
echo "Root MySQL Password: $rootmysqlpass" > /root/passwords.txt; | |
echo "Wordpress MySQL Password: $wpmysqlpass" >> /root/passwords.txt; | |
# Update Ubuntu | |
apt-get update; | |
apt-get -y upgrade; | |
# Install Apache/MySQL | |
apt-get -y install apache2 php php-mysql libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-zip php7.0-json php7.0-xml mysql-server mysql-client unzip wget; | |
# Download and uncompress WordPress | |
wget https://wordpress.org/latest.zip -O /tmp/wordpress.zip; | |
cd /tmp/; | |
unzip /tmp/wordpress.zip; | |
# Set up database user | |
/usr/bin/mysqladmin -u root -h localhost create wordpress; | |
/usr/bin/mysqladmin -u root -h localhost password $rootmysqlpass; | |
/usr/bin/mysql -uroot -p$rootmysqlpass -e "CREATE USER wordpress@localhost IDENTIFIED BY '"$wpmysqlpass"'"; | |
/usr/bin/mysql -uroot -p$rootmysqlpass -e "GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost"; | |
# Configure WordPress | |
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php; | |
sed -i "s/'DB_NAME', 'database_name_here'/'DB_NAME', 'wordpress'/g" /tmp/wordpress/wp-config.php; | |
sed -i "s/'DB_USER', 'username_here'/'DB_USER', 'wordpress'/g" /tmp/wordpress/wp-config.php; | |
sed -i "s/'DB_PASSWORD', 'password_here'/'DB_PASSWORD', '$wpmysqlpass'/g" /tmp/wordpress/wp-config.php; | |
for i in `seq 1 8` | |
do | |
wp_salt=$(</dev/urandom tr -dc 'a-zA-Z0-9!@#$%^&*()\-_ []{}<>~`+=,.;:/?|' | head -c 64 | sed -e 's/[\/&]/\\&/g'); | |
sed -i "0,/put your unique phrase here/s/put your unique phrase here/$wp_salt/" /tmp/wordpress/wp-config.php; | |
done | |
cp -Rf /tmp/wordpress/* /var/www/html/.; | |
rm -f /var/www/html/index.html; | |
chown -Rf www-data:www-data /var/www/html; | |
a2enmod rewrite; | |
service apache2 restart; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
as taken from https://github.com/digitalocean/do_user_scripts