php-pm-drupal icon indicating copy to clipboard operation
php-pm-drupal copied to clipboard

Authentication doesn't work

Open kentr opened this issue 10 years ago • 5 comments

I can't consistently log in when running Drupal under php-pm. I suspect this is somewhat due to it running under the cli SAPI, based on stepping through a request process and observing behavior around lines such as this in \Drupal\Core\StackMiddleware\Session::handle():

    if ($type === self::MASTER_REQUEST && PHP_SAPI !== 'cli') {
      $session = $this->container->get($this->sessionServiceName);
      $session->start();
      $request->setSession($session);
    }

Given that there are several other cases of guards for PHP_SAPI !== 'cli' in core, it's probably a broader problem.

kentr avatar Nov 21 '15 00:11 kentr

Experimentation with running cli scripts through php-fpm look promising.

In basic tests, PHP_SAPI == 'fpm-fcgi'.

References:

  • https://www.thatsgeeky.com/2012/02/directly-connecting-to-php-fpm/
  • http://manpages.ubuntu.com/manpages/hardy/man1/cgi-fcgi.1.html

kentr avatar Nov 21 '15 21:11 kentr

While authentication still isn't working, running PHP-PM under PHP-FPM does allow the request to pass the PHP_SAPI guard as expected in \Drupal\Core\StackMiddleware\Session::handle().

I'll post notes about this setup when I get a chance.

kentr avatar Jan 14 '16 05:01 kentr

Upon further inspection, I think the authentication and other form submission issues are more likely due to the apparent lack of support for cookies and POST data in \PHPPM\Bridges\HttpKernel::mapRequest().

I've made a pull request for the cookies and am experimenting with POST data.

kentr avatar Jan 15 '16 04:01 kentr

I take it back. POST is supported:

        // parse body?
        if (isset($headers['Content-Type']) && (0 === strpos($headers['Content-Type'], 'application/x-www-form-urlencoded'))
            && in_array(strtoupper($method), array('POST', 'PUT', 'DELETE', 'PATCH'))
        ) {
            parse_str($content, $post);
        }

kentr avatar Jan 15 '16 04:01 kentr

Cookie support was added.

Running this app under PHP-FPM does appear to solve the problem with PHP_SAPI. There are still problems with authentication ( #4, #6 ).

kentr avatar Feb 16 '16 16:02 kentr