Nginx — алиас директории + PHP обработчик
Возникла необходимость сделать алиас директории средствами Nginx. Сделать алиас директории не составляет труда, но возникла проблема с обработчиком PHP в скриптах, находящихся в директории алиасе. Для решения проблемы необходимо прописать дополнительную конфигуарцию.
Для создания алиаса достаточно прописать следующие строки в конфигурацию
1 2 3 | location /newfolder/ { alias /var/www/oldfolder/; } |
Однако, при запросе php файлов, при проксировании передастся путь до php файла, который физически отсутствует и PHP интерпретатор выдаст ошибку 404. Исправить ситуацию может небольшое дополнение конфигурации, в конечном итоге она будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 | location /newfolder/ { alias /var/www/oldfolder/; location ~ \.php$ { ... fastcgi_param SCRIPT_FILENAME $request_filename; ... } } |
Либо
1 2 3 4 5 6 7 8 9 | location /newfolder/ { alias /var/www/oldfolder/; location ~ \.php$ { ... fastcgi_param SCRIPT_FILENAME /var/www/oldfolder/$script; ... } } |
Мы передаем интерпретатору реальный путь до php файла, вместо виртуального, созданного средствами алиаса.
Комментарии к Nginx — алиас директории + PHP обработчик (1)
Kasim Patillaev
Мне помогло, спасибо за пост 🙂