Перенос сайта с хостинга на денвер. Первый запуск

Этот фреймфорк для меня новая штука. Перенес сайт с хостинга на локальную машину (на денвер), человек который создавал, не могу с ним связаться, а мне нужно перенести сатй на другой хостинг (advanta.org), но для начала, хочу локально его поднять, поэтому прошу помощи у вас. Что я сделал:

  1. Перенес сайт на денвер

  2. Загрузил базу в phpMyAdmin

  3. В config.php указал SQL базу и пользователя и пароль




'db'=>array(

            'connectionString' => 'mysql:host=localhost;dbname=guestbook',

            'emulatePrepare' => true,

            'username' => 'old',

            'password' => '12345',

            'charset' => 'utf8',

            /*'enableProfiling'=>true,*/

        )



  1. Запустил сайт и на выходе получаю слебующее:




289            $otvet = true;

290            $user = Users::model()->findByPk(Yii::app()->user->getId());

291            if($user->is_banned == 1)

292                $otvet = false;

293                

294            $model = new Post;

295            if(isset($_POST['Post']))

296            {

297                $this->add_post($model, $_POST['Post']['content'], Yii::app()->user->getId());

298            }

299        }

 

очень прощу помощи разобраться.

"На выходе" – имеется в виду, это все, что вы в результате видите в окне браузера? Как-то странновато тогда выглядит, никакого тебе сообщения об ошибке, просто несколько строк кода.

Какой текущий урл ?

Какой код прописан в соответсвующем урлу методе? Скорее всего, например, ищите в controllers/SiteController.php actionIndex()

Что прописано в файле index.php в корне приложения? Вот такая строка есть


defined('YII_DEBUG') or define('YII_DEBUG',true);

?

Ну и на всякий случай (не знаю какие у вас конфигурации в php.ini) - можно прописать




error_reporting(-1);

ini_set("display_errors", "On");



в начале того же index.php к примеру.

И начать, думаю, было бы проще и лучше с поднятия скелета приложения с нуля на локальном сервере, как описано здесь и в последующих двух разделах руководства.

вот что прописано SiteController.php в строке где ошибка выходит




// Проверяю имеет ли пользователь возможность отвечать

289			$otvet = true;

290			$user = Users::model()->findByPk(Yii::app()->user->getId());

291			if($user->is_banned == 1)

292				$otvet = false;

293				

294			$model = new Post;

295			if(isset($_POST['Post']))

296			{

297				$this->add_post($model, $_POST['Post']['content'], Yii::app()->user->getId());

298			}

299		}



и вот что прописано по actionIndex() в SiteController.php




 * This is the default 'index' action that is invoked

	 * when an action is not explicitly requested by users.

	 */

	public function actionIndex()

	{

		if(Yii::app()->user->isGuest and Yii::app()->params['showMainpage'] == 0) {

            $this->redirect(array('site/login'));

            Yii::app()->end();

			$otvet = false;

			$model=new Users;

			$mod = new LoginForm;

			if(isset($_POST['Users']))

			{



там это прописано

тоже прописал в начало index.php, после перезапуска денвера выдало следующее, а конфигурацию пхп.ини см. в атачче.




PHP Error


Declaration of SiteController::beforeRender() should be compatible with that of CController::beforeRender()


Z:\home\old-guards.com\www\protected\controllers\SiteController.php(3)


01 <?php

02 

03 class SiteController extends Controller

04 {

05     public $can_comment = false;

06     public $online = Array();

07     protected function beforeAction() {

08         Yii::app()->clientScript->registerScript('img', '

09             $(document).ready(function() {

10                 $.each($("#content img"), function(k,v) {

11                     w = new Array;

12                     w.push = $(this).attr("width");

13                     w.push = $(this).attr("src");

14                     console.log($(this).attr("src"));

15                     console.log($(this).width());

Stack Trace

#0	

–  Z:\home\old-guards.com\www\framework\web\CWebApplication.php(396): require("Z:\home\old-guards.com\www\protected\controllers\SiteController....")

391             $className=ucfirst($id).'Controller';

392             $classFile=$basePath.DIRECTORY_SEPARATOR.$className.'.php';

393             if(is_file($classFile))

394             {

395                 if(!class_exists($className,false))

396                     require($classFile);

397                 if(class_exists($className,false) && is_subclass_of($className,'CController'))

398                 {

399                     $id[0]=strtolower($id[0]);

400                     return array(

401                         new $className($controllerID.$id,$owner===$this?null:$owner),

#1	

–  Z:\home\old-guards.com\www\framework\web\CWebApplication.php(322): CWebApplication->createController("")

317      * @param string $route the route of the current request. See {@link createController} for more details.

318      * @throws CHttpException if the controller could not be created.

319      */

320     public function runController($route)

321     {

322         if(($ca=$this->createController($route))!==null)

323         {

324             list($controller,$actionID)=$ca;

325             $oldController=$this->_controller;

326             $this->_controller=$controller;

327             $controller->init();

#2	

–  Z:\home\old-guards.com\www\framework\web\CWebApplication.php(121): CWebApplication->runController("")

116             foreach(array_splice($this->catchAllRequest,1) as $name=>$value)

117                 $_GET[$name]=$value;

118         }

119         else

120             $route=$this->getUrlManager()->parseUrl($this->getRequest());

121         $this->runController($route);

122     }

123 

124     /**

125      * Registers the core application components.

126      * This method overrides the parent implementation by registering additional core components.

#3	

–  Z:\home\old-guards.com\www\framework\base\CApplication.php(155): CWebApplication->processRequest()

150      */

151     public function run()

152     {

153         if($this->hasEventHandler('onBeginRequest'))

154             $this->onBeginRequest(new CEvent($this));

155         $this->processRequest();

156         if($this->hasEventHandler('onEndRequest'))

157             $this->onEndRequest(new CEvent($this));

158     }

159 

160     /**

#4	

–  Z:\home\old-guards.com\www\index.php(18): CApplication->run()

13 defined('YII_DEBUG') or define('YII_DEBUG',true);

14 // specify how many levels of call stack should be shown in each log message

15 defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);

16 

17 require_once($yii);

18 Yii::createWebApplication($config)->run();

19 

20 


Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Dubai' for '4.0/no DST' instead in Z:\home\old-guards.com\www\framework\views\exception.php on line 217

2012-06-04 15:05:52 Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.2.12 Yii Framework/1.1.6



Для начала надо исправить ошибку beforeRender(). [color="#660066"][size="2"]SiteController[/size][/color][color="#666600"][size="2"]::[/size][/color][size="2"]beforeRender[/size][color="#666600"]size="2" не возвращает boolean что ли?[/size][/color]

[size="1"] [/size]Чтобы не было ошибки о date() – можно временнУю зону в php.ini прописать, или снова таки в index.php c помощью date_default_timezone_set().

И до сих пор не понятно, первоначально, при запуске приложения, что выводилось на экране браузера? Кусок кода или текст ошибки? Если ошибка - то какая именно?

И пожалуйста, куски кода лучше присылайте законченными конструкциями, а то сейчас непонятно, то ли метод так написан - не до конца, или не с начала - то ли так скопи-пастен, что усложняет поиск проблем.

И еще обратите внимание, насколько помню, денвер по умолчанию с utf-8 не дружит (что приводит к кракозябрам в предоставленном вами коде). Возможно, поможет AddDefaultCharset utf-8, прописанный в .htaccess файле.

При запуске в браузере выводит:

Fatal error: Class ‘Post’ not found in Z:\home\old-guards.com\www\protected\controllers\SiteController.php on line 294

вот такую фатальную ошибку.

вот можете посмотреть перенес на сам хостинг [color="#0000FF"]www.8-oy.ru[/color]

а вот здесь админка [color="#0000FF"]www.8-oy.ru/users/index.htm[/color]

видимо проблема действительно в кодировке, хотя локально я прописал AddDefaultCharset utf-8 в .htaccess файле, все равно не помогло. Вот когда я перенес его на другой хостинг, ссылки см. выше, там оно заработало, но опять же, при попытке, регистрации выдает всякие ошибки

Попробуйте wamp чтоли, или xampp или openserver, но не denwer …

Да, соглашусь. Я тоже не поклонница Денвера с давнишних времен первого (и последнего) с ним знакомства.

Лучше (и не сложно) установить среду самому, особенно, ИМО, в *nix системах, либо воспользоваться вышеупомянутыми сборками.

по поводу вот этих ошибок:


Class 'RegisterForm' not found

[color="#1C2837"][size="2"] Class 'Post' not found in Z:\home\old-guards.com\www\protected\controllers\SiteController.php on line 294[/size][/color]

[color="#1C2837"] [/color]

[color="#1C2837"][size="2"]Эти классы присутствуют в protected/models ?[/size][/color]

[size="2"][color="#1c2837"]в protected/main.php (или какой у вас там кофигурационный файл - посмотрите что в index.php подключается), есть такие строки:[/color][/size]

[size="2"][color="#1c2837"]


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

[/color][/size][color="#1C2837"][size="2"][size="2"]?[/size][/size][/color]

[color="#1C2837"][size="2"]А вот это что-то совсем забавное, впервые вижу такое:[/size][/color][color="#1C2837"][size="2"][color="#000000"]


+ADw-?php class RegisterForm extends Users +AHs- p

[/color][/size][/color][color="#1C2837"][size="2"][color="#000000"]Наверное, файл c models/RegisterForm.php забавно перекодировался (то же самое и с классом Post), поэтому то класс и не возможно найти, что он даже и не объявлен из-за вот этих кракозябр.[/color][/size][/color]

[font="Times New Roman"][size="3"]По поводу ошибки preg_match(), которая при входе вываливается – что прописано в [/size][/font]protected/models/Users.php в методе rules() ? Конкретнее, если посмотрите сообщение об ошибке, то проблема вот с этим аттрибутом -CRegularExpressionValidator[font="Verdana"]->[/font]validateAttribute[font="Verdana"](Users, "nickname"). [/font]