J’essaie d’obtenir une application C :: A qui fonctionne dans l’environnement nginx fastcgi (debian 6.0) et en utilisant spawn-fcgi.
C :: Une route est configurée avec $self->mode_param( path_info=> 1, param => 'rm' );
le problème est que quelles que soient les url des applications C :: A ( example.com/cities
, example.com/profile/99
etc) que je demande, elles affichent toujours la page d’accueil, comme le fait example.com/index.pl
.
ma configuration nginx est
server { listen 80; server_name example.com; root /var/www/example.com/htdocs; index index.pl index.html; location / { try_files $uri $uri/ /index.pl; } location ~ .*\.pl$ { include fastcgi_params; # this is the stock fastcgi_params file supplied in debian 6.0 fastcgi_index index.pl; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PERL5LIB "/var/www/example.com/lib"; fastcgi_param CGIAPP_CONFIG_FILE "/var/www/example.com/conf/my.conf"; fastcgi_pass unix:/var/run/fcgiwrap.socket; } }
J’ai réussi à installer quelques applications php de la même manière.
dans ce cas, cependant, je soupçonne que je ne transmets pas l’essentiel de fastcgi_param
à C :: A qui est requirejs par elle.
quelles sont vos pensées?
Je gère CGI :: Application et utilise également Nginx. Je n’ai pas fait la même chose, mais j’essaierais ceci:
fastcgi_split_path_info ^(/index.pl)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_NAME $fastcgi_script_name;
Ceci est censé capturer et transmettre le PATH_INFO dont vous avez besoin.
Les références:
J’ai fini par résoudre le problème avec une solution de contournement dans mon application C :: A. Et je le documente ici.
Donc, je n’ai pas réussi à faire en sorte que nginx transmette PATH_INFO
à mon application C :: A. Pour contourner ce PATH_INFO
, j’ai défini le PATH_INFO
avec la valeur de REQUEST_URI
dans mon application C :: A afin qu’il récupère le bon mode d’exécution.
De plus, nginx ne passe pas non plus de QUERY_STRING
, j’ai donc dû append $query_ssortingng
à la route catch all afin de transmettre également QUERY_STRING
.
mon nginx config se termine comme ceci:
server { listen 80; server_name example.com; root /var/www/example.com/htdocs; index index.pl index.html; location / { try_files $uri $uri/ /index.pl?$query_ssortingng; } location ~ .*\.pl$ { include fastcgi_params; # this is the stock fastcgi_params file supplied in debian 6.0 fastcgi_index index.pl; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PERL5LIB "/var/www/example.com/lib"; fastcgi_param CGIAPP_CONFIG_FILE "/var/www/example.com/conf/my.conf"; fastcgi_pass unix:/var/run/fcgiwrap.socket; } }