Browse Source

added wordpress setup

main
Zen 3 years ago
parent
commit
42c4bb17d0
  1. 3
      Makefile
  2. 24
      resources/wordpress.nginx.conf
  3. 48
      scripts/certify.sh
  4. 1
      scripts/init.sh
  5. 142
      scripts/wordpress.sh

3
Makefile

@ -23,3 +23,6 @@ preparations:
@chmod +x scripts/prep-rpi-usb.sh
@scripts/prep-rpi-usb.sh
manifest:
@chmod +x scripts/wordpress.sh
@scripts/wordpress.sh

24
resources/wordpress.nginx.conf

@ -0,0 +1,24 @@
server {
listen 8000 default_server;
listen [::]:8000 default_server;
server_name 10.0.0.150;
root /home/pi/wordpress;
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}

48
scripts/certify.sh

@ -0,0 +1,48 @@
#!/bin/bash
# Installs certbot and runs it
# ~ Zen, 2022
if [ -f "/etc/debian_version" ]; then
DISTRO="debian"
echo "Debian, Ubuntu, or Raspbian OS detected."
elif [ -f "/etc/arch-release" ]; then
DISTRO="arch"
echo "Arch- or Manjaro-based OS detected."
elif [ $(uname | grep -c "Darwin") -eq 1 ]; then
DISTRO="mac"
echo "MacOS detected."
else
echo "I don't know what OS you're running! Cancelling this operation."
exit 1
fi
echo ""
install_if_needed() {
for package in "$@"
do
if [ -z $(which $package) ]; then
echo "installing" $package
case $DISTRO in
"debian")
sudo apt install -y $package
;;
"arch")
sudo pacman -S $package
;;
"mac")
brew install $package
;;
esac
else
echo $package 'already installed!'
fi
done
}
install_if_needed certbot python3-certbot-nginx
sudo certbot --nginx

1
scripts/init.sh

@ -49,6 +49,7 @@ case $DISTRO in
"debian")
sudo apt update
sudo apt autoremove
sudo apt upgrade
;;
"arch")
sudo pacman -Syu

142
scripts/wordpress.sh

@ -0,0 +1,142 @@
#!/bin/bash
# Downloads and configures Wordpress onto the current system
# Zen, 2022
# Font decoration for better a e s t h e t i c
RED="\e[0;91m"
GREEN="\e[0;92m"
BLUE="\e[0;94m"
BOLD="\e[1m"
ULINE="\e[4m"
NC="\e[0m"
# ------------------- Step 1 - Installing / Configuring MariaDB -------------------
if [ -f "/etc/debian_version" ]; then
DISTRO="debian"
echo "Debian, Ubuntu, or Raspbian OS detected."
elif [ -f "/etc/arch-release" ]; then
DISTRO="arch"
echo "Arch- or Manjaro-based OS detected."
elif [ $(uname | grep -c "Darwin") -eq 1 ]; then
DISTRO="mac"
echo "MacOS detected."
else
echo "I don't know what OS you're running! Cancelling this operation."
exit 1
fi
echo ""
install_if_needed() {
for package in "$@"
do
if [ -z $(which $package) ]; then
echo "installing" $package
case $DISTRO in
"debian")
sudo apt install -y $package
;;
"arch")
sudo pacman -S $package
;;
"mac")
brew install $package
;;
esac
else
echo $package 'already installed!'
fi
done
}
install_if_needed mariadb-server php php-fpm php-mysql nginx
echo ""
read -p "Do you want to secure the database for production deployment? (y/n): " -n1 boot
echo ""
case $boot in
y | Y)
echo "Securing database..."
sudo mysql_secure_installation
;;
esac
echo ""
MATCH=0
while [[ MATCH -eq 0 ]]; do
read -sp "Enter the password that you would like to use for MariaDB: " pass
echo ""
read -sp "Please confirm your password: " pass2
echo ""
if [[ "$pass" == "$pass2" ]]; then
MATCH=1
sudo mariadb -e "CREATE DATABASE wordpress;"
sudo mariadb -e "GRANT ALL ON wordpress.* TO '${USER}'@'localhost' IDENTIFIED BY '${pass}' WITH GRANT OPTION;"
sudo mariadb -e "FLUSH PRIVILEGES;"
else
echo "Passwords did not match :("
echo ""
fi
done
# ------------------- Step 2 - Downloading / Configuring WordPress -------------------
if [[ -e 'resources/wordpress.tar.gz' ]]; then
echo "Wordpress already downloaded!"
else
echo -e "${ULINE}Downloading Wordpress...${NC}"
curl -o resources/wordpress.tar.gz 'https://wordpress.org/latest.tar.gz'
fi
WP_DIR=""
while [[ -z $WP_DIR ]]; do
echo ""
echo "Where would you like to place the wordpress directory? Enter a path or leave blank for $HOME: "
read -e WP_DIR
if [[ -z $WP_DIR ]]; then
WP_DIR=$HOME
fi
if [[ -d $WP_DIR ]]; then
echo "Saving to $WP_DIR"
else
echo ""
echo "Sorry, $WP_DIR doesn't seem like a valid directory to me..."
WP_DIR=""
echo "$WP_DIR"
fi
done
if [[ -z $(ls -A $WP_DIR) ]]; then
tar -xzvf resources/wordpress.tar.gz --directory $WP_DIR
echo "Wordpress has been extracted to $WP_DIR"!
else
echo "Oh! It's already there."
fi
echo ""
echo "Configuring wordpress..."
cp $WP_DIR/wordpress/wp-config-sample.php $WP_DIR/wordpress/wp-config.php
sed -i 's/database_name_here/wordpress/' $WP_DIR/wordpress/wp-config.php
sed -i "s/username_here/${USER}/" $WP_DIR/wordpress/wp-config.php
sed -i "s/password_here/${pass}/" $WP_DIR/wordpress/wp-config.php
# while this phrase exists, replace it with a seed phrase
while grep -q 'put your unique phrase here' $WP_DIR/wordpress/wp-config.php; do
SEED=$(echo $RANDOM | md5sum | awk {'print $1'})
sed -i "0,/put your unique phrase here/s//${SEED}/" $WP_DIR/wordpress/wp-config.php
done
echo "Done!"
# ------------------- Step 3 - NGINX Setup -------------------
echo ""
sudo cp resources/wordpress.nginx.conf /etc/nginx/sites-available/wp
# Deleting location block
Loading…
Cancel
Save