Nginx — рассматривает PHP как двоичный файл
Вопрос
Мы используем Nginx+FastCgi в качестве бэкэнда для нашего сайта Drupal.Кажется, все работает нормально, за исключением этого URL-адреса.http:///sites/all/modules/tinymce/tinymce/jscripts/tiny_mce/plugins/smimage/index.php
(Мы используем модуль tinymce в Drupal, и URL выше используется, когда пользователь пытается загрузить изображение)
Когда мы использовали Apache, все работало нормально.Однако nginx обрабатывает этот двоичный URL-адрес и пытается его загрузить.(Мы проверили, что файл, указанный по URL-адресу, является действительным файлом PHP)
Есть идеи, что здесь может быть не так?
Я думаю, что это как-то связано с конфигурацией NGINX, но не совсем понимаю, что это такое.
Любая помощь очень ценится.
Конфигурация:Вот фрагмент файла конфигурации nginx:
root /var/www/;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
error_page 404 index.php;
location ~*
\.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template)$
{
deny all;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ {
access_log off;
expires 7d;
}
location ~* ^.+\.(css|js)$ {
access_log off;
expires 7d;
}
location ~ .php$ {
include /etc/nginx/fcgi.conf;
fastcgi_pass 127.0.0.1:8888;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
location ~ /\.ht {
deny all;
}
Решение
Сделай это
location ~ \.php$ {
вместо
location ~ .php$ {
Другие советы
Если это не помогло, убедитесь, что у вас работает fastcgi на порту 8888.Вы можете проверить это с помощью:
netstat -la | grep :8888
Все в порядке, если вы получите ответ типа:
tcp 0 0 localhost:9000 *:* LISTEN
Или попробуйте следующее и посмотрите, какой порт он прослушивает:
netstat -la | grep LISTEN
Возможно, файл php запущен, но генерирует двоичный файл.Этот скрипт генерирует изображение?Трудно сказать, не видя некоторых настроек.