Yii приложение не работает на linux-системе

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Yii приложение не работает на linux-системе

Сообщение <Flash> »

Всем доброго времени суток. Столкнулся со следующей проблемой. Разрабатывал сайт на своей машине с windows. Все было ок. После деплоя сайта на сервер с linux он перестал корректно работать, а именно, не удается подключить классы моделей. Вот что указано в конфиге main.php:

Код: Выделить всё

..
'import' => array(
        'application.models.*',
        'application.components.*',
    ),

..
RewriteEngine на апаче настроен и работает правильно(запускаются контроллеры, соответствующие запросу). Название моделей = Название класса + .php. Yii::getPathOfAlias('application.models') выдает правильную директорию.
Что самое интересное, если в import указать полный путь до определенной модели, все работает:

Код: Выделить всё

..
'import' => array(
        'application.models.*',
        'application.models.Tag',
        'application.components.*',
    ),
..
//Модель Tag подключается
 
Такие дела. Заранее спасибо за помощь.
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Yii приложение не работает на linux-системе

Сообщение lancedevnull »

линукс регистрозависимый, проверяйте регистр классов, имен файлов
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Re: Yii приложение не работает на linux-системе

Сообщение <Flash> »

lancedevnull писал(а):линукс регистрозависимый, проверяйте регистр классов, имен файлов
Так это я первым делом проверил. И если бы, например, в модели Tag была бы совершена ошибка в имени или названии класса, то вот эта штука:

Код: Выделить всё

'import' => array(
        ..
        'application.models.Tag',
        ..
)
тоже бы не сработала. Разве нет?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Yii приложение не работает на linux-системе

Сообщение yiijeka »

Не сработала бы, значит в коде new tag написано :)
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Re: Yii приложение не работает на linux-системе

Сообщение <Flash> »

yiijeka писал(а):Не сработала бы, значит в коде new tag написано :)
В том то и дело, что в коде:

Код: Выделить всё

Tag::model()->findAll(); 
Регистры везде соблюдены и корректны.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Yii приложение не работает на linux-системе

Сообщение yiijeka »

Не знаю тогда. Дайте полный лог ошибки и строку.
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Re: Yii приложение не работает на linux-системе

Сообщение <Flash> »

Я чуть не запамятовал. Для компонента user я использую свой класс, наследованный от CWebUser. Этот класс использует библиотеку, которая подрубает свой autoload. Но в конце всех функций, где идет обращение к этой библиотеке , я пишу:

Код: Выделить всё

spl_autoload_register(array('YiiBase', 'autoload')); 
Может быть здесь проблема? Еще раз повторюсь - на windows все ок.
Аватара пользователя
solo
Сообщения: 320
Зарегистрирован: 2013.03.08, 19:59
Откуда: Ukraine, VINNITSA

Re: Yii приложение не работает на linux-системе

Сообщение solo »

Права папки models какие?
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Re: Yii приложение не работает на linux-системе

Сообщение <Flash> »

solo писал(а):Права папки models какие?
755
Аватара пользователя
solo
Сообщения: 320
Зарегистрирован: 2013.03.08, 19:59
Откуда: Ukraine, VINNITSA

Re: Yii приложение не работает на linux-системе

Сообщение solo »

покажи стек ошибки.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Yii приложение не работает на linux-системе

Сообщение yiijeka »

<Flash> писал(а):Я чуть не запамятовал. Для компонента user я использую свой класс, наследованный от CWebUser. Этот класс использует библиотеку, которая подрубает свой autoload. Но в конце всех функций, где идет обращение к этой библиотеке , я пишу:

Код: Выделить всё

spl_autoload_register(array('YiiBase', 'autoload'));
Может быть здесь проблема? Еще раз повторюсь - на windows все ок.
spl_autoload_unregister(array('YiiBase', 'autoload')); есть же перед участком где "подрубает свой autoload"

и полный лог ошибки и строку уже наконец.
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Re: Yii приложение не работает на linux-системе

Сообщение <Flash> »

Строка:

Код: Выделить всё

$tags = Tag::model()->findAll(); 
Ошибка:

Код: Выделить всё

An exception occurred: include(Tag.php): failed to open stream: No such file or directory in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/YiiBase.php on line 427
XenForo_Application::handlePhpError() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/YiiBase.php at line 427
YiiBase::autoload() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/YiiBase.php at line 427
YiiBase::autoload()
spl_autoload_call() in /var/www/minecraft/data/www/minecraft-social.com/protected/controllers/ServerController.php at line 26
ServerController->actionIndex() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/web/actions/CInlineAction.php at line 49
CInlineAction->runWithParams() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/web/CController.php at line 308
CController->runAction() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/web/CController.php at line 286
CController->runActionWithFilters() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/web/CController.php at line 265
CController->run() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/web/CWebApplication.php at line 282
CWebApplication->runController() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/web/CWebApplication.php at line 141
CWebApplication->processRequest() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/base/CApplication.php at line 180
CApplication->run() in /var/www/minecraft/data/www/minecraft-social.com/index.php at line 4
Библиотека, как вы поняли, использует классы XenForo.
yiijeka писал(а):spl_autoload_unregister(array('YiiBase', 'autoload')); есть же перед участком где "подрубает свой autoload"
Да, есть.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Yii приложение не работает на linux-системе

Сообщение yiijeka »

Хм, посмотрите, что возвращает $className в 427 строке YiiBase?
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Re: Yii приложение не работает на linux-системе

Сообщение <Flash> »

yiijeka писал(а):Хм, посмотрите, что возвращает $className в 427 строке YiiBase?
Доступа к linux машине сейчас, к сожалению, нет. На моем компе с windows $classname принимает значение Tag. Ничего не обычного.
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Re: Yii приложение не работает на linux-системе

Сообщение <Flash> »

Up, что-ли.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Yii приложение не работает на linux-системе

Сообщение yiijeka »

Покажите ServerController->actionIndex
<Flash>
Сообщения: 56
Зарегистрирован: 2012.10.02, 18:16

Re: Yii приложение не работает на linux-системе

Сообщение <Flash> »

yiijeka писал(а):Покажите ServerController->actionIndex

Код: Выделить всё

public function actionIndex() {
        $isGuest = Yii::app()->user->getIsGuest();
        $this->layout = 'main';
        $versions = Version::model()->findAll();
        $tags = Tag::model()->findAll();
        $this->render('monitoring', array('versions' => $versions, 'tags' => $tags, 'isGuest' => $isGuest));
    } 
Замечу, что подобная ошибка возникает в любом контроллере, где используются модели(в том числе, унаследованные и от CFormModel)/компоненты. Если в import я прописываю все импорты вручную:

Код: Выделить всё

'import'=>array(
        'application.models.Tag',
         'application.models.Version',
          ...
        'application.components.SuperComponent',
        'application.components.SuperComponent2',
    ),
 
модели и компоненты подключаются, но появляется аналогичная ошибка для отображения.
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Yii приложение не работает на linux-системе

Сообщение flashimage »

Может tag у вас это модель модуля?
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Yii приложение не работает на linux-системе

Сообщение yiijeka »

Чёт я не понял тогда
вызывается ServerController->actionIndex() in /var/www/minecraft/data/www/minecraft-social.com/yii/framework/web/actions/CInlineAction.php at line 49
а потом вызывается spl_autoload_call() in /var/www/minecraft/data/www/minecraft-social.com/protected/controllers/ServerController.php at line 26 ? т.е. вы отключили spl_autoload_unregister(array('YiiBase', 'autoload')); а потом выполняете index а потом spl_autoload_call а потом включаете spl_autoload_register(array('YiiBase', 'autoload')); ?
Ответить