From e3cb9a2c0d6291be2d8f58172b019ff85f53b90c Mon Sep 17 00:00:00 2001 From: John Lago <750845+Lagoja@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:39:34 -0700 Subject: [PATCH] Fix envsubst issues --- examples/servers/nginx/devbox.lock | 20 ++++++-- .../stacks/drupal/devbox.d/nginx/nginx.conf | 6 +-- .../drupal/devbox.d/nginx/nginx.template | 46 +++++++++++++++++++ examples/stacks/drupal/devbox.json | 6 +-- examples/stacks/drupal/devbox.lock | 5 +- .../lepp-stack/devbox.d/nginx/nginx.conf | 16 +++++-- .../lepp-stack/devbox.d/nginx/nginx.template | 14 +++++- examples/stacks/lepp-stack/devbox.json | 3 +- examples/stacks/lepp-stack/devbox.lock | 7 +-- plugins/nginx.json | 4 +- plugins/nginx/process-compose.yaml | 2 +- 11 files changed, 106 insertions(+), 23 deletions(-) create mode 100644 examples/stacks/drupal/devbox.d/nginx/nginx.template diff --git a/examples/servers/nginx/devbox.lock b/examples/servers/nginx/devbox.lock index c80e5bb96b9..40116f4df01 100644 --- a/examples/servers/nginx/devbox.lock +++ b/examples/servers/nginx/devbox.lock @@ -2,11 +2,25 @@ "lockfile_version": "1", "packages": { "nginx@latest": { - "last_modified": "2023-08-30T00:25:28Z", + "last_modified": "2023-09-04T16:24:30Z", "plugin_version": "0.0.3", - "resolved": "github:NixOS/nixpkgs/a63a64b593dcf2fe05f7c5d666eb395950f36bc9#nginx", + "resolved": "github:NixOS/nixpkgs/3c15feef7770eb5500a4b8792623e2d6f598c9c1#nginx", "source": "devbox-search", - "version": "1.24.0" + "version": "1.24.0", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/prz9lx44d3hicpmsri5rm9qk44r79ng8-nginx-1.24.0" + }, + "aarch64-linux": { + "store_path": "/nix/store/b2v5yw11gmywahlyhbqajml7hjdkhsar-nginx-1.24.0" + }, + "x86_64-darwin": { + "store_path": "/nix/store/1nyjvgj3hbhck80wkwi0h18561xbp3sy-nginx-1.24.0" + }, + "x86_64-linux": { + "store_path": "/nix/store/vc66rk5b86lx1myxr18qkgzha0fjx2ks-nginx-1.24.0" + } + } } } } diff --git a/examples/stacks/drupal/devbox.d/nginx/nginx.conf b/examples/stacks/drupal/devbox.d/nginx/nginx.conf index 257500343b7..5d6199abc2a 100644 --- a/examples/stacks/drupal/devbox.d/nginx/nginx.conf +++ b/examples/stacks/drupal/devbox.d/nginx/nginx.conf @@ -1,10 +1,10 @@ events {} http{ server { - listen 8000; - listen [::]:8000; + listen 8081; + listen [::]:8081; server_name localhost; - root ../../../web; + root ../../../devbox.d/web; error_log error.log error; access_log access.log; diff --git a/examples/stacks/drupal/devbox.d/nginx/nginx.template b/examples/stacks/drupal/devbox.d/nginx/nginx.template new file mode 100644 index 00000000000..24c6962fcbf --- /dev/null +++ b/examples/stacks/drupal/devbox.d/nginx/nginx.template @@ -0,0 +1,46 @@ +events {} +http{ +server { + listen $NGINX_WEB_PORT; + listen [::]:$NGINX_WEB_PORT; + server_name $NGINX_WEB_SERVER_NAME; + root $NGINX_WEB_ROOT; + + error_log error.log error; + access_log access.log; + client_body_temp_path temp/client_body; + proxy_temp_path temp/proxy; + fastcgi_temp_path temp/fastcgi; + uwsgi_temp_path temp/uwsgi; + scgi_temp_path temp/scgi; + include mime.conf; + + index index.html; + server_tokens off; + + index index.php index.htm index.html; + + location / { + try_files $uri /index.php?$query_string; # For Drupal >= 7 + } + + location @rewrite { + rewrite ^ /index.php; + } + + location ~ \.php$ { + include fastcgi.conf; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass 127.0.0.1:$PHPFPM_PORT; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_index index.php; + } + + # Don't allow direct access to PHP files in the vendor directory. + location ~ /vendor/.*\.php$ { + deny all; + return 404; + } + + } +} diff --git a/examples/stacks/drupal/devbox.json b/examples/stacks/drupal/devbox.json index 0030e71ae9e..934b55eb595 100644 --- a/examples/stacks/drupal/devbox.json +++ b/examples/stacks/drupal/devbox.json @@ -3,8 +3,8 @@ "git@latest", "php@8.1", "php81Packages.composer@latest", - "nginx@latest", - "mariadb@latest" + "mariadb@latest", + "nginx@latest" ], "shell": { "init_hook": [], @@ -20,4 +20,4 @@ ] } } -} \ No newline at end of file +} diff --git a/examples/stacks/drupal/devbox.lock b/examples/stacks/drupal/devbox.lock index 0ee580ed8cc..0dde588981d 100644 --- a/examples/stacks/drupal/devbox.lock +++ b/examples/stacks/drupal/devbox.lock @@ -43,9 +43,10 @@ } }, "nginx@latest": { - "last_modified": "2023-05-01T16:53:22Z", + "last_modified": "2023-09-04T16:24:30Z", "plugin_version": "0.0.3", - "resolved": "github:NixOS/nixpkgs/8670e496ffd093b60e74e7fa53526aa5920d09eb#nginx", + "resolved": "github:NixOS/nixpkgs/3c15feef7770eb5500a4b8792623e2d6f598c9c1#nginx", + "source": "devbox-search", "version": "1.24.0", "systems": { "aarch64-darwin": { diff --git a/examples/stacks/lepp-stack/devbox.d/nginx/nginx.conf b/examples/stacks/lepp-stack/devbox.d/nginx/nginx.conf index 3ddbac1dadc..fce984e088e 100644 --- a/examples/stacks/lepp-stack/devbox.d/nginx/nginx.conf +++ b/examples/stacks/lepp-stack/devbox.d/nginx/nginx.conf @@ -4,7 +4,7 @@ server { listen 8089; listen [::]:8089; server_name localhost; - root ../../../devbox.d/web; + root ../../../my_app; error_log error.log error; access_log access.log; @@ -14,7 +14,17 @@ server { uwsgi_temp_path temp/uwsgi; scgi_temp_path temp/scgi; - index index.html; - server_tokens off; + index index.php index.htm index.html; + + location / { + try_files $uri $uri/ /index.php$is_args$args; + } + + location ~ \.php$ { + include fastcgi.conf; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass 127.0.0.1:8082; + fastcgi_index index.php; + } } } diff --git a/examples/stacks/lepp-stack/devbox.d/nginx/nginx.template b/examples/stacks/lepp-stack/devbox.d/nginx/nginx.template index 90e0ecbf00c..eb1d2e7a5dd 100644 --- a/examples/stacks/lepp-stack/devbox.d/nginx/nginx.template +++ b/examples/stacks/lepp-stack/devbox.d/nginx/nginx.template @@ -14,7 +14,17 @@ server { uwsgi_temp_path temp/uwsgi; scgi_temp_path temp/scgi; - index index.html; - server_tokens off; + index index.php index.htm index.html; + + location / { + try_files $uri $uri/ /index.php$is_args$args; + } + + location ~ \.php$ { + include fastcgi.conf; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass 127.0.0.1:$PHPFPM_PORT; + fastcgi_index index.php; + } } } diff --git a/examples/stacks/lepp-stack/devbox.json b/examples/stacks/lepp-stack/devbox.json index 1f36227f129..a389772f7c1 100644 --- a/examples/stacks/lepp-stack/devbox.json +++ b/examples/stacks/lepp-stack/devbox.json @@ -4,10 +4,11 @@ "postgresql@14", "php@8.1", "php81Extensions.pgsql@latest", - "nginx@1.24" + "nginx@latest" ], "env": { "NGINX_WEB_PORT": "8089", + "NGINX_WEB_ROOT": "../../../my_app", "PGPORT": "5433" }, "shell": { diff --git a/examples/stacks/lepp-stack/devbox.lock b/examples/stacks/lepp-stack/devbox.lock index d82a4e9e927..efcedd6d9c5 100644 --- a/examples/stacks/lepp-stack/devbox.lock +++ b/examples/stacks/lepp-stack/devbox.lock @@ -20,10 +20,11 @@ } } }, - "nginx@1.24": { - "last_modified": "2023-05-01T16:53:22Z", + "nginx@latest": { + "last_modified": "2023-09-04T16:24:30Z", "plugin_version": "0.0.3", - "resolved": "github:NixOS/nixpkgs/8670e496ffd093b60e74e7fa53526aa5920d09eb#nginx", + "resolved": "github:NixOS/nixpkgs/3c15feef7770eb5500a4b8792623e2d6f598c9c1#nginx", + "source": "devbox-search", "version": "1.24.0", "systems": { "aarch64-darwin": { diff --git a/plugins/nginx.json b/plugins/nginx.json index fb72ce00111..ab292a6a7ec 100644 --- a/plugins/nginx.json +++ b/plugins/nginx.json @@ -1,8 +1,8 @@ { "name": "nginx", - "version": "0.0.3", + "version": "0.0.4", "readme": "nginx can be configured with env variables\n\nTo customize:\n* Use $NGINX_CONFDIR to change the configuration directory\n* Use $NGINX_TMPDIR to change the tmp directory. Use $NGINX_USER to change the user\n* Use $NGINX_WEB_PORT to change the port NGINX runs on. \n Note: This plugin uses envsubst when running `devbox services` to generate the nginx.conf file from the nginx.template file. To customize the nginx.conf file, edit the nginx.template file.\n", - "__packages": ["envsubst@latest"], + "__packages": ["gettext@latest", "gawk@latest"], "env": { "NGINX_CONF": "{{ .DevboxDir }}/nginx.conf", "NGINX_CONFDIR": "{{ .DevboxDir }}", diff --git a/plugins/nginx/process-compose.yaml b/plugins/nginx/process-compose.yaml index 5ec24f9684c..128a4a54531 100644 --- a/plugins/nginx/process-compose.yaml +++ b/plugins/nginx/process-compose.yaml @@ -3,7 +3,7 @@ version: "0.5" processes: nginx: command: | - if [ -f $NGINX_CONFDIR/nginx.template ]; then envsubst < $NGINX_CONFDIR/nginx.template > $NGINX_CONFDIR/nginx.conf; fi + if [ -f $NGINX_CONFDIR/nginx.template ]; then envsubst $(awk 'BEGIN {for (k in ENVIRON) {printf "$"k","}}') < $NGINX_CONFDIR/nginx.template > $NGINX_CONFDIR/nginx.conf; fi nginx -p $NGINX_PATH_PREFIX -c $NGINX_CONFDIR/nginx.conf -e error.log -g "pid nginx.pid;daemon off;" availability: restart: on_failure