मेरा पहली बार Nginx का उपयोग कर रहा है, लेकिन मैं अपाचे और लिनक्स से परिचित हूं। मैं एक मौजूदा प्रोजेक्ट का उपयोग कर रहा हूं और जब भी मैं इंडेक्स देखने की कोशिश कर रहा हूं। मुझे 404 फाइल नहीं मिली।
यहाँ access.log प्रविष्टि है:
2013/06/19 16:23:23 [error] 2216#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.ordercloud.lh"
और यहां साइट-उपलब्ध फ़ाइल है:
server {
set $host_path "/home/willem/git/console/www";
access_log /www/logs/console-access.log main;
server_name console.ordercloud;
root $host_path/htdocs;
set $yii_bootstrap "index.php";
charset utf-8;
location / {
index index.html $yii_bootstrap;
try_files $uri $uri/ /$yii_bootstrap?$args;
}
location ~ ^/(protected|framework|themes/\w+/views) {
deny all;
}
#avoid processing of calls to unexisting static files by yii
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(.*)$;
#let yii catch the calls to unexising PHP files
set $fsn /$yii_bootstrap;
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;
#PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fsn;
}
location ~ /\.ht {
deny all;
}
}
मेरा / होम / विलेम / git / कंसोल www-data के स्वामित्व में है: www-data (मेरा वेब उपयोगकर्ता php आदि चला रहा है) और मैंने इसे 777 अनुमतियों से बाहर निकाल दिया है ...
मेरा सबसे अच्छा अनुमान है कि कुछ विन्यास के साथ गलत है, लेकिन मैं इसका पता नहीं लगा सकता ...
अद्यतन करें
तो मैंने इसे स्थानांतरित कर दिया /var/www/
और बहुत अधिक मूलभूत कॉन्फ़िगरेशन का उपयोग किया:
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /var/www/;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name console.ordercloud;
location / {
root /var/www/console/frontend/www/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www;
include fastcgi_params;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
deny all;
}
}
इसके अलावा अगर मैं फोन करता localhost/console/frontend/www/index.php
हूं तो मुझे 500 पीएचपी मिलती है जिसका मतलब है कि यह वहां सेवा दे रहा है। यह सिर्फ बंद नहीं है।