X-Git-Url: https://git.cyclocoop.org/?p=lhc%2Fateliers.git;a=blobdiff_plain;f=etc%2Fsv%2Fnginx%2Fconfigure.sh;h=a44c647168ffe34a8945209348520e9725e4dc53;hp=c41397931f42667efc5f1747688d419215accb08;hb=22f04b9fac14adc3d3fc98273ba126c3a51792c3;hpb=5ce6d51b9c15b2e316d60fad4ecfa1ea1b32bf7b diff --git a/etc/sv/nginx/configure.sh b/etc/sv/nginx/configure.sh index c413979..a44c647 100644 --- a/etc/sv/nginx/configure.sh +++ b/etc/sv/nginx/configure.sh @@ -1,13 +1,11 @@ -rule runit_configure php5-fpm +rule _runit_sv_configure php5-fpm '*' +rule _runit_sv_restart php5-fpm rule apt_get_install nginx spawn-fcgi fcgiwrap rule insserv_remove nginx rule insserv_remove fcgiwrap -rule www_configure +rule _www_configure -sudo rm -rf \ - /etc/nginx/conf.d \ - /etc/nginx/site.d sudo install -d -m 770 -o www -g www \ /etc/nginx \ /etc/nginx/conf.d \ @@ -19,16 +17,22 @@ sudo ln -fns \ sudo install -m 660 -o www -g www \ "$tool"/etc/nginx/nginx.conf \ /etc/nginx/nginx.conf -local conf -for conf in "$tool"/etc/nginx/conf.d/*.conf - do conf=${conf#"$tool"/etc/nginx/conf.d/} + +for conf in $(find "$tool"/etc/nginx/conf.d \ + -mindepth 1 -maxdepth 1 -type f \ + -name '*.conf' \ + -printf '%f\n') + do sudo install -m 660 -o www -g www \ "$tool"/etc/nginx/conf.d/"$conf" \ /etc/nginx/conf.d/"$conf" done -for conf in "$tool"/etc/nginx/site.d/*/site.conf - do conf=${conf#"$tool"/etc/nginx/site.d/} - local site="${conf%/site.conf}" + +for site in $(find "$tool"/etc/nginx/site.d \ + -mindepth 1 -maxdepth 1 -type d \ + -false ${@:+$(printf -- '-or -name %s\n' "$@")} \ + -printf '%f\n') + do rule adduser www-"$site" \ --disabled-login \ --disabled-password \ @@ -49,27 +53,40 @@ for conf in "$tool"/etc/nginx/site.d/*/site.conf /etc/nginx/site.d/"$site" sudo install -d -m 770 -o www -g www \ /etc/nginx/x509.d/"$site" - test -L /home/www/pub/"$site" || + sudo test -L /home/www/pub/"$site" || sudo install -d -m 2770 -o www-"$site" -g www-"$site" \ /home/www/pub/"$site" sudo adduser www-data www-"$site" sudo adduser www-data log-www-"$site" sudo install -m 660 -o www -g www \ "$tool"/etc/nginx/site.d/"$site"/local.conf \ - /etc/nginx/site.d/"$site"/local.inc + /etc/nginx/site.d/"$site"/local.conf + test ! -e "$tool"/etc/nginx/site.d/"$site"/http.conf || sudo install -m 660 -o www -g www \ - "$tool"/etc/nginx/site.d/"$site"/site.conf \ - /etc/nginx/site.d/"$site"/site.inc + "$tool"/etc/nginx/site.d/"$site"/http.conf \ + /etc/nginx/site.d/"$site"/http.conf + if test -L "$tool"/etc/nginx/site.d/"$site"/site.conf + then + sudo cp --force --preserve=links --no-dereference \ + "$tool"/etc/nginx/site.d/"$site"/site.conf \ + /etc/nginx/site.d/"$site"/site.conf + else + sudo install -m 660 -o www -g www \ + "$tool"/etc/nginx/site.d/"$site"/site.conf \ + /etc/nginx/site.d/"$site"/site.conf + fi sudo install -m 660 -o www -g www /dev/stdin \ /etc/nginx/site.d/"$site"/server.conf <<-EOF server { - access_log /home/www/log/$site/nginx/access.log main; - error_log /home/www/log/$site/nginx/error.log warn; - root /home/www/pub/$site; - include /etc/nginx/site.d/$site/local.inc; - include /etc/nginx/site.d/$site/site.inc; + access_log /home/www/log/$site/nginx/access.log main; + error_log /home/www/log/$site/nginx/error.log warn; + root /home/www/pub/$site; + include /etc/nginx/site.d/$site/local.conf; + include /etc/nginx/site.d/$site/site.conf; } EOF + ( test ! -r "$tool"/etc/nginx/site.d/"$site"/configure.sh || - . "$tool"/etc/nginx/site.d/"$site"/configure.sh + . "$tool"/etc/nginx/site.d/"$site"/configure.sh || return 1 + ) done