Major rewrite/cleanup with additional functionality (creating databases)
This commit is contained in:
@@ -1,52 +1,56 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
serverName="nginx"
|
serverName="nginx"
|
||||||
|
serverPackages="nginx"
|
||||||
databaseName="mariadb"
|
databaseName="mariadb"
|
||||||
phpPackages="php7.0-fpm php7.0-json php7.0-mysql php7.0-curl php7.0-intl php7.0-mcrypt php7.0-gd php7.0-zip php7.0-xml php7.0-mbstring php-imagick php-apcu"
|
databasePackages="mariadb-server mariadb-client"
|
||||||
|
phpName="php7.0"
|
||||||
|
phpPackages="${phpName}-fpm ${phpName}-json ${phpName}-mysql ${phpName}-curl ${phpName}-intl ${phpName}-mcrypt ${phpName}-gd ${phpName}-zip ${phpName}-xml ${phpName}-mbstring php-imagick php-apcu"
|
||||||
|
|
||||||
step_1_info() { echo "Installation of $serverName and $databaseName"; }
|
step_1_info() { echo -e "Installation of $serverName and ${databaseName} packages:\n $serverPackages $databasePackages"; }
|
||||||
step_1_alias() { ALIAS=install; }
|
step_1_alias() { ALIAS=install; }
|
||||||
step_1() {
|
step_1() {
|
||||||
apt update
|
apt update
|
||||||
apt install mariadb-server mariadb-client
|
apt install $databasePackages
|
||||||
saveReturn $?
|
saveReturn $?
|
||||||
endReturn
|
endReturn
|
||||||
apt install nginx
|
apt install $serverPackages
|
||||||
saveReturn $?
|
saveReturn $?
|
||||||
}
|
}
|
||||||
|
|
||||||
step_2_info() { echo "Basic nginx configuration for initial letsencrypt reception"; }
|
step_2_info() { echo "Basic nginx configuration for initial letsencrypt certificate creation"; }
|
||||||
step_2() {
|
step_2() {
|
||||||
echo "$siteLetsencrypt" > "$siteLetsencryptLoc"
|
# Writing acme-challenge code snipped for certbot web root authentication
|
||||||
cp -ar "$siteDefaultLoc" "$siteDefaultLoc".bck
|
addConf "$snippetLetsencrypt" "$snippetLetsencryptLoc"
|
||||||
read -p "Enter your domain: " siteName
|
|
||||||
setMyDomain $siteName
|
# Writing minimal default (see below)
|
||||||
|
addConf "$siteDefaultIp4" "$siteDefaultLoc"
|
||||||
|
|
||||||
|
# try fix errors on first install attempt
|
||||||
|
# (possible missing ipv6 support on system)
|
||||||
if [ $ERNO -ne 0 ] ; then
|
if [ $ERNO -ne 0 ] ; then
|
||||||
apt install nginx
|
apt install nginx
|
||||||
fi
|
fi
|
||||||
mkdir -p /var/www/letsencrypt
|
|
||||||
echo "Restarting Nginx ..."
|
# create webroot
|
||||||
service nginx restart
|
mkdir -p "$siteLetsencryptWww"
|
||||||
|
|
||||||
|
echo -n "Restarting Nginx ... "
|
||||||
|
service nginx restart && echo "ok"
|
||||||
|
saveReturn $?
|
||||||
|
endReturn
|
||||||
}
|
}
|
||||||
|
|
||||||
setMyDomain() {
|
snippetLetsencryptLoc="/etc/nginx/snippets/letsencrypt.conf"
|
||||||
echo -n "$siteDefaultIp4" > "$siteDefaultLoc"
|
siteLetsencryptWww="/var/www/letsencrypt"
|
||||||
echo -n "$1" >> "$siteDefaultLoc"
|
snippetLetsencrypt="\
|
||||||
echo "$siteDefaultIp42" >> "$siteDefaultLoc"
|
|
||||||
}
|
|
||||||
siteLetsencryptLoc="/etc/nginx/snippets/letsencrypt.conf"
|
|
||||||
siteLetsencrypt="\
|
|
||||||
location ^~ /.well-known/acme-challenge/ {
|
location ^~ /.well-known/acme-challenge/ {
|
||||||
default_type \"text/plain\";
|
default_type \"text/plain\";
|
||||||
root /var/www/letsencrypt;
|
root ${siteLetsencryptWww};
|
||||||
}"
|
}"
|
||||||
siteDefaultLoc="/etc/nginx/sites-available/default"
|
siteDefaultLoc="/etc/nginx/sites-available/default"
|
||||||
siteDefaultIp4="server {
|
siteDefaultIp4="server {
|
||||||
listen 80;
|
listen 80 default_server;
|
||||||
#listen [::]:80;
|
|
||||||
|
|
||||||
server_name "
|
|
||||||
siteDefaultIp42=";
|
|
||||||
|
|
||||||
include ${siteLetsencryptLoc};
|
include ${siteLetsencryptLoc};
|
||||||
}"
|
}"
|
||||||
@@ -58,7 +62,8 @@ step_3() {
|
|||||||
|
|
||||||
step_4_info() { echo "Mariadb configuration"; }
|
step_4_info() { echo "Mariadb configuration"; }
|
||||||
step_4() {
|
step_4() {
|
||||||
echo "$mariadbConfig" > "$mariadbConfigLoc"
|
addConf "$mariadbConfig" "$mariadbConfigLoc"
|
||||||
|
|
||||||
echo -n "Restarting mysql ... "
|
echo -n "Restarting mysql ... "
|
||||||
service mysql restart && echo "ok"
|
service mysql restart && echo "ok"
|
||||||
}
|
}
|
||||||
@@ -74,7 +79,7 @@ lower_case_table_names=0
|
|||||||
|
|
||||||
#innodb_force_recovery=6"
|
#innodb_force_recovery=6"
|
||||||
|
|
||||||
step_5_info() { echo "Installation of PHP7.0"; }
|
step_5_info() { echo -e "Installation of $phpName packages:\n $phpPackages"; }
|
||||||
step_5() {
|
step_5() {
|
||||||
apt install $phpPackages
|
apt install $phpPackages
|
||||||
}
|
}
|
||||||
@@ -100,15 +105,82 @@ phpCliConfigLocation="/etc/php/7.0/cli/conf.d/90-custom_pi.ini"
|
|||||||
phpCliConfig="\
|
phpCliConfig="\
|
||||||
date.timezone = Europe/Berlin"
|
date.timezone = Europe/Berlin"
|
||||||
|
|
||||||
step_6_info() { echo "Configuration of PHP fpm and cli"; }
|
step_6_info() { echo -e "Configuration of ${phpName} fpm and cli\n"; }
|
||||||
step_6() {
|
step_6() {
|
||||||
echo -n "Writing $phpFpmConfigLocation ... "
|
addConf "$phpFpmConfig" "$phpFpmConfigLocation"
|
||||||
echo "$phpFpmConfig" > "$phpFpmConfigLocation" && echo "ok"
|
addConf "$phpCliConfig" "$phpCliConfigLocation"
|
||||||
echo -n "Writing $phpCliConfigLocation ... "
|
|
||||||
echo "$phpCliConfig" > "$phpCliConfigLocation" && echo "ok"
|
echo "Restarting ${phpName} ... "
|
||||||
service php7.0-fpm restart
|
service ${phpName}-fpm restart && echo "ok"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
step_10_info() { echo -e "Create mysql database without specific characterset\n"; }
|
||||||
|
step_10_alias() { ALIAS="createdb"; }
|
||||||
|
step_10() {
|
||||||
|
local mysqlDatabase
|
||||||
|
local mysqlUser
|
||||||
|
local mysqlPass
|
||||||
|
|
||||||
|
echo "Existing mysql databases:"
|
||||||
|
mysql -u root -e 'SHOW DATABASES;'
|
||||||
|
|
||||||
|
read -p "Enter database name: " mysqlDatabase
|
||||||
|
endCheckEmpty mysqlDatabase "database name"
|
||||||
|
mysql -u root -e 'CREATE DATABASE '$mysqlDatabase';'
|
||||||
|
saveReturn $?
|
||||||
|
endReturn
|
||||||
|
|
||||||
|
echo "Existing mysql user:"
|
||||||
|
mysql -u root -e 'SELECT User, Host FROM mysql.user;'
|
||||||
|
read -p "Enter mysql user name: " mysqlUser
|
||||||
|
endCheckEmpty mysqlDatabase "user name"
|
||||||
|
|
||||||
|
read -p "Enter mysql user password: " mysqlPass
|
||||||
|
endCheckEmpty mysqlPass "password"
|
||||||
|
mysql -u root -e 'CREATE USER '"'"$mysqlUser"'"'@'"'"'localhost'"'"' IDENTIFIED BY '"'"$mysqlPass"'"';'
|
||||||
|
saveReturn $?
|
||||||
|
endReturn
|
||||||
|
|
||||||
|
mysql -u root -e 'GRANT ALL PRIVILEGES ON '$mysqlDatabase'.* TO '"'"$mysqlUser"'"'@'"'"'localhost'"'"';'
|
||||||
|
saveReturn $?
|
||||||
|
endReturn
|
||||||
|
|
||||||
|
mysql -u root -e 'FLUSH PRIVILEGES;'
|
||||||
|
}
|
||||||
|
|
||||||
|
step_12_info() { echo -e "Create mysql database with characterset utf8mb4\n"; }
|
||||||
|
step_12_alias() { ALIAS="createdb_utf8mb4"; }
|
||||||
|
step_12() {
|
||||||
|
local mysqlDatabase
|
||||||
|
local mysqlUser
|
||||||
|
local mysqlPass
|
||||||
|
|
||||||
|
echo "Existing mysql databases:"
|
||||||
|
mysql -u root -e 'SHOW DATABASES;'
|
||||||
|
|
||||||
|
read -p "Enter database name: " mysqlDatabase
|
||||||
|
endCheckEmpty mysqlDatabase "database name"
|
||||||
|
mysql -u root -e 'CREATE DATABASE '$mysqlDatabase' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'
|
||||||
|
saveReturn $?
|
||||||
|
endReturn
|
||||||
|
|
||||||
|
echo "Existing mysql user:"
|
||||||
|
mysql -u root -e 'SELECT User, Host FROM mysql.user;'
|
||||||
|
read -p "Enter mysql user name: " mysqlUser
|
||||||
|
endCheckEmpty mysqlDatabase "user name"
|
||||||
|
|
||||||
|
read -p "Enter mysql user password: " mysqlPass
|
||||||
|
endCheckEmpty mysqlPass "password"
|
||||||
|
mysql -u root -e 'CREATE USER '"'"$mysqlUser"'"'@'"'"'localhost'"'"' IDENTIFIED BY '"'"$mysqlPass"'"';'
|
||||||
|
saveReturn $?
|
||||||
|
endReturn
|
||||||
|
|
||||||
|
mysql -u root -e 'GRANT ALL PRIVILEGES ON '$mysqlDatabase'.* TO '"'"$mysqlUser"'"'@'"'"'localhost'"'"';'
|
||||||
|
saveReturn $?
|
||||||
|
endReturn
|
||||||
|
|
||||||
|
mysql -u root -e 'FLUSH PRIVILEGES;'
|
||||||
|
}
|
||||||
|
|
||||||
VERSION_SEQREV=2
|
VERSION_SEQREV=2
|
||||||
. sequencer.sh
|
. sequencer.sh
|
||||||
|
Reference in New Issue
Block a user