Auteur Sujet: nginx / php7.0-fpm / codeigniter  (Lu 110 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne addikt1ve

  • Administrator
  • *****
  • Messages: 2 831
  • Sale Jeune™
nginx / php7.0-fpm / codeigniter
« le: décembre 13, 2017, 12:53:59 »
Coucou,

Je n'arrive pas à configurer nginx pour démarrer un site avec codeigniter. J'ai plusieurs sites qui fonctionnent sur cette machine, mais ce vhost ne fonctionne pas :

server {
listen 80 http2;
listen [::]:80 http2;
server_name xxx;

root /var/www/portail;
autoindex on;
index index.html index.php;

access_log /var/log/nginx/default-access_log combined;
error_log /var/log/nginx/default-error_log debug;

        # set expiration of assets to MAX for caching
        location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
                expires max;
                log_not_found off;
        }

        location / {
                # Check if a file or directory index file exists, else route it to index.php.
                try_files $uri $uri/ /index.php;
        }

        location ~* \.php$ {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        include snippets/fastcgi-php.conf;
        }
}

Aucune erreur dans les 2 fichiers de log spécifiés...
Les paramètres fastcgi sont exactement les mêmes pour les 2 autres sites (un nextcloud et un phpmyadmin, qui fonctionnent tous les deux).

Une idée ?

Bises,
« Modifié: janvier 17, 2018, 15:03:38 par addikt1ve »

Vincent

Hors ligne Fanch

  • Administrator
  • *****
  • Messages: 1 233
    • http://www.qth.fr
Re : nginx / php7.0-fpm / codeigniter
« Réponse #1 le: décembre 16, 2017, 20:07:31 »
Question, est ce qu'un bete fichier PHP genre <?php phpinfo(); fait la même chose ?

Quel est le contenu de /etc/nginx/snippets/fastcgi-php.conf ?

Est ce qu'il y a bien des logs pour ce vhost lors d'une requete ?

Y a-t-il un reverse proxy ?

Ca sent le problème nginx qui sait pas causer en http standard. (ssl invalide, http2 foireu, encodage...)
==> Mon blog : Quick Troll Hosted.

Hors ligne addikt1ve

  • Administrator
  • *****
  • Messages: 2 831
  • Sale Jeune™
Re : nginx / php7.0-fpm / codeigniter
« Réponse #2 le: décembre 17, 2017, 22:00:40 »
Oui, un phpinfo, même un bête fichier html donne le même résultat.

vincent@coucou:~$ cat /etc/nginx/snippets/fastcgi-php.conf
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;

vincent@coucou:~$ cat /etc/nginx/fastcgi.conf

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

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  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

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;

nginx ne génère aucun log, ni en access ni en error.

Il n'y a rien devant nginx sur le port 80 ; en 443 c'est du port-share openvpn.

J'avais aussi essayé en http simple au lieu de http2, sans succès.

À noter qu'en attendant de trouver une solution, j'ai installé nginx sur un raspberry et le site tourne...

Vincent

Hors ligne Fanch

  • Administrator
  • *****
  • Messages: 1 233
    • http://www.qth.fr
Re : nginx / php7.0-fpm / codeigniter
« Réponse #3 le: décembre 17, 2017, 22:11:46 »
J'insiste sur le fait qu'aucun vhost ne doit répondre en http2 sur le port 80.

grep http2 -r /etc/nginx
Le fait d'avoir un seul vhost en http2 sur le port 80 provoque cet effet (avec nginx en cours cas). Je m'avance sur cette possibilité, mais je le sens bien que ça va être ça ;-)

Voici la raison : Certains navigateurs ont décider de ne pas supporter le http2 si il n'est pas chiffré. (legende [2] sur l'image)

Source: caniuse.com
« Modifié: décembre 17, 2017, 22:58:48 par Fanch »
==> Mon blog : Quick Troll Hosted.

Hors ligne addikt1ve

  • Administrator
  • *****
  • Messages: 2 831
  • Sale Jeune™
Re : nginx / php7.0-fpm / codeigniter
« Réponse #4 le: décembre 18, 2017, 08:45:30 »
Je vais essayer de changer ça cet aprem alors. Tous mes vhosts sont en http2 sur le port 80 (mais simplement pour rediriger vers le 443).

Merci !

Vincent

Hors ligne addikt1ve

  • Administrator
  • *****
  • Messages: 2 831
  • Sale Jeune™
Re : nginx / php7.0-fpm / codeigniter
« Réponse #5 le: décembre 30, 2017, 18:27:08 »
Magnifique Fanch, encore une fois ! Problème réglé en virant le http2 sur le port 80 de mes autres vhost.

Vincent