NginX Nested Location Проблема: выплевывая сырой PHP
Я изо всех сил пытался понять логику NginX в обработке заказа местоположения, но это все еще за мной, и я подозреваю, что именно поэтому у меня возникает следующая проблема.
Я запускаю экземпляр SugarCRM, который заблокирован базовой аутентификацией. Есть несколько файлов, таких как ical_server.php, для которых я хочу отключить базовую аутентификацию, чтобы смартфоны могли легко получить доступ к этому подписанному календарю, который уже имеет свою собственную безопасность на основе токенов.
У меня есть это в моей конф. Но ical_server.php загружается как сырой php, что говорит о том, что он не достигает парсера fastcgi, хотя остальная часть CRM работает просто отлично.
location /sugarcrm/ {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
location ~ _server.php$ {
auth_basic "off";
}
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_max_temp_file_size 0;
fastcgi_buffer_size 56k;
fastcgi_buffers 16 48k;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Как я могу добиться этого выборочного отключения auth basic?
1 ответ
Поскольку я не могу наградить Алексея Тен правильным ответом через его комментарий, вот рабочий конфиг:
location /sugarcrm/ {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
location ~ _server.php$ {
auth_basic "off";
include /etc/nginx/conf.d/global/fastcgi.conf;
}
try_files $uri =404;
include /etc/nginx/conf.d/global/fastcgi.conf;
}
}
Поскольку, как указывает Алексей, fastcgi не наследуется, я должен снова поместить его в папку _server.php$. Посредством включения он тоже неплохо наводит порядок. Теперь php разбирается красиво.
(Тот факт, что auth_basic полностью отключен в этом файле, на самом деле не предназначен, но об этом говорится в другом вопросе. Просто упомяните об этом на случай, если кто-то найдет это...)
Еще раз спасибо, Алексей.