Oto problem: (Jestem nowy w NGinx, poczytałem o tym, ale jeszcze nie znalazłem mojego działającego rozwiązania).
Jestem w systemie Windows.
System plików moich projektów znajduje się tam:
E:/www/
oto folder projektu, do którego spróbuję dotrzeć później w tym przykładzie:
E:/www/projectTest
Mam serwer apache działający poprawnie. Chciałbym skonfigurować serwer Nginx równolegle, dlatego skonfigurowałem mojego nginx przy użyciu innego portu (patrz plik konfiguracyjny poniżej).
Istnieją pliki Nginx:
E:/nginx/
Skopiowałem tam php:
E:/nginx/php/
Oto mój przykład „index.php”. Umieszczam w bieżących folderach, aby przetestować konfigurację php i nginx:
<?php
echo "THIS IS A TEST";
?>
Oto mój plik nginx.conf (usunąłem skomentowane linie):
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8111;
server_name localhost;
root E:/nginx/;
index index.php index.html index.htm;
charset utf-8;
location / {
alias E:/www/;
}
location /projectTest/ {
alias E:/www/projectTest/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root ../www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/conf/$fastcgi_script_name;
include fastcgi_params;
}
}
}
Wygląda na to, że wszystko działa poprawnie, co oznacza, że jeśli chcę dotrzeć do mojego „localhost: 8111 / index.php” lub „localhost: 8111 / projectTest / index.php”, otrzymuję „index.php”, który tam umieściłem tekst „TO JEST TEST” pojawia się na moim ekranie.
ALE :
Zauważyłem, że kiedy otwieram Firebug w celu przetestowania mojej strony, zawsze otrzymuję ten komunikat o błędzie (NAWET JEŚLI UZYSKĘ MOJĄ STRONĘ):
NetworkError: 404 Not Found - http://localhost:8111/
//Same error when I call index.php in url :
NetworkError: 404 Not Found - http://localhost:8111/index.php
//Same error when I call my projectTest folder :
NetworkError: 404 Not Found - http://localhost:8111/projectTest/
//Same error when I call my index.php in projectTest url :
NetworkError: 404 Not Found - http://localhost:8111/projectTest/index.php
Oto jak uruchamiam Nginx w linii poleceń:
E:\nginx>nginx.exe
E:\nginx\php>php-cgi.exe -b 127.0.0.1:9000 -c e:/nginx/php/php.ini
w php.ini:
doc_root = "E:/www"
extension_dir = "E:/nginx/php/ext"
error_reporting = E_ALL
Coś musi być nie tak z moją konfiguracją nginx, pochodzę z Apache, więc jestem naprawdę mylony z tym plikiem .conf, czytam wiele rzeczy na ten temat, ale nadal nie czuję się komfortowo z „rootem” lub „ alias ”, a wraz z szybką aplikacją php php ...
Dziękujemy za przeczytanie / pomoc / porady
źródło
$document_root
oznacza po prostu ścieżkę bieżącego katalogu głównego określonego w innym bloku lokalizacji.$fastcgi_script_name
oznacza wtedy nazwę pliku skryptu PHP na ścieżce.