Files
shell_sequencer/seqs/webserver.sh

93 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
serverName="nginx"
serverPackages="nginx"
phpVersion="7.3"
phpName="php${phpVersion}"
phpPackages="${phpName}-fpm ${phpName}-json ${phpName}-mysql ${phpName}-curl ${phpName}-intl ${phpName}-gd ${phpName}-zip ${phpName}-xml ${phpName}-mbstring php-imagick php-apcu"
step_1_info() {
echo "Installation of $serverName packages:"
echoinfo "$serverPackages"
}
step_1_alias() { ALIAS=install; }
step_1() {
exe apt update
exe apt install $serverPackages
saveReturn $?
endReturn
}
step_2_info() { echo "Basic nginx configuration for initial letsencrypt certificate creation"; }
step_2() {
# Writing acme-challenge code snipped for certbot web root authentication
addConf -c "$snippetLetsencrypt" "$snippetLetsencryptLoc"
# Writing minimal default (see below)
addConf -c "$siteDefaultIp4" "$siteDefaultLoc"
# try fix errors on first install attempt
# (possible missing ipv6 support on system)
if [ $ERNO -ne 0 ] ; then
exe apt install nginx
fi
# create webroot
exe mkdir -p "$siteLetsencryptWww"
echo -n "Restarting Nginx ... "
exe service nginx restart && echo "ok"
saveReturn $?
endReturn
}
snippetLetsencryptLoc="/etc/nginx/snippets/letsencrypt.conf"
siteLetsencryptWww="/var/www/letsencrypt"
snippetLetsencrypt="\
location ^~ /.well-known/acme-challenge/ {
default_type \"text/plain\";
root ${siteLetsencryptWww};
}"
siteDefaultLoc="/etc/nginx/sites-available/default"
siteDefaultIp4="server {
listen 80 default_server;
include ${snippetLetsencryptLoc};
}"
step_3_info() { echo "Installation of $phpName packages:"
echoinfo "$phpPackages"; }
step_3() {
exe apt install $phpPackages
}
phpFpmConfigLocation="/etc/php/${phpVersion}/fpm/conf.d/90-custom_pi.ini"
phpFpmConfig="post_max_size=64M
upload_max_filesize=100M
max_execution_time=600
apc.enable_cli=1
date.timezone = Europe/Berlin
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1"
phpCliConfigLocation="/etc/php/${phpVersion}/cli/conf.d/90-custom_pi.ini"
phpCliConfig="\
date.timezone = Europe/Berlin"
step_4_info() { echo -e "Configuration of ${phpName} fpm and cli\n"; }
step_4() {
addConf -c "$phpFpmConfig" "$phpFpmConfigLocation"
addConf -c "$phpCliConfig" "$phpCliConfigLocation"
echo -n "Restarting ${phpName} ... "
exe service ${phpName}-fpm restart && echo "ok"
}
VERSION_SEQREV=9
. /usr/local/bin/sequencer.sh