2013-11-26 4 views
0

Я использую ниже настройки конфигурации, но при загрузке загружается исходный файл индекса. Но он показывает вывод index.html, если он помещен вместо index.phpКак настроить виртуальный хост в nginx?

В целом, похоже, что он не читает файл php.

server { 
server_name test.com; 

root /var/www/test; 

index index.html index.php; 

# serve static files directly 
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { 
access_log off; 
expires max; 
} 

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

location ~ /\.ht { 
deny all; 
} 
} 

ответ

1

Вы должны настроить PHP-FPM или FastCGI, если вы не получите простой файл:

fastcgi_pass 127.0.0.1:9000; 
fastcgi_param SCRIPT_FILENAME /var/www/test/index.php; 
fastcgi_param PATH_INFO $fastcgi_script_name; 
fastcgi_pass_header Host; 
fastcgi_pass_header X-Real-IP; 
include /etc/nginx/fastcgi_params; 

И PHP-FPM должен быть запущен в порту 9000

+0

Мне нужно что-то установить перед тем, как установить fastcgi? Я установил nginx и этого достаточно? –

+1

Вам нужна php-fpm, работающая как служба. Это выполнит ваши php-файлы. – mcuadros

+0

Большое спасибо. Я могу выполнить php-файлы сейчас. Но он не принимает никакого другого URL-адреса. Я имею в виду, что в Apache мы o mod_rewrite, так же ват, что нам нужно делать здесь? например, 'https: // test.com/auth/register' не распознает –

1

Вот мой основной VirtualHost файл

server { 
    server_name example.com www.example.com; 
    root /path/to/root; 
    location/{ 
     try_files $uri $uri/ /index.php$request_uri; 
    } 
    location ~* \.php$ { 
     include fastcgi_params; 
     fastcgi_pass unix://var/run/php5-fpm.sock # if you use sock files 
     fastcgi_pass http://127.0.0.1:9000; # if you use port 9000 
    } 
} 

Вы должны прокомментировать один из fastcgi_pass линий, в соответствии с чем ваш websi te использует. и, конечно, вам нужно настроить try_files линию, чтобы соответствовать как ваш PHP получает маршрут, если вы используете QUERY_STRING, например, вы могли бы сделать что-то вроде

try_files $uri $uri/ index.php?$request_uri; # mind the extra `?` 

Также дважды проверьте путь к файлу носка в каталоге /var/run если вы получаете плохой шлюз [502] error

Смежные вопросы