SimpleSAMLphp, Nginx, Ubuntu 14.04

2

Minha configuração

  • Ubuntu 14.04 LTS de 64 bits
  • Nginx
  • SimpleSAMLphp 1.13.2

Meu bloco de servidor Nginx:

server {
    listen 80;
    listen [::]:80;

    root /var/www/sso/html;
    index index.php index.html index.htm;

    server_name xxx.xx.x.xx;

    location / {
        try_files $uri $uri/ /index.php?$args ;
    }

    # For simpleSAMLphp
    location /simplesaml {
        alias /var/www/sso/html/simplesaml/www;
        location ~ \.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.+)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
            }  
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include fastcgi_params; 
    }   
}   

Minha estrutura de arquivos é a seguinte, onde /var/www/sso/html/ é a pasta raiz. Eu coloquei a estrutura SimpleSAMLphp em /var/www/sso/html/simplesaml/

Eu segui as etapas de instalação encontradas no link Embora este guia abranja apenas o servidor Apache.

Eu investiguei como configurar o bloco do servidor Nginx da maneira correta. Mas o comportamento que obtenho é que, ao digitar meu-domínio.com/simplesaml , sou redirecionado para meu-dominio.com.br/simplesaml/module.php/core/frontpage_welcome.php Com a saída do site Nenhum arquivo de entrada especificado.

Eu olhei no meu Nginx error.log, que me diz o seguinte:

[error] 26283#0: *1 FastCGI sent in stderr: "Unable to open primary script: /var/www/sso/html/simplesaml/www//module.php/core/frontpage_welcome.php (No such file or directory)" while reading response header from upstream, client: xxx.xxx.xx.234, server: xxx.xx.x.xx, request: "GET /simplesaml/module.php/core/frontpage_welcome.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "xxx.xx.x.23"

Eu li sobre a mensagem de erro e tentei mudar de acordo com o que está escrito aqui: link

Eu verifiquei a permissão para arquivos / diretórios no meu diretório sso, após a execução:

find sso/ -type d -exec chmod 755 {} \;
find sso/ -type f -exec chmod 755 {} \;

Parece com isso:

Embora tudo pareça correto, o grupo de usuários permitiu executar / ler / gravar em arquivos. Eu também mudei para fastcgi_param SCRIPT_FILENAME $request_filename; no bloco do servidor Nginx.

Meus pensamentos

Como é que ele redireciona para simplesaml / module.php / core / frontpage_welcome.php e não simplesaml / modules / core / frontpage_welcome.php?

O que poderia estar errado?

    
por user107706 23.03.2015 / 15:39

3 respostas

1

Esse é o comportamento normal de um simplesamlphp até todas as instalações que já fiz no Apache. Eu ainda não tenho o Nginx funcionando, mas a ideia é que ele funcione da mesma forma, apenas para passar o path_info para module.php via php-fpm como um parâmetro.

    
por 08.01.2017 / 05:56
0

Veja esta resposta. Está dizendo arquivo não encontrado, pois não pode resolver o nome do arquivo do alias.

link

    
por 06.07.2016 / 18:54
0

Eu sei que estou atrasado para o jogo, mas isso pode ajudar. Eu me deparo com problemas semelhantes (e outros :-(), o que foi crucial para fazer desaparecer todas as minhas dores foi o valor de baseurlpath em simplesamlphp / config / config.php. O que funcionou para mim foi usar a URL real, não o * caminho nix para ../www, ou seja, baseurlpath=https://mysiteurl.com/simplesaml/

Para ref, aqui está a parte relevante do bloco de localização no meu bloco de servidores:

location /simplesaml/ {
    # Location Access and error log files.                                           
    access_log /var/log/nginx/simplesaml.access.log;                       
    error_log /var/log/nginx/simplesaml.error.log;

    # add alias root to global simple saml install
    alias /absolute_path/to/simplesamlphp/www/;

    # set index document
    index index.php;

    location ~ ^(?<prefix>/simplesaml)(?<phpfile>.+?\.php)(?<pathinfo>/.*)?$ {
        fastcgi_split_path_info ^(.+?\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$phpfile;
        fastcgi_param PATH_INFO $pathinfo if_not_empty;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        include fastcgi_params;
   }
}
    
por 06.09.2017 / 15:54

Tags