Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 022 004 раза!

Форум

Добро пожаловать, Гость!

Проблема с Yii urlManager (ЧПУ) + Nginx

Обсуждение общих вопросов связанных с программой
socode
Сообщения: 4
C нами: 2 года 9 мес
Откуда: Самара
Контакты:

Непрочитанное сообщение socode » 17 фев 2014, 18:42

Есть проект на Yii, был написан и работал под Apache, но решил я перебраться на Open Server и Nginx, и столкнулся со следующей проблемой, не работает ЧПУ, выдаёт 404 ошибку. Я долго и упорно гуглил и до последнего не хотел создавать эту тему, но видимо выхода нет. У меня не получается настроить Nginx. Настраивал по руководству, настраивал по мануалу из интернета, в частности этому

Я с Nginx никогда не работал, помогите мне разобраться пожалуйста.

У меня пара вопросов:

1) Все настройки над Nginx производятся в одном единственном файле Nginx.conf ? Или в нём хранятся основные настройки, а дополнительные, для проекта производятся в каких-то других файлах?

2) Существует ли конфиги на манер Apache? .htaccess или всё настраивается в одном файле?

P.S. Если есть у кого-то рабочий вариант настроек, поделитесь пожалуйста!

socode
Сообщения: 4
C нами: 2 года 9 мес
Откуда: Самара
Контакты:

Непрочитанное сообщение socode » 19 фев 2014, 00:26

Ребят, что, совсем никаких мыслей? :(

Аватара пользователя
Максим
Сообщения: 4878
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 19 фев 2014, 01:24

socode писал(а):Все настройки над Nginx производятся в одном единственном файле Nginx.conf ? Или в нём хранятся основные настройки, а дополнительные, для проекта производятся в каких-то других файлах?


Да, для проекта настройки производятся в отдельном файле который нужно создать. Это описано в руководстве (раздел вопросов и ответов). Вы его читали? Основные файлы-шаблоны настроек ни хоста ни сервера вам трогать не следует.

socode писал(а):Существует ли конфиги на манер Apache? .htaccess или всё настраивается в одном файле?


Нет, автор Nginx намеренно не делает аналог файла .htaccess для Nginx. Вот такая вот у него пуля в голове. Так что в Nginx такого нет, как в Apache, и всё нужно прописывать прямо в конфиге.

socode писал(а):P.S. Если есть у кого-то рабочий вариант настроек, поделитесь пожалуйста!


Примеров конфига Yii под Nignx я думаю должна быть куча, ищите в Google.

socode
Сообщения: 4
C нами: 2 года 9 мес
Откуда: Самара
Контакты:

Непрочитанное сообщение socode » 19 фев 2014, 07:37

Максим писал(а):... настройки производятся в отдельном файле ... описано в руководстве (раздел вопросов и ответов).


Спасибо, прочитал, создал отдельный файл конфигурации, добавил туда настройки и всё, ничего не изменилось, сервер просто не запускается. Лог Nginx-а пуст.

Максим писал(а):Примеров конфига Yii под Nignx я думаю должна быть куча, ищите в Google.


В этом то и проблема, что тем с настройками много, все они в целом одинаковые, но увы они не оказывают должного эффекта. У меня либо запускается сервер, но по ссылкам вида /login и т.п. выдаёт 404, либо просто не запускается.

Я прикрепил свой конфиг к посту.

P.S. Домен созданный для работы на локалке Nation.ru
Вложения
Nginx-1.4.4_vhost.rar
Конфиг
(1.43 КБ) 142 скачивания

Аватара пользователя
Максим
Сообщения: 4878
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 20 фев 2014, 20:21

Не совсем понимаю, вы хотите чтобы я за вас нашел или написал нужные правила под Nginx? Так нет, я не знаком с Yii и какие ему нужны правила не знаю. Что касается ошибки 404, то немудрено, особенно при использовании подобных правил реврайта (из представленного вами конфига):

   location /nation.ru/ {
      try_files $uri $uri/ /nation.ru/index.php?$query_string;
   }

socode
Сообщения: 4
C нами: 2 года 9 мес
Откуда: Самара
Контакты:

Непрочитанное сообщение socode » 26 фев 2014, 16:45

Ну с Божей помощью, методом тыка и мата вроде настроил.
Спешу поделиться решением с народом, быть может кому-то окажется полезным.

Вот этот кусок кода:

location /nation.ru {
    try_files $uri $uri/ /nation.ru/index.php?$query_string;
}


или немного аналогичный вариант:

location /%host% %aliases% {
    try_files $uri $uri/ /%host% %aliases%/index.php?$query_string;
}


О котором говорится вот в этом мануале, указывать не нужно. Все настройки нужно производить в location /

location / {
    root   "%hostdir%";
    index  index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$query_string;
}


И да, в блоке

location ~ \.php$ {
    include fastcgi_params;
}


в случае с Open Server(ом) указывать не нужно! Сервер перестаёт запускаться.

P.S. Прикрепляю рабочий конфиг. ;)
P.P.S. Почему не заработал метод указанный в мануале по Yii, я не знаю. Буду благодарен тому кто растолкует!
Вложения
Nginx-1.4.4_vhost.rar
(5.36 КБ) 334 скачивания


Вернуться в «Обсуждение Open Server»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость