diff --git a/seqs/webserver.sh b/seqs/webserver.sh index 7db8d60..0a0f376 100755 --- a/seqs/webserver.sh +++ b/seqs/webserver.sh @@ -2,24 +2,52 @@ serverName="nginx" serverPackages="nginx" +serverSourceUrl="https://nginx.org/packages/debian/" 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" +phpPackages="${phpName}-fpm ${phpName}-json ${phpName}-mysql ${phpName}-curl ${phpName}-intl ${phpName}-gd ${phpName}-zip ${phpName}-xml ${phpName}-mbstring php-imagick php-apcu php-redis" -step_1_info() { +aptOpt= +step_config() { + if [ $QUIET -ne 0 ] ; then + aptOpt="-y" + fi +} + +step_1_info() { + echo "Setup latest apt source list for $serverName" + echoinfo "$serverSourceUrl" +} +step_1_alias() { ALIAS="setup"; } +step_1() { + shift + local osRelease=$1 + endCheckEmpty osRelease "Debian release not provided" + + echoseq " [I] Setup apt source for $serverName $serverSourceUrl" + local srvSource="deb $serverSourceUrl $osRelease nginx" + addConf -s "$srvSource" "$serverSourceLoc" + if [ $? -eq 0 ] ; then + echoseq " [I] Get repository key for $serverSourceUrl"Y + exe apt install gnupg $aptOpt + exe apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62 + fi +} +serverSourceLoc="/etc/apt/sources.list.d/nginx.list" + +step_2_info() { echo "Installation of $serverName packages:" echoinfo "$serverPackages" } -step_1_alias() { ALIAS=install; } -step_1() { +step_2_alias() { ALIAS=install; } +step_2() { exe apt update - exe apt install $serverPackages - saveReturn $? - endReturn + exe apt install $serverPackages $aptOpt + endReturn -o $? "Failed to install $serverName" } -step_2_info() { echo "Basic nginx configuration for initial letsencrypt certificate creation"; } -step_2() { +step_3_info() { echo "Basic nginx configuration for initial letsencrypt certificate creation"; } +step_3() { # Writing acme-challenge code snipped for certbot web root authentication addConf -c "$snippetLetsencrypt" "$snippetLetsencryptLoc" @@ -29,16 +57,15 @@ step_2() { # try fix errors on first install attempt # (possible missing ipv6 support on system) if [ $ERNO -ne 0 ] ; then - exe apt install nginx + exe apt install nginx $aptOpt fi # create webroot exe mkdir -p "$siteLetsencryptWww" - echo -n "Restarting Nginx ... " - exe service nginx restart && echo "ok" - saveReturn $? - endReturn + echoseq -n "Restarting Nginx..." + exe service nginx restart && echoseq "ok" + endReturn -o $? "Failed to install $serverName" } snippetLetsencryptLoc="/etc/nginx/snippets/letsencrypt.conf" siteLetsencryptWww="/var/www/letsencrypt" @@ -54,10 +81,10 @@ listen 80 default_server; include ${snippetLetsencryptLoc}; }" -step_3_info() { echo "Installation of $phpName packages:" +step_4_info() { echo "Installation of $phpName packages:" echoinfo "$phpPackages"; } -step_3() { - exe apt install $phpPackages +step_4() { + exe apt install $phpPackages $aptOpt } phpFpmConfigLocation="/etc/php/${phpVersion}/fpm/conf.d/90-custom_pi.ini" phpFpmConfig="post_max_size=64M @@ -79,14 +106,32 @@ 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() { +step_5_info() { echo "Configuration of ${phpName} fpm and cli"; } +step_5() { addConf -c "$phpFpmConfig" "$phpFpmConfigLocation" addConf -c "$phpCliConfig" "$phpCliConfigLocation" - echo -n "Restarting ${phpName} ... " - exe service ${phpName}-fpm restart && echo "ok" + echoseq -n "Restarting ${phpName} ... " + exe service ${phpName}-fpm restart && echoseq "ok" } -VERSION_SEQREV=9 +step_6_info() { echo "Installation notes"; } +step_6_alias() { ALIAS="notes"; } +step_6() { + cat <