ФорумРазработкаУстановка и администрирование ПОВебсервер → помогите настроить ngnix + php fastcgi на windows xp

помогите настроить ngnix + php fastcgi на windows xp

  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 8 февраля 2010 г. 14:08, спустя 1 час 24 минуты 45 секунд

    да, через -s stop, потом опять запускал. У меня теперь проблема с рерайтом, как его граммотно написать? Я использую php-фреймворк codeigniter, в данный момент структура url выглядит примерно так: http://flashportal.com/index.php?/game/name

    я же хочу сделать http://flashportal.com/game/name
    тоесть хочу, чтобы оно вставляло после http://flashportal.com/

    index.php?/

    нашел пример конфига с рерайтом:

    server {

    listen 80;

    root /var/www/nginx-default/;
    access_log /var/log/nginx/localhost.access.log;
    index index.php index.html index.htm;

    error_page 500 502 503 504 /50x.html;

    location /codeigniter/ {

    if (-f $request_filename) {
    expires max;
    break;
    }

    if (!-e $request_filename) {
    rewrite ^/codeigniter/(.*)$ /codeigniter/index.php/$1 last;
    }
    }

    location = /50x.html {
    root /var/www/nginx-default;
    }

    location /codeigniter/index.php {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/nginx-default/codeigniter/index.php;
    include fastcgi_params;
    }
    }


    попытался как-то применить это к своему, но при обращении без index.php? возвращается ошибка 403:

    worker_processes 1;

    events {
    worker_connections 1024;
    }


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

    sendfile on;
    keepalive_timeout 65;


    server {
    listen 80;

    server_name flashportal.com;
    charset utf-8;

    root c:/dev/www/flashportal;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root c:/dev/nginx/html;
    }

    location / {

    if (-f $request_filename) {
    expires max;
    break;
    }

    if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php/$1 last;
    }


    index index.php;
    }

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

    где ошибка?
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 8 февраля 2010 г. 22:27, спустя 8 часов 18 минут 35 секунд

    Так попробуй, я не проверял


    rewrite http://flashportal.com/(.*) http://flashportal.com/index.php?$1 last;

    location / {
    try_files $uri $uri/ @codeigniter;
    }

    location @codeigniter {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/nginx-default/codeigniter/index.php;
    include fastcgi_params;
    }

    adw/0
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 февраля 2010 г. 4:00, спустя 5 часов 32 минуты 50 секунд

    получилось в результате так, если зайти на http://flashportal.com/, то 403:

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

    sendfile on;
    keepalive_timeout 65;


    server {
    listen 80;

    server_name flashportal.com;
    charset utf-8;

    root c:/dev/www/flashportal;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root c:/dev/nginx/html;
    }

    rewrite http://flashportal.com/(.*) http://flashportal.com/index.php?$1 last;

    location / {
    try_files $uri $uri/ @codeigniter;
    }

    location @codeigniter {
    fastcgi_pass 127.0.0.1:9123;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    }
    }


    что подправить?
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 9 февраля 2010 г. 4:25, спустя 25 минут 46 секунд


    server {
    listen 80;

    server_name flashportal.com;
    charset utf-8;

    root c:/dev/www/flashportal;

    rewrite (.*) /index.php?$1 last;

    location / {
    try_files $uri $uri/ @codeigniter;
    }

    location @codeigniter {
    fastcgi_pass 127.0.0.1:9123;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    }



    так попробуй
    adw/0
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 февраля 2010 г. 5:00, спустя 34 минуты 47 секунд

    теперь если набрать flashportal.com, то файл index.php скачивается в google chrome, а в IE6 оттадется php код. непрост это nginx
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 9 февраля 2010 г. 5:15, спустя 14 минут 34 секунды


    теперь если набрать flashportal.com, то файл index.php скачивается в google chrome, а в IE6 оттадется php код. непрост это nginx
    я думаю тебе стоит почистить кеш, или как в прошлый раз ребутнуть комп
    adw/0
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 февраля 2010 г. 6:15, спустя 1 час 30 секунд

    ребутнул, без изменений..
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 9 февраля 2010 г. 6:32, спустя 16 минут 38 секунд

    А, ссорь, тебе же надо для .php обрабортчики, ну так повесь:
    location ~ \.php
    adw/0
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 февраля 2010 г. 7:04, спустя 32 минуты 20 секунд

    поменял так, ребутнул комп, но без изменений

    server {
    listen 80;

    server_name flashportal.com;
    charset utf-8;

    root c:/dev/www/flashportal;

    rewrite (.*) /index.php?$1 last;

    location ~ \.php {
    try_files $uri $uri/ @codeigniter;
    }

    location @codeigniter {
    fastcgi_pass 127.0.0.1:9123;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    }
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 9 февраля 2010 г. 7:12, спустя 7 минут 43 секунды

    smackthat, ну ты явно не подумав фигачишь… почитай что такое try_files
    adw/0
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 февраля 2010 г. 7:35, спустя 23 минуты 3 секунды

    location ~ \.php {
    try_files $uri $uri/ @codeigniter;
    }

    как я понял, то здесь, если попадается php файл, то оно ничего не сделает, так как будет использован текущий URL, а до @codeigniter оно не дойдет. А что такое @codeigniter? это переменная объявленная нами?
    Спустя 70 сек.
    аа, я нашел, @codeigniter - именнованый location, тот, что ниже у меня в конфиге
    Спустя 151 сек.
    я разобрался, что такое try_files, но в чем проблема не понимаю..
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 9 февраля 2010 г. 8:10, спустя 35 минут 19 секунд

    try_files проверяет, есть ли файл физически… Если он есть, то срабатывает все что после него, если это не так, то срабатывает что написано в конце конструкции
    adw/0
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 февраля 2010 г. 8:20, спустя 9 минут 46 секунд

    я всеравно не понимаю в чем там ошибка
  • adw0rd

    Сообщения: 22907 Репутация: N Группа: в ухо

    Spritz 9 февраля 2010 г. 8:32, спустя 12 минут 30 секунд


    location ~ \.php {
               try_files $uri $uri/ @codeigniter;
           }

           location @codeigniter {
                     fastcgi_pass   127.0.0.1:9123;
                     fastcgi_index  index.php;
                     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                     include        fastcgi_params;
           }


    Если файл имеет расширение .php и он физически существует, то он отдастся как просто файл.
    Если он физически не существует, то передается управление на @codeigniter
    Спустя 119 сек.
    И еще, я тебе не говорил писать:


    location ~ \.php {
               try_files $uri $uri/ @codeigniter;
       }

    это ты сам придумал
    adw/0
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 февраля 2010 г. 8:53, спустя 20 минут 34 секунды

    так выходит нужно убрать $uri $uri/, так чтоли?

    location ~ \.php {
    try_files @codeigniter;
    }

    я так пробывал, тоже без изменений. А что ты имел ввиду под
    тебе же надо для .php обрабортчики, ну так повесь:
    location ~ \.php
    ?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!