/ / Wie man Nginx für PHP richtig konfiguriert (Yii Framework und Zurmo) - PHP, Konfiguration, YII, Nginx, Pfad

Wie konfiguriere ich Nginx für PHP (Yii-Framework und Zurmo) - php, Konfiguration, yii, nginx, Pfad

Ich versuche, Zurmo CRM auf meinem lokalen einzurichtenMaschine (Win8x64). Nach der Installation aller Anforderungen möchte ich mit der eigentlichen Installation beginnen. Das Problem ist, dass die Pfade von NGinx zu FastCGI PHP nicht korrekt übertragen werden. Hier ist meine Nginx-Serve-Konfiguration:

server {

listen       80;
server_name  zurmo.local;
root         html/zurmo.local;
set $index   "index.php";

charset utf-8;

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

location ~ ^/(protected|framework|themes/w+/views) {
deny  all;
}

location ~ .(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}

location ~ .php {

fastcgi_split_path_info  ^(.+.php)(.*)$;

set $fsn /$index;
if (-f $document_root$fastcgi_script_name){
set $fsn $fastcgi_script_name;
}

fastcgi_pass   127.0.0.1:9000;
include fastcgi_params;
fastcgi_param  SCRIPT_FILENAME   $document_root$fsn;
fastcgi_param  PATH_INFO        $fastcgi_path_info;
fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
}

location ~ /.ht {
deny  all;
}
}

Wenn ich zu zurmo.local (das zur hosts-Datei hinzugefügt wurde) rufe, bekomme ich "Diese Webseite hat eine Weiterleitungsschleife" mit einem URI, der so aussieht http://zurmo.local/app/app/ [...] /app/app/index.php Wenn statt $document_root$fsn und ich kommentiere das PATH_INFO und PATH_TRANSLATED als ich bekomme No input file specified. mit einem URI, der aussieht http://zurmo.local/app/app/index.php

Ich schaue weiter, wenn ich hinzugefügt habe access_log html/zurmo.local/logs/access.log; der Nginx error.log zeigt mir folgendes: [timestamp] [emerg] 4064#3660: CreateFile() "[path to stack]nginx/html/zurmo.local/logs/access.log" failed (3: The system cannot find the path specified). Wie Sie sehen können, ist das Verzeichnistrennzeichen nicht konsistent.

Eine letzte Anmerkung, mein Nginx-Home-Verzeichnis befindet sich in nginx/html Das ist in der Tat ein Link zu ../home Dies dient lediglich dazu, meine Dateistruktur so zu gestalten, dass sie in meinen Arbeitsalltag passt.

Wie kann ich Nginx korrekt konfigurieren, um fortzufahren (mit der Zurmo-Installation)?

Antworten:

2 für die Antwort № 1

Ich weiß, das ist eine alte Frage, aber hier habe ich getan, um nginx + zurmo arbeiten zu lassen.

server {
listen       80;
server_name  zurmo.local;
root         /home/www/zurmo.local;
access_log   /var/log/nginx/zurmo.access.log main;
index index.php;

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

location ~ ^/(protected|framework|themes/w+/views) { deny all; }
location ~ /. { deny all; access_log off; log_not_found off; }
location = /favicon.ico { log_not_found off; access_log off; }
location ~ .(js|css|png|jpg|gif|ico|pdf|zip|rar)$ {
try_files $uri =404;
}

location ~ .php {
fastcgi_split_path_info  ^(.+.php)(.*)$;

fastcgi_param  PATH_INFO        $fastcgi_path_info;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include fastcgi_params;

fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;

fastcgi_read_timeout 600s;
fastcgi_send_timeout 600s;
}
}

0 für die Antwort № 2

Ich glaube nicht, dass du das brauchst if() Aussage in Ihrem *.php Block. In meinen Nginx-Setups war alles, was ich je brauchte:

# Process PHP files
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;

# Include the standard fastcgi_params file included with nginx
include fastcgi_params;

fastcgi_param  PATH_INFO        $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

fastcgi_pass 127.0.0.1:9000;
}