não funciona no servidor

Bom dia pessoal, to com um problema, criei um sistema inteiro usando o Yii, e agora copiei ele pro servidor e não ta rodando, ja tentei mecher no arquivo index.php, mas não obtive sucesso.

O erro:

CException

Description

Application runtime path "/var/www/html/area_teste/cnm/protected/runtime" is not valid. Please make sure it is a directory writable by the Web server process.

Source File

/var/www/html/area_teste/cnm/framework/base/CApplication.php(236)

obrigado pela ajuda…

Desculpa pessoal, ja consegui resolver, era permissão, mas mesmo assim valeu…

Bom dia pessoal, tive que fazer uma outra versão do sistema, e agora ja coloquei as permissões nos lugares certos e foi tudo ok, só que quando tento ver por exemplo a area de adm que é um alistagem simples com uma colunas de comandos ao lado (ver, editar e excluir) aparece um erro:


PHP Error

Description


Undefined variable: skin

Source File


/var/www/html/area_teste/cnm/protected/views/funcionarios/_form.php(108)

no meu servidor local esta rodando tudo ok, mas onle da esse erro.

Provavelmente as configs do servidor não permitem usar uma variável não iniciada. Posta o trecho do cógigo com erro pra dar uma olhada melhor.




00104:     <div class="row">

00105:         <?php echo $form->labelEx($model,'data_nas'); ?>

00106:         <?php echo $form->textField($model,'data_nas'); ?>

00107:         <?php echo CHtml::image("images/calendario.png","calendar", array("id"=>"nas_button","class"=>"pointer")); ?>&nbsp;(Clique no calendario)

00108: <?php $this->widget('application.extensions.calendar.SCalendar', array('inputField'=>'funcionarios_data_nas', 'button'=>'nas_button', 'skin'=>$skin, 'stylesheet'=>$style, 'ifFormat'=>'%Y-%m-%d',)); ?>

00109:         <?php echo $form->error($model,'data_nas'); ?>

00110:     </div>



o erro ta na linha: "00108"

O mesmo widget que eu tava usando :) To modificando pro CJuiDatePicker, não pq achei melhor, mas pq já está no core. Assim eu deixo a definição de CSS mais imples.

Mas eu acho que é exatamente o que eu falei.

Vc pode simplesmente retirar o skin ou setar como ‘skin’=>‘aqua’ ou ‘skin’=>‘blue’, que são os 2 skins que vem com ele.

Ashh sim, deve ter o mesmo problema com ‘stylesheet’. Mas é exatamente a mesma coisa.

Onde eu poderia setar essas duas variaveis? tenho varios modulos.

Vc não precisa setar se for usar o skin "Blue", pois ele é default, ms se vc for mudar o skin, vc pode fazer assim:




<div class="row">


<?php $skin = 'blue'; ?>


<?php echo $form->labelEx($model,'data_nas'); ?>

<?php echo $form->textField($model,'data_nas'); ?>

<?php echo CHtml::image("images/calendario.png","calendar", array("id"=>"nas_button","class"=>"pointer")); ?> (Clique no calendario)

<?php $this->widget('application.extensions.calendar.SCalendar', array('inputField'=>'funcionarios_data_nas', 'button'=>'nas_button', 'skin'=>$skin, 'stylesheet'=>$style, 'ifFormat'=>'%Y-%m-%d',)); ?>

<?php echo $form->error($model,'data_nas'); ?>

</div>

vc tb pode colocar nos parametros do config e recuperar de lá quando for usar o widget.

O mesmo se aplica ao stylesheet

Blz consegui, só mais uma coisa, ja que esse post é sobre os problemas das mudanças da maquina local para o servidor, estou com outro problema:




PHP Error

Description


YiiBase::include(Diciplinas.php) [yiibase.include]: failed to open stream: No such file or directory

Source File


/var/www/html/area_teste/cnm/framework/YiiBase.php(338)


00329:     public static function autoload($className)

00330:     {

00331:         // use include so that the error PHP file may appear

00332:         if(isset(self::$_coreClasses[$className]))

00333:             include(YII_PATH.self::$_coreClasses[$className]);

00334:         else if(isset(self::$_classes[$className]))

00335:             include(self::$_classes[$className]);

00336:         else

00337:         {

00338: include($className.'.php');

00339:             return class_exists($className,false) || interface_exists($className,false);

00340:         }

00341:         return true;

00342:     }



erro esta na linha: 00338

pelo que agente discutiu aqui, acho que pode ser o mesmo problema de configuração no servidor de variaveis não criadas!?

Obrigado.

Suponho que este deveria acontecer tanto local quanto em qualquer servidor. Ele não está achando o arquivo.

Ou vc usa como sugiro abaixo no seu config/main.php (Mudando pra pasta onde ta o seu arquivo) ou tu usa o Yii::import no arquivo que tu chama ele.




'import'=>array(

    'application.models.*',

),



Opa, eu verifiquei aqui essa linha ai no meu main.php, ele já está la.

Mas uma coisa que percebi, isso acontece porque eu relaciono o modulo corrente com um outro, poressemplo o módulo funcionarios esta relacionado com o de diciplinas:




<?php

  $this->widget('zii.widgets.grid.CGridView', array(

    'id'=>'funcionarios-grid',

    'dataProvider'=>$model->search(),

    'filter'=>$model,

    'columns'=>array(

	'id_funcionario',

	'nome',

	'cidade',

	'nivel',

	'cargo',

	/*array('name'=>'diciplina_id', 'value'=>'$data->diciplinases->diciplina'),*/ // AQUI ESTA O RELACIONAMENTO

	'usuario',

	array(

	  'class'=>'CButtonColumn',

	),

      ),

    )

  );

?>



veja que na linha onde eu comentei, se eu tirar o comentario o erro aparece só quando o sistema esta online, se eu tiro o comentario ele funciona normalmente no online, no local eu não tenho esse problema.

sobre o CGridView, eu não sei absolutamente nada. Meu sistema todo ainda tem o JQGrid, pq o CGridView não existia nas versões mais antigas do Yii.

Bom dia pessoal

Descobri uma coisa interessantes sobre esse problema:

quando essa função é chamada ela recebe o argumento $className




public static function autoload($className){

	// use include so that the error PHP file may appear

	if(isset(self::$_coreClasses[$className]))

		include(YII_PATH.self::$_coreClasses[$className]);

	else if(isset(self::$_classes[$className]))

		include(self::$_classes[$className]);

	else{

		include($className.'.php');

		return class_exists($className,false) || interface_exists($className,false);

	}

	return true;

}



todas strings que passam pelo $className, sempre tem a primeira letra em maiusculo, então quando ele vai chamar um módulo relacionado no meu servidor local ele funciona normalmente, mesmo o $className tendo Funcionarios e o módulo relacionado sendo funcionarios, ja no servidor que hospedo me parece que existe uma diferença entre maiusculas e minuscas fazendo com que o erro aconteça.

alguem sabe algo sobre isso? tipo configuração do php para esse tipo de tratamento de maiusculas e minusculas???

Provavelmente vc desenvolve em windows e seu servidor é linux. Pq em sistemas unix-like, os nomes dos arquivos são case-sensive.

Poderá utilizar um software de monitoramento no seu sistema de TI que disponibilize relatórios a tempo e horas e ajude a gerenciar os recursos essenciais do servidor (CPU, memória, disco, logs de evento, contadores, etc.). Existem monitor servidor com versões gratuitas de avaliação disponíveis na internet