2013-12-18 4 views
3

Я работаю на Windows 7 (64-разрядная версия), с PHP 5.4.12 и Nginx 1.5.8.Nginx и FastCGI загружают файлы PHP вместо их обработки

Я прочитал много руководств по настройке и устранению этой проблемы, которая заключается в том, что при запросе файла PHP из моего локального хоста он загружает его в виде файла вместо отображения страницы PHP. Ниже представлен мой файл nginx.conf:

worker_processes 1; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 

    sendfile  on; 
    #tcp_nopush  on; 

    #keepalive_timeout 0; 
    keepalive_timeout 65; 

    #gzip on; 

    server { 
     listen 8081; 
     server_name localhost; 
     access_log C:/nginx/logs/access.log; 
     error_log C:/nginx/logs/error.log; 
     root C:/nginx/html; 

     fastcgi_param REDIRECT_STATUS 200; 

     location ~ \.php$ { 
      fastcgi_pass 127.0.0.1:9000; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      include  fastcgi_params; 
     } 
    } 

} 

Я запускаю nginx.exe вручную через командную строку. Я также попытался запуска PHP-cgi.exe сначала вручную в отдельной командной строке, например:

C:\php5.4.12\php-cgi.exe -b 127.0.0.1:9000 

файл PHP Я запрашивающий находится в C:/Nginx/html, и я запросив его как:

http://localhost:8081/info.php 

И он загружает его. Содержимое этого файла PHP являются:

<?php 
phpinfo(); 
?> 

Как я могу возможно получить мои PHP скрипты для работы в этой среде. У кого-нибудь есть опыт с этим?

ответ

3

Попробуйте изменить default_type application/octet-stream; на default_type text/html; Возможно, ваш php-script не устанавливает тип содержимого MIME, и он идет от nginx.

+0

Эй, это сработало! Большое спасибо Ашоту! –

+0

Добро пожаловать (: –

+0

Интересно, но это сработало и для меня! Было бы здорово услышать техническое объяснение этого ... – f055

0

Try размещения «*» здесь

location ~* \.php$ { 

Существует что-то не так с вашими путями, и Nginx не знает путь доступны через URL путь он должен пройти через «fastcgi_pass». Поэтому он дает файл для загрузки.

Проверьте журнал ошибок от:

C:/nginx/logs/error.log; 

У вас есть "C: /nginx/html/info.php;"?

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