500 ошибка из-за CMenu

Пишите о найденных ошибках в эту тему

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

500 ошибка из-за CMenu

Сообщение someone » 02 июн 2012, 09:34

В общем вываливает вот это:

Notice: Array to string conversion in /fortuna-thai.ru/framework/zii/widgets/CMenu.php on line 303


и в месте, где должен быть основной контент, это:

Error 500

Array to string conversion


Сервер: NGINX + PHPFPM + MySQL. Все требуемые модули к PHP поставлены, PHP самой последней версии.
Куда копать?

PS Знаю, что официально NGINX не поддерживается, но тут по-моему явно не в нём дело ;-)
someone
Прохожий
 
Сообщения: 38
Зарегистрирован: 28 мар 2012, 12:45
Очки репутации: 0

Re: 500 ошибка из-за CMenu

Сообщение Koduc » 04 июн 2012, 09:23

someone писал(а):PS Знаю, что официально NGINX не поддерживается, но тут по-моему явно не в нём дело ;-)

Под nginx прекрасно работает, могу даже скинуть в личку кусок файла конфигурации.

По существу проблемы: попробуйте почистить кеш - очистите папку /protected/runtime/cache
Далее, в админке в разделе "Управление верхним меню" посмотрите, все ли нормально.
Нотис этот временно можно отключить (чтобы зайти в админку), написав в самом начале файла index.php:
Код: Выделить всё
error_reporting(0); 
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20

Re: 500 ошибка из-за CMenu

Сообщение someone » 05 июн 2012, 04:55

Почистил кэш - не помогло. После внес директиву в index.php - сработало. По меньшей мере странно, так как до этого я просто отключал показ ошибок в php-fpm.ini (он у меня больший приоритет над php.ini имеет) и не помогало. На старом хостинге был отключен вывод ошибок, так что ошибка возможно не из-за переезда, а просто тянется ещё с тех времен...

По поводу куска конфига NGINX - правильно ли я перенес директивы mod_rewrite на новый лад?

Код: Выделить всё
if (!-e $request_filename) {
    
rewrite ^(.*)$ /index.php break;


Отмечу, что у меня на сервере голый nginx, а не вариант с проксированием Apache.
Просто подтвердите да или нет, и вообще неплохо было бы где-нибудь этот кусочек кода отразить в документации. А то как такового mod_rewrite ведь нет в nginx. Спасибо.
someone
Прохожий
 
Сообщения: 38
Зарегистрирован: 28 мар 2012, 12:45
Очки репутации: 0

Re: 500 ошибка из-за CMenu

Сообщение Koduc » 05 июн 2012, 15:53

Вот здесь хорошо расписано http://www.yiiframework.com/wiki/153/us ... d-php-fpm/
Заодно закрываем лишние папки на доступ и выполнение скриптов.
Note: old examples use IF statements, which nginx considers evil, this approach is more widely supported
Код: Выделить всё
location / {
        try_files $uri $uri/ /index.php?$args;
    } 


А по существу проблемы с CMenu - всетаки непонятно почему так.. В "чистом" продукте все в порядке с этим.
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20

Re: 500 ошибка из-за CMenu

Сообщение someone » 07 июн 2012, 07:26

Код: Выделить всё
location / {
        
try_files $uri $uri/ /index.php?$args;
    }  


Не работает... Некоторые ссылки идут с расширением htm. Скажем, в разделе вопросы-ответы. Сервер их просто отдаёт на скачивание. Как решать?
someone
Прохожий
 
Сообщения: 38
Зарегистрирован: 28 мар 2012, 12:45
Очки репутации: 0

Re: 500 ошибка из-за CMenu

Сообщение Koduc » 13 июн 2012, 09:23

Код: Выделить всё
   server {
       server_name XXX.com;
       server_name_in_redirect off;
      
       client_max_body_size 10M;
      
       access_log /home/XXX.com/log/access.log;
       error_log /home/XXX.com/log/error.log;
       root /home/XXX.com/html;

       index index.php;

       location ~ /(protected|framework|nbproject) {
      deny all;
      access_log off;
      log_not_found off;
       }
      
       location ~* /(images|assets|css|install|js|_sql|themes|uploads)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
       return 403;
       error_page 403 /403_error.html;
       }
      
       location / {
      try_files $uri $uri/ /index.php?$args;
       }
      
       index index.php index.html index.htm default.html default.htm;
      
       location ~ \.php$ {
      include fastcgi_params;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME /home/XXX.com/html$fastcgi_script_name;
       }

       location ~* \.(ico|pdf|flv)$ {
          expires 1y;
      access_log off;
       }
       location ~* \.(js|css|png|jpg|jpeg|gif|swf|txt|ico)$ {
          expires 14d;
      access_log off;
       }
      # deny access to .htaccess files, if Apache's document root
      # concurs with nginx's one
      #
      location ~ /\.ht {
          deny  all;
      }
       location ~ /\. {
      deny all;
      access_log off;
       log_not_found off;
        }      
   }

Вот вроде как полностью корректно работающий конфиг. Не ведутся левые логи, закрыты ненужные папки.
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20


Вернуться в Ошибки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59