HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Recaptcha not working (Vanilla 2.5.1)

I've migrated my old support site from phpBB to Vanilla (and what an improvement it is too!) - but I'm having some difficulty with Recaptcha. I've entered my keys in the User Registration Settings - and clicking Save reports that 'Your settings have been saved' (which sounds hopeful), but sadly Recaptcha still doesn't work.
Digging a little deeper into the Javascript logs, I see that clicking Save also resulted in an error 'The server responded with a status of 500 (Internal Server Error)' when trying to access dashboard/settings/registration.
Looking through my Vanilla install, I see that I have applications/dashboard/settings/class.hooks.php, configuration.php and structure.php - but no registration. Is something missing from my install? How can I make this work?
Thank you in advance for any help that you may be able to provide.

Comments

  • R_JR_J Admin

    You should have a .htaccess file in the root folder of your forum. The purpose of this file is to internally change "yourdomain.com/dashboard/settings/registration" to You should have a .htaccess file
    "yourdomain.com/index.php?p=/dashboard/settings/registration". So the only file you will find is the index.php and which file is called afterwards is depending on that "front controller". You will most probably be able to find /applications/dashboard/controllers/class.settingscontroller.php with the method registration, but you shouldn't need to search for that.

    A 500 server error is almost always a misconfiguration. Look at this

  • Ahh. That makes sense. What would the settings for my nginx configuration be (no apache = no htaccess!)

  • Excellent suggestions, all - but none get me any closer to a solution. To be specific, everything else about my Vanilla installation works and looks beautiful. The only bit that doesn't work correctly is recaptcha. My nginx configuration looks like this:

    server {
            listen 0.0.0.0:8080;
            server_name  <my website name>.com www.<my website name>.com;
            return 301 https://$server_name$request_uri;
    }
    
    server {
            listen 0.0.0.0:8443;
            server_name  <my website name>.com www.<my website name>.com;
            ssl_certificate     /bitnami/nginx/conf/bitnami/certs/www.<my website name>.com.crt;
            ssl_certificate_key /bitnami/nginx/conf/bitnami/certs/www.<my website name>.com.key;
            server_tokens off;
    
            error_log "/opt/bitnami/nginx/logs/<my website name>-error.log";
            access_log  "/opt/bitnami/nginx/logs/<my website name>-access.log";
    
            location / {
                    try_files $uri $uri/index.php;
            }
    
            location ~ \.php$ {
            # fastcgi_pass [PHP_FPM_LINK_NAME]:9000;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_pass phpfpm-<my website name>:9000;
                    fastcgi_index index.php;
                    include fastcgi.conf;
                    root /app;
                    error_page 401 /e401.php;
                    error_page 403 /e403.php;
                    error_page 404 /e404.php;
                    fastcgi_intercept_errors on;
            }
    
            location ~ \.htm$ {
                    root   /opt/bitnami/nginx/html/<my website name>/htdocs;
            }
    
            location ~* \.(js|css|png|jpg|jpeg|gif|ico|dmg|zip|svg)$ {
                    expires max;
                    log_not_found off;
                    root   /opt/bitnami/nginx/html/<my website name>/htdocs;
            }
    
            location /wordpress {
                     try_files $uri $uri/ /wordpress/index.php?$args;
            }
    
            location /forum {
                    try_files $uri @vanilla;
            }
    
            location @vanilla {
                    rewrite ^/forum(/.*) /forum/index.php?p=$1&$args last;
            }
    
            location ~ \.php$ {
                    fastcgi_split_path_info ^(/wordpress)(/.*)$;
            }
    }
    
    

    My website is setup using nginx in Docker - hence the use of 8080 and 8443.

    When setting up reCAPTCHA, and after clicking Save, I get this screen:

    After having done this (with the associated Javascript errors described earlier), an attempt to sign up a new account looks like this:

Sign In or Register to comment.