Маразм крепчал. У меня все работало, у людей – нет. В чем же косяк? FireBug ругался на неожиданные символы и все бы было норм, но определить отчего и почему не представлялось возможным. Пришлось залогиниться к человеку по TeamViewer, и увидеть страшную картинку на gzip-компрессоре TinyMCE:
expects parameter to be array, null given
Эта строчка оповещала, что в коде:
// Check if it supports gzip
if (isset($_SERVER['HTTP_ACCEPT_ENCODING']))
$encodings = explode(',', strtolower(preg_replace("/s+/", "", $_SERVER['HTTP_ACCEPT_ENCODING'])));
// Check if the server and client supports gzip compression
if ($this->settings['compress'] && (in_array('gzip', $encodings) || in_array('x-gzip', $encodings) || isset($_SERVER['---------------'])) && function_exists('gzencode') && !ini_get('zlib.output_compression')) {
[...]
Не определяется переменная $_SERVER[‘HTTP_ACCEPT_ENCODING’] , которая в свою очередь должна определятся сервером. Что у нас сервер – nginx? Как у нас работает php? В режиме fastcgi! Отсюда вывод, что необходимые параметры не передаются. Что делаем? Врубаем gzip и передаем параметры:
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Some version of IE 6 don't handle compression well on some mime-types, so just disable for them
gzip_disable "MSIE [1-6].(?!.*SV1)";
# Set a vary header so downstream proxies don't send cached gzipped content to IE6
gzip_vary on;
И там где у нас передается SCRIPT_FILENAME, немного выше:
fastcgi_param HTTP_ACCEPT_ENCODING gzip,deflate,x-gzip;
И все в шоколаде! Юзвери довольны, я получил экспериенс, а товарищи с moxiecode получили еще 1 баг.
(C) ZonD80
Эта заметка – проблеск надежды. У меня как раз проблема с отображением tinymce в админке сайта, которую никак не могу решить. Сервер на nginx+php-fpm.
Поясните, пожалуйста, куда нужно вписать код, который вы привели? В конфиг виртуального хоста или в основной конфиг nginx или еще куда?
Заранее спасибо.
В виртуалхост в location для php на сколько я помню..