Nginx, php-fpm, ЧПУ и капча Есть решение

ТТТ, но чпу подцепилось гладко. Товары получают правильные чпу и становятся доступными по ним. Однако капча не хочет генерироваться :( Адрес картинки капчи:

/shop/captcha.php?rid=1418400846548b144e948af

Естественно, этой папки и файла не существует.

Вопрос: какое правило прописать для этого файла в конфиге nginx, чтобы все заработало как надо?

PS: видел класс для рекапчи, можно ли ее подключить?

5 ответов

  • 1
    Михаил Ушенин Webasyst 12 декабря 2014 12:29 # Решение

    Этот конфиг пробовали использовать? http://www.webasyst.ru/developers/docs/tips/nginx-...

  • 1
    Arti 13 декабря 2014 12:02 # Решение

    И еще, ребята, кажысь у вас ошибка в документации:

    location ~* ^/wa-data/public/contacts/photo/[0-9]+/ {
    root
    /var/www/fw/;
    access_log off
    ;
    expires
    30d;
    error_page
    404 = @contacts_thumb;
    }

    location
    @contacts_thumb {
    include
    /etc/nginx/fastcgi_params;
    fastcgi_pass
    127.0.0.1:9000;
    fastcgi_param SCRIPT_NAME
    /wa-data/public/contacts/photo/thumb.php;
    fastcgi_param SCRIPT_FILENAME $document_root
    /wa-data/public/contacts/photo/thumb.php;

    В то время как правильный путь:

    /wa-data/public/contacts/photos/

    Поэтому у контактов не генерируются тумбочки их фоток

  • 1
    Arti 12 декабря 2014 12:32 #

    Да, именно этот конфиг и стоит. В логе nginx пишется, что этот файл не найден

    • +1

      Подозреваю что конфиг всё же немного другой, и там скорее всего есть какое-то правило для *.php, ну либо у вас что-то не так в общем fastcgi_params
      Т.к. по нашему конфигу всё заворачивается на index.php и ошибки про то, что файл не найден быть просто не может.

      • +1
        admin33 admin33 10 октября 2015 14:50 #

        У меня такая же проблема, есть правило для *.php - без этого правила вобще ничего не работает. подскажите какое правило можно прописать именно для location ~ captcha\.php ?

  • 1
    Arti 12 декабря 2014 12:32 #

    Да, именно этот конфиг и стоит. В логе nginx пишется, что этот файл не найден

  • 1
    Arti 13 декабря 2014 11:35 #

    Спасибо, нашел ошибку!

    я поставил пароль через location / {} и из-за этого не работало. Убрал локэйшн и все стало ок!

    • +1
      admin33 admin33 9 октября 2015 09:28 #

      не могли бы вы пояснить, что конкретно вы убрали из конфига nginx. у меня такая же проблема сейчас возникла

      • +1
        Arti Arti 12 октября 2015 05:37 #

        самый первый location такой:


            location /index.php {
                include /etc/nginx/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            }

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите