I've recently been trying to give Drupal 8 a serious look. I'm having a problem going through the install process, though, and I don't know if it's Drupal 8, Drupal 8 and Nginx, or just me. Have any other Nginx users been able to install D8 successfully recently?
Specifically, I get to the stage after entering the database credentials, where Drupal shows the progress bar and starts installing stuff. However, the process stops with a red warning box showing a 502 Bad Gateway error. But if I click on the link to get taken to the error page, I go to the page where I enter the name of the Drupal site and the credentials for user 1 as if nothing wrong happened. After submitting that form, however, all pages result in a 404 via Drupal (not via Nginx).
Comments
I got the same 502 error, did
I got the same 502 error, did the same thing, was then sent to the next wizard page, where I was able to finish the installation without any other issue and my drupal 8 site is working correctly.
Philippe Blanc
President and founder of VisualFox LLc http://www.visualfox.me
Founder of OYOAHA which helped to organize the first Drupal Con in Portland
President and founder of the short lived Blacktonic A
Same here
The exact same thing happened to me the other day when installing the latest D8. It's up an running now.
It worked for me
back in June/july 2012. Must have a look currently.
same errors
I'm getting them too. php-fpm.log output below:
[25-Apr-2013 14:00:48.607330] DEBUG: pid 23684, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool www0] currently 1 active children, 3 spare children, 4 running children. Spawning rate 1
[25-Apr-2013 14:00:48.607373] DEBUG: pid 23684, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool www1] currently 0 active children, 3 spare children, 3 running children. Spawning rate 1
[25-Apr-2013 14:00:49.228051] WARNING: pid 23684, fpm_request_check_timed_out(), line 271: [pool www0] child 23688, script '/home/user/websites/drupal/core/install.php' (request: "POST /core/install.php") executing too slow (17.523885 sec), logging
[25-Apr-2013 14:00:49.228135] DEBUG: pid 23684, fpm_got_signal(), line 72: received SIGCHLD
[25-Apr-2013 14:00:49.228161] NOTICE: pid 23684, fpm_children_bury(), line 227: child 23688 stopped for tracing
[25-Apr-2013 14:00:49.228173] NOTICE: pid 23684, fpm_php_trace(), line 142: about to trace 23688
[25-Apr-2013 14:00:49.228653] NOTICE: pid 23684, fpm_php_trace(), line 170: finished trace of 23688
[25-Apr-2013 14:00:49.228687] DEBUG: pid 23684, fpm_event_loop(), line 409: event module triggered 1 events
@GarretHave you found a
@Garret
Have you found a solution ? I got exactly the same problem.
And i don't succeed (after 6 try) to install Drupal 8.
I've got too sometimes this error just after choosing language
Warning: Cannot modify header information - headers already sent by (output started at /var/www/drupal8/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php:316) in drupal_send_headers() (line 1172 of core/includes/bootstrap.inc).
Warning: Cannot modify header information - headers already sent by (output started at /var/www/drupal8/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php:316) in drupal_send_headers() (line 1172 of core/includes/bootstrap.inc).
Warning: Cannot modify header information - headers already sent by (output started at /var/www/drupal8/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php:316) in drupal_send_headers() (line 1172 of core/includes/bootstrap.inc).
Warning: Cannot modify header information - headers already sent by (output started at /var/www/drupal8/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php:316) in drupal_send_headers() (line 1172 of core/includes/bootstrap.inc).
And, sometimes too, after entering the database credentials, i've got this error
An AJAX HTTP error occurred.
HTTP Result Code: 502
Debugging information follows.
Path: http://drupal8.local/core/install.php?langcode=fr&profile=standard&id=1&...
StatusText: Bad Gateway
ResponseText:
502 Bad Gateway
502 Bad Gateway
nginx
Need fastcgi_param SCRIPT_NAME $fastcgi_script_name;
First, the solution is to add this fastcgi_param:
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
Now a little troubleshooting for anyone else who comes across this:
If you look at your nginx log you will see entries like this:
2013/06/18 17:18:01 [error] 7254#0: *49 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: SCRIPT_NAME in
/srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 302
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 2660
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 2668
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 623
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 649" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /core/install.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5.sock:", host: "127.0.0.1"
You will be able to get to the setup database page, at which point the core/install.php will break. Specifically when you first POST the parameters, it will get sent off to the server, but the subsequent GET of the same URL will fail:
2013/06/18 17:28:42 [error] 7507#0: *95 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 302
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 2660
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 2668
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 623
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 649" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "POST /core/install.php?langcode=en&profile=standard HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5.sock:", host: "127.0.0.1"
The POST looks to create tables in the database. Then you'll see an error, which is where everything fails without index.php being passed as the SCRIPT_NAME variable:
2013/06/18 17:28:42 [error] 7507#0: *95 FastCGI sent in stderr: "PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 302
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 2660
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 2668
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 623
PHP message: PHP Notice: Undefined index: SCRIPT_NAME in /srv/www/drupal-8.x-dev/core/includes/bootstrap.inc on line 649
PHP message: PHP Fatal error: Call to undefined function theme() in /srv/www/drupal-8.x-dev/core/includes/install.core.inc on line 934" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /core/install.php?langcode=en&profile=standard&op=start&id=1 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5.sock:", host: "127.0.0.1"
See that GET? That's where you get the white screen and the installer breaks without a defined SCRIPT_NAME. You can get a little further if you use a fastcgi_index index.php directive, but that doesn't fix the problem, and you should use the SCRIPT_NAME instead.
I don't know enough about the internals of Drupal to explain why this works, only that I can guarantee that adding this parameter does indeed work and you can browse a shiny new Drupal 8 served via nginx.
Yep
that does the trick. Here's my current fastcgi_drupal.conf: https://gist.github.com/perusio/5813867
This is with regards to my config. There are some new files there, that must be protected. I'll start a D8 branch.
Thanks @jamonation
EDIT: That's just for the install phase, later you still need the
fastcgi_param SCRIPT_NAME $fastcgi_script_name
. In fact what we need is to overload the FastCGI params during install only.Hi I am using your
Hi
I am using your configuration.
I finally succeed to install Drupal 8 after ten attempt...with a refresh page...
My fastcgi_drupal.conf looks like this actually
#-- mode: nginx; mode: flyspell-prog; ispell-local-dictionary: "american" --
### fastcgi configuration for serving private files.
## 1. Parameters.
fastcgi_param QUERY_STRING q=$uri&$args;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME /index.php;
#fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
## PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
## 2. Nginx FCGI specific directives.
fastcgi_buffers 256 4k;
fastcgi_intercept_errors on;
## Allow 4 hrs - pass timeout responsibility to upstream.
fastcgi_read_timeout 14400;
fastcgi_index index.php;
## Hide the X-Drupal-Cache header provided by Pressflow.
fastcgi_hide_header 'X-Drupal-Cache';
## Hide the Drupal 7 header X-Generator.
fastcgi_hide_header 'X-Generator';
If i change
fastcgi_param SCRIPT_NAME /index.php;
with this
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
then on all my drupal site (version 7 or 8, developpement of course), i've got then access denied on all the pages, and the style is broken.
Certainly because i remove index.php from my configuration.
Odd
That's odd @flocondetoile - if you are using php5-fpm and want to do a bit of digging, edit your pool ini file and look at the logging line:
Make sure you uncomment access.log and point it to a directory that exists, e.g.
access.log = /var/log/php5-fpm/$pool.access.log
Then look at the format line and add in any fastcgi_param inside %{PARAM}e like this:
access.format = %R - %u %t "%m %r%Q%q" %s %f %{SCRIPT_NAME}e %{mili}d %{kilo}M %C%%
Now you'll be able to see the $fastcgi_script_name for every request.
In fact, it's only with a
In fact, it's only with a drupal 8 site that i've got access denied (as Perusio seems to confirm), except for the homepage
- - 19/Jun/2013:15:57:13 +0200 GET /index.php?q=/& 200 /var/www/drupal8/index.php /index.php 320.526 8192 96.72%
- - 19/Jun/2013:15:57:14 +0200 GET /toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk?q=/toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk& 403 /var/www/drupal8/index.php /toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk 127.949 4608 101.60%
- - 19/Jun/2013:15:57:14 +0200 POST /contextual/render?q=/contextual/render&destination=node 403 /var/www/drupal8/index.php /contextual/render 65.232 2816 107.31%
- - 19/Jun/2013:15:57:15 +0200 GET /index.php?q=/& 200 /var/www/drupal8/index.php /index.php 320.005 8192 96.87%
- - 19/Jun/2013:15:57:15 +0200 GET /toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk?q=/toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk& 403 /var/www/drupal8/index.php /toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk 125.862 4608 95.34%
- - 19/Jun/2013:15:57:15 +0200 POST /contextual/render?q=/contextual/render&destination=node 403 /var/www/drupal8/index.php /contextual/render 65.143 2816 92.11%
- - 19/Jun/2013:15:57:17 +0200 GET /admin/config?q=/admin/config&render=overlay 403 /var/www/drupal8/index.php /admin/config 192.262 5632 93.62%
- - 19/Jun/2013:15:57:18 +0200 GET /admin/config?q=/admin/config& 403 /var/www/drupal8/index.php /admin/config 186.757 5632 96.38%
- - 19/Jun/2013:15:57:20 +0200 GET /index.php?q=/& 200 /var/www/drupal8/index.php /index.php 316.093 8192 98.07%
- - 19/Jun/2013:15:57:21 +0200 GET /toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk?q=/toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk& 403 /var/www/drupal8/index.php /toolbar/subtrees/zcNLmisHdWvdlIAN3KiSzmlcEPs76Jp-OeBhTj1iCvk 127.072 4608 94.43%
- - 19/Jun/2013:15:57:21 +0200 POST /contextual/render?q=/contextual/render&destination=node 403 /var/www/drupal8/index.php /contextual/render 65.212 2816 92.01%
For the drupal 7 site, it's only the appareance that is broken.
- - 19/Jun/2013:16:17:42 +0200 GET /content/section/le-doctorat?q=/content/section/le-doctorat& 404 /var/www/workbench.local/index.php /content/section/le-doctorat 60794.330 7936 8.22%
- - 19/Jun/2013:16:17:42 +0200 GET /content/section/index.php?q=/content/section/& 404 /var/www/workbench.local/index.php /content/section/index.php 65346.792 7936 7.96%
- - 19/Jun/2013:16:17:42 +0200 GET /content/section/index.php?q=/content/section/& 404 /var/www/workbench.local/index.php /content/section/index.php 67342.706 7936 8.02%
- - 19/Jun/2013:16:17:42 +0200 GET /content/section/index.php?q=/content/section/& 404 /var/www/workbench.local/index.php /content/section/index.php 71614.076 7936 7.81%
- - 19/Jun/2013:16:17:42 +0200 GET /content/section/index.php?q=/content/section/& 404 /var/www/workbench.local/index.php /content/section/index.php 79265.838 7936 7.29%
- - 19/Jun/2013:16:17:42 +0200 GET /content/section/section/le-gripic-en-bref?q=/content/section/section/le-gripic-en-bref& 404 /var/www/workbench.local/index.php /content/section/section/le-gripic-en-bref 82413.064 7936 7.27%
- - 19/Jun/2013:16:17:42 +0200 GET /index.php?q=/& 200 /var/www/workbench.local/index.php /index.php 91658.060 9728 6.88%
- - 19/Jun/2013:16:17:42 +0200 GET /js/admin_menu/cache/3488ea3ef8fafd41dd02732518aeb51b?q=/js/admin_menu/cache/3488ea3ef8fafd41dd02732518aeb51b& 200 /var/www/workbench.local/index.php /js/admin_menu/cache/3488ea3ef8fafd41dd02732518aeb51b 91957.020 4352 6.93%
- - 19/Jun/2013:16:17:42 +0200 GET /section/le-doctorat?q=/section/le-doctorat& 200 /var/www/workbench.local/index.php /section/le-doctorat 95754.289 9216 6.92%
- - 19/Jun/2013:16:17:42 +0200 GET /content/genitus-premo-velit-voco?q=/content/genitus-premo-velit-voco& 200 /var/www/workbench.local/index.php /content/genitus-premo-velit-voco 107843.281 8960 6.37%
Then i switch to
fastcgi_param SCRIPT_NAME /index.php;
And all is working fine...
Are you sure ? Do you mean :
Are you sure ?
Do you mean : later we still need the
fastcgi_param SCRIPT_NAME /index.php
and not
fastcgi_param SCRIPT_NAME $fastcgi_script_name
Best regards
Yep
this just needs an overload during the installation. Otherwise you get access denied.
Are we sure that we should be
Are we sure that we should be fixing this in perusio's config and not in Drupal itself? It seems fishy that this would only be broken on installation.
The Boise Drupal Guy!
regular AJAX error
After successfully installing Drupal 8 (on nginx with perusio's config), I still get regular AJAX errors, simply when I have a progress bar (as during the process installation) for example with an installation/update of another language. Seems to be aleatoty...
An AJAX HTTP error occurred.
HTTP Result Code: 502
Debugging information follows.
Path: http://drupal8.local/...
StatusText: Bad Gateway
ResponseText:
502 Bad Gateway
502 Bad Gateway
nginx
I've seen a lot other people
I've seen a lot other people with the same problem.
Check the D8 requirements, you need php5-curl installed. If that doesn't solve it, try checking the nginx error log
I just did a successful
I just did a successful install of D8 on Drupal today via the GUI. I guess whatever was broke has since been fixed. Good, because I was getting the impression that there wasn't much overlap on the Venn diagram of "Nginx users" and "People who know a lot about D8" yet. Let's see if I can do my own small part to fix that…
The Boise Drupal Guy!
I'm currently having an issue
I'm currently having an issue where any time my the site needs to do an on-site redirection, there's a 502 Bad Gateway error page, and the following is printed in nginx's error log:
Things work fine in D7, so I think this might be a recent regression in Drupal 8. Am I the only one?
The Boise Drupal Guy!
You're not alone !
I'm having the same issue and currently investigating.
Unfortunately I can't find any detail in any log file or watchdog...
I'll keep you informed of my progress in the analysis !
I'm looking into it further.
I'm looking into it further. Via git bisect, I've found that commit 00cb147e146d24c87bc31462e9ff3aabb3dd1569 is the culprit; it replaces drupal_goto() with RedirectResponse, a Symfony class. It was committed back in June, so I'm not sure why it just now seems to be cropping up… Unfortunately, further attempts to debug the problem haven't worked; for whatever reason, my breakpoints inside the Symfony class are never reached. I'll try to experiment further for the good of all my Nginx bretheren.
The Boise Drupal Guy!
Quick fix
Hello,
Finally it seems that the move to RedirectResponse does no longer allow upstream connection cache...
I've just found a quick fix by commenting out the "keepalive 5" line in the upstream configuration (upstream_php*.conf files in perusio's Nginx config) !
Thanks, florian.cathala! I
Thanks, florian.cathala! I was trying a whole bunch of things, and nothing worked… but sure enough, commenting out the "keepalive" line fixed the problem. Gulp, I was afraid I was going to have to switch back to Apache to finish this project there for a minute!
Wise wizard perusio, are you reading this? Any idea what might be going on? I really couldn't see anything strange going on in RedirectResponse and related classes that would cause that to fail, but the old drupal_goto() to not fail… it seems to be doing the same thing as far as the HTTP response is concerned. A stumper.
The Boise Drupal Guy!
It works!
I can confirm this issue and the quick fix. Thanks Florian!
hello, i run d6,d7 and d8
hello,
i run d6,d7 and d8 site on my environment and i never have problems with installation from d8 alpha releases.
Greets from Germany
Prepaid Tarifvergleich
Are you using Perusio's
Are you using Perusio's config? I haven't yet ruled out something in the Nginx layer causing this problem.
The Boise Drupal Guy!
no i don´t use Perusio's
no i don´t use Perusio's config ...just parts of
i have nginx and varnish running and just wondering me about your problems but see i´m not a pro at all
i run nginx 1.4.3 and still all sites are running
Server: nginx
Content-Type: text/html; charset=UTF-8
X-Powered-By: PHP/5.3.10-1ubuntu3.8
Cache-Control: max-age=315360000
X-Drupal-Cache: HIT
Etag: "1384507418"
x-ua-compatible: IE=edge,chrome=1
Content-Language: de
Last-Modified: Fri, 15 Nov 2013 09:23:38 GMT
x-generator: Drupal 8 (http://drupal.org)
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Vary: Cookie, accept-encoding
Content-Encoding: gzip
Content-Length: 3627
Accept-Ranges: bytes
Date: Thu, 19 Dec 2013 08:05:36 GMT
X-Varnish: 952803315 952802639
Age: 18589
Via: 1.1 varnish
X-Varnish-Cache: HIT
X-Varnish-Cache-Hits: 5
Greets from Germany
Prepaid Tarifvergleich
Install Protected by Auth
A few additional notes re: Perusio's config for D8 installations:
- By default /core/install.php will be prohibited; you need to uncomment "include apps/drupal/drupal_install.conf" in your virtual host (assuming it's based on example.com.conf), or manually handle this location yourself.
- "drupal_install.conf" protects this location by http auth. If you don't want/need this protection, you can uncomment the two lines starting with "auth_basic" under the /core/install.php location.
Getting rid of ?q="..."
As per https://drupal.org/node/1659580, it seems the q query string parameter is no longer necessary nor supported in core. I've noticed that when submitting some forms on Drupal 8 I'm being redirected to a page with the full path followed by a query parameters also containing the full path. Such as:
http://localsite/admin/config/system/site-information?q=admin/config/sys...
I found that changing the fastcgi_param QUERY_STRING to "$query_string" from "q=$uri&args" in both "fastcgi_drupal.conf" and "fastcgi_no_args_drupal.conf" solves that issue. However, I'm no nginx expert, and this is just me playing around on a dev machine.
I have regulary some 502 bad
I have regulary some 502 bad gateway error on Drupal 8 alpha 9.
Changing the fastcgi_param QUERY_STRING to "$query_string" from "q=$uri&args" seems to not have any effect. Same error for example when i clear the cache.
However, commenting out keepalive 5 in the upstream configuration seems to do the trick.
For reference, Seems to be a
For reference,
Seems to be a php bug
https://bugs.php.net/bug.php?id=67583&thanks=6
and
https://github.com/php/php-src/pull/709
which have been fixed/committed on july 7
Same problem - KeepAlive!!!
This was happening to me while installing Drupal 8 beta1. GET's were fine, but posting a form triggered a 502 error as listed above.
The fix for me was
No idea why this didn't break anything else though.
I just tried an install of B1
I just tried an install of B1 myself… I didn't get a 502 this time, but an error from Symfony, I think:
"Symfony\Component\Routing\Exception\RouteNotFoundException: Route "" does not exist. in Drupal\Core\Routing\RouteProvider->getRouteByName() (line 147 of /Users/Albright/Sites/d8.test/www/core/lib/Drupal/Core/Routing/RouteProvider.php)."
Trying to go to the front page manually causes a standard PHP undefined method.
What a mess. Perhaps I'll have a closer look over the weekend.
The Boise Drupal Guy!
Commenting out keepalive 5
Commenting out keepalive 5 fixed a similar issue for me as well.
right access ?
Are you sure that user which run nginx process have right access everywhere ?
Commenting out keepalive 5
Commenting out keepalive 5 in upstream_phpcgi_unix.conf (perusio's nginx config) helps on drupal 8 cloned from git (latest). Otherwise I get 502 on first page load (any page).