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 - Не найдено.Что не так с вышеуказанной настройкой?