Конфигурация Nginx - Почему приложение Yii2 не обслуживается после того, как я добавил "location = /"? - PullRequest
1 голос
/ 12 марта 2019

Nginx уже настроен и работает некоторое время.Он обрабатывает 3 заявки.Наиболее важным является приложение № 1.Он состоит из 3 модулей: аккаунт, участник и админ.Поэтому эти адреса позволяют входить в приложение для разных типов пользователей: domain.com/account/login, domain.com/participant/login или domain.com/admin/login Также домашняя страница domain.com обрабатывается тем же приложением.Конфигурация Nginx была очень проста:

location / {
    try_files $uri $uri/ /index.php?$args;
}
root $rootPath;
index index.html index.php;
# PHP
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    include fastcgi_params;
    try_files $uri /index.php?$args;
}

Благодаря этой Домашней странице и Модулям обрабатывал Yii2.

Не думаю, что это должно быть актуально, но есть еще 2приложения, настроенные в nginx под местоположениями /application2 и / application3.Одним из них является приложение php Zend, а другим - приложение php и javascript.

Теперь мне нужно заменить домашнюю страницу WordPress на один пейджер.Желаемое решение состоит в том, чтобы:

  • домашняя страница, обслуживаемая Wordpress в domain.com
  • прикладных модулях Yii2, работала так же, как и раньше, чтобы все /participant, /account и /adminместоположения обслуживаются index.php в $rootPath
  • 2 другими приложениями, работающими как раньше в domain.com/application2 и domain.com/application3.

Для работы со страницей Wordpress я добавил один разделlocation = / для перенаправления основного адреса в приложение Wordpress.Но я не могу добавить вложенное местоположение для PHP, потому что я получаю эту ошибку: location "/(.+.php$)" cannot be inside the exact location "/"

Поэтому я изменил подход.Я установил для глобального корня путь Wordpress: root $wpPath; и добавил места для модулей учетных записей, участников и администраторов:

location /account {
    root $rootPath;
    if (-f $request_filename) {
        break;
    }

    # process PHP here
    location ~ /account/(.+\.php$) {
        alias $rootPath/$1;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

Главная страница (Wordpress) работает отлично.Но прикладные модули Yii2 (например, / aaccount) возвращают 404 - Не найдено.Что не так с вышеуказанной настройкой?

...