英文区有类似的贴,但好像没有解决。YiiBase::include(PDO.php): failed to open stream:

运行 yiic工具出错

>> model cn.hainan40.core.User _human_user


<!DOCTYPE html PUBLIC


        "-//W3C//DTD XHTML 1.0 Transitional//EN"


        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">


<head>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>


<title>


PHP Error</title>





<style type="text/css">


/*<![CDATA[*/


body {font-family:"Verdana";font-weight:normal;color:black;background-color:whit


e;}


h1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }


h2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }


h3 {font-family:"Verdana";font-weight:bold;font-size:11pt}


p {font-family:"Verdana";font-size:9pt;}


pre {font-family:"Lucida Console";font-size:10pt;}


.version {color: gray;font-size:8pt;border-top:1px solid #aaaaaa;}


.message {color: maroon;}


.source {font-family:"Lucida Console";font-weight:normal;background-color:#ffffe


e;}


.error {background-color: #ffeeee;}


/*]]>*/


</style>


</head>





<body>


<h1>PHP Error</h1>





<h3>Description</h3>


<p class="message">


YiiBase::include(PDO.php): failed to open stream: No such file or directory</p>





<h3>Source File</h3>


<p>


D:PHPnowhtdocsframeworkYiiBase.php(292)</p>





<div class="source">


<pre>


00280:      * Class autoload loader.


00281:      * This method is provided to be invoked within an __autoload() magic


 method.


00282:      * @param string class name


00283:      */


00284:     public static function autoload($className)


00285:     {


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


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


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


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


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


00291:         else


<div class="error">00292:             include($className.&#039;.php&#039;);


</div>00293:     }


00294:


00295:     /**


00296:      * Writes a trace message.


00297:      * This method will only log a message when the application is in deb


ug mode.


00298:      * @param string message to be logged


00299:      * @param string category of the message


00300:      * @see log


00301:      */


00302:     public static function trace($msg,$category=&#039;application&#039;)


00303:     {


00304:         if(YII_DEBUG)


</pre>


</div><!-- end of source -->





<h3>Stack Trace</h3>


<div class="callstack">


<pre>


#0 D:PHPnowhtdocsframeworkYiiBase.php(292): autoload()


#1 unknown(0): autoload()


#2 D:PHPnowhtdocsframeworkdbCDbConnection.php(226): spl_autoload_call()


#3 D:PHPnowhtdocsframeworkdbCDbConnection.php(208): CDbConnection-&gt;open(


)


#4 D:PHPnowhtdocsframeworkdbCDbConnection.php(187): CDbConnection-&gt;setAc


tive()


#5 D:PHPnowhtdocsframeworkbaseCApplication.php(734): CDbConnection-&gt;init


()


#6 D:PHPnowhtdocsframeworkbaseCApplication.php(385): CWebApplication-&gt;ge


tComponent()


#7 D:PHPnowhtdocsframeworkclicommandsshellModelCommand.php(92): CWebAppli


cation-&gt;getDb()


#8 unknown(0): ModelCommand-&gt;generateModel()


#9 D:PHPnowhtdocsframeworkconsoleCConsoleCommand.php(116): call_user_func()





#10 D:PHPnowhtdocsframeworkclicommandsshellModelCommand.php(72): ModelCom


mand-&gt;copyFiles()


#11 D:PHPnowhtdocsframeworkclicommandsShellCommand.php(99): ModelCommand-&


gt;run()


#12 D:PHPnowhtdocsframeworkclicommandsShellCommand.php(79): ShellCommand-&


gt;runShell()


#13 D:PHPnowhtdocsframeworkconsoleCConsoleCommandRunner.php(62): ShellComma


nd-&gt;run()


#14 D:PHPnowhtdocsframeworkconsoleCConsoleApplication.php(88): CConsoleComm


andRunner-&gt;run()


#15 D:PHPnowhtdocsframeworkbaseCApplication.php(170): CConsoleApplication-&


gt;processRequest()


#16 D:PHPnowhtdocsframeworkyiic.php(30): CConsoleApplication-&gt;run()


#17 D:PHPnowhtdocsframeworkyiic(15): require_once()


</pre>


</div><!-- end of callstack -->





<div class="version">


2009-01-26 13:40:53 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1


-dev</div>


</body>


</html>


requirements结果

具体结果


项目名称 结果 使用者 备注 


PHP版本  通过  Yii Framework  PHP 5.1.0或更高版本是必须的。  


$_SERVER变量  通过  Yii Framework     


Reflection扩展模块  通过  Yii Framework     


PCRE扩展模块  通过  Yii Framework     


SPL扩展模块  通过  Yii Framework     


DOM扩展模块  通过  CWsdlGenerator     


PDO扩展模块  通过  所有和数据库相关的类     


PDO SQLite扩展模块  未通过  所有和数据库相关的类  如果使用SQLite数据库,这是必须的。  


PDO MySQL扩展模块  通过  所有和数据库相关的类  如果使用MySQL数据库,这是必须的。  


PDO PostgreSQL扩展模块  未通过  所有和数据库相关的类  如果使用PostgreSQL数据库,这是必须的。  


Memcache扩展模块  未通过  CMemCache     


APC扩展模块  未通过  CApcCache     


Mcrypt扩展模块  通过  CSecurityManager  This is required by encrypt and decrypt methods.  


SOAP扩展模块  未通过  CWebService, CWebServiceAction     


GD扩展模块  通过  CCaptchaAction  


以下代码运行无异常

$pdo=new PDO('mysql:host=localhost;dbname=hn40;', 'root','1234');

你的命令行PHP使用的php.ini没设置好。你可以用它来运行phpinfo()看看它使用的哪一个php.ini

我使用的是 phpnow的套装来安装服务器环境的。在windows下没有php.ini这个文件。配置文件在D:\PHPnow\php-5.2.5-Win32\php-apache2handler.ini。这样的情况下怎么办?

我命令行运行 phpinfo();在PHP Variables里面没有显示Configuration File (php.ini) Path ;

odbc.default_pw => no value => no value


odbc.default_user => no value => no value


odbc.defaultbinmode => return as is => return as is


odbc.defaultlrl => return up to 4096 bytes => return up to 4096 bytes


odbc.max_links => Unlimited => Unlimited


odbc.max_persistent => Unlimited => Unlimited





pcre





PCRE (Perl Compatible Regular Exp​ressions) Support => enabled


PCRE Library Version => 7.6 2008-01-28





Directive => Local Value => Master Value


pcre.backtrack_limit => 100000 => 100000


pcre.recursion_limit => 100000 => 100000





Reflection





Reflection => enabled


Version => $Id: php_reflection.c,v 1.164.2.33.2.50 2008/03/13 15:56:21 iliaa Exp


 $





session





Session Support => enabled


Registered save handlers => files user


Registered serializer handlers => php php_binary wddx





Directive => Local Value => Master Value


session.auto_start => Off => Off


session.bug_compat_42 => On => On


session.bug_compat_warn => On => On


session.cache_expire => 180 => 180


session.cache_limiter => nocache => nocache


session.cookie_domain => no value => no value


session.cookie_httponly => Off => Off


session.cookie_lifetime => 0 => 0


session.cookie_path => / => /


session.cookie_secure => Off => Off


session.entropy_file => no value => no value


session.entropy_length => 0 => 0


session.gc_divisor => 100 => 100


session.gc_maxlifetime => 1440 => 1440


session.gc_probability => 1 => 1


session.hash_bits_per_character => 4 => 4


session.hash_function => 0 => 0


session.name => PHPSESSID => PHPSESSID


session.referer_check => no value => no value


session.save_handler => files => files


session.save_path => no value => no value


session.serialize_handler => php => php


session.use_cookies => On => On


session.use_only_cookies => Off => Off


session.use_trans_sid => 0 => 0





SimpleXML





Simplexml support => enabled


Revision => $Revision: 1.151.2.22.2.39 $


Schema support => enabled





SPL





SPL support => enabled


Interfaces => Countable, OuterIterator, RecursiveIterator, SeekableIterator, Spl


Observer, SplSubject


Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException,


 BadMethodCallException, CachingIterator, DirectoryIterator, DomainException, Em


ptyIterator, FilterIterator, InfiniteIterator, InvalidArgumentException, Iterato


rIterator, LengthException, LimitIterator, LogicException, NoRewindIterator, Out


OfBoundsException, OutOfRangeException, OverflowException, ParentIterator, Range


Exception, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveDirectoryI


terator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexItera


tor, RegexIterator, RuntimeException, SimpleXMLIterator, SplFileInfo, SplFileObj


ect, SplObjectStorage, SplTempFileObject, UnderflowException, UnexpectedValueExc


eption





standard





Regex Library => Bundled library enabled


Dynamic Library Support => enabled


Internal Sendmail Support for Windows => enabled





Directive => Local Value => Master Value


assert.active => 1 => 1


assert.bail => 0 => 0


assert.callback => no value => no value


assert.quiet_eval => 0 => 0


assert.warning => 1 => 1


auto_detect_line_endings => 0 => 0


default_socket_timeout => 60 => 60


safe_mode_allowed_env_vars => PHP_ => PHP_


safe_mode_protected_env_vars => LD_LIBRARY_PATH => LD_LIBRARY_PATH


url_rewriter.tags => a=href,area=href,frame=src,form=,fieldset= => a=href,area=h


ref,frame=src,form=,fieldset=


user_agent => no value => no value





tokenizer





Tokenizer Support => enabled





wddx





WDDX Support => enabled


WDDX Session Serializer => enabled





xml





XML Support => active


XML Namespace Support => active


libxml2 Version => 2.6.32





xmlreader





XMLReader => enabled





xmlwriter





XMLWriter => enabled





zlib





ZLib Support => enabled


Stream Wrapper support => compress.zlib://


Stream Filter support => zlib.inflate, zlib.deflate


Compiled Version => 1.2.3


Linked Version => 1.2.3





Directive => Local Value => Master Value


zlib.output_compression => Off => Off


zlib.output_compression_level => -1 => -1


zlib.output_handler => no value => no value





Additional Modules





Module Name





Environment





Variable => Value


ALLUSERSPROFILE => C:Documents and SettingsAll Users


APPDATA => C:Documents and SettingsAdministratorApplication Data


ASANY8 => C:Program FilesSybaseSQL Anywhere 8


ASANYSH8 => C:Program FilesSybaseShared


CommonProgramFiles => C:Program FilesCommon Files


COMPUTERNAME => D74C42F8F4BC440


ComSpec => C:WINDOWSsystem32cmd.exe


DEVMGR_SHOW_NONPRESENT_DEVICES => 1


FP_NO_HOST_CHECK => NO


HOMEDRIVE => C:


HOMEPATH => Documents and SettingsAdministrator


JAVA_HOME => C:jrockit-R27.5.0-jdk1.5.0_14


LOGONSERVER => \D74C42F8F4BC440


NUMBER_OF_PROCESSORS => 2


OS => Windows_NT


Path => C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:Program Files


Common FilesAdobeAGL;D:GApmApachebin;C:Program FilesJavajdk1.5.0_14bin


;C:Program FilesSybaseSQL Anywhere 8win32;C:Program FilesSybaseSharedwin


32;C:Program FilesSybaseSharedSybase Central 4.1;C:Program FilesSybasePow


erDynamowin32;C:Program FilesSybaseSharedPowerBuilder;C:Program FilesSyba


seInfoMaker 9.0Tutorial;C:Program FilesSybaseSharedWeb Targets;C:Program


FilesTortoiseSVNbin;C:Program FilesStormIICodec;C:Program FilesStormII;C:


flex_sdk_3bin;D:hn40_serverphp-5.2.6-Win32


PATHEXT => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH


PHP_COMMAND => php.exe


PROCESSOR_ARCHITECTURE => x86


PROCESSOR_IDENTIFIER => x86 Family 15 Model 107 Stepping 2, AuthenticAMD


PROCESSOR_LEVEL => 15


PROCESSOR_REVISION => 6b02


ProgramFiles => C:Program Files


PROMPT => $P$G


SESSIONNAME => Console


SystemDrive => C:


SystemRoot => C:WINDOWS


TEMP => C:DOCUME~1ADMINI~1LOCALS~1Temp


TMP => C:DOCUME~1ADMINI~1LOCALS~1Temp


USERDOMAIN => D74C42F8F4BC440


USERNAME => Administrator


USERPROFILE => C:Documents and SettingsAdministrator


windir => C:WINDOWS


YII_PATH => D:PHPnowhtdocsframework





PHP Variables





Variable => Value


_SERVER["ALLUSERSPROFILE"] => C:Documents and SettingsAll Users


_SERVER["APPDATA"] => C:Documents and SettingsAdministratorApplication Data


_SERVER["ASANY8"] => C:Program FilesSybaseSQL Anywhere 8


_SERVER["ASANYSH8"] => C:Program FilesSybaseShared


_SERVER["CommonProgramFiles"] => C:Program FilesCommon Files


_SERVER["COMPUTERNAME"] => D74C42F8F4BC440


_SERVER["ComSpec"] => C:WINDOWSsystem32cmd.exe


_SERVER["DEVMGR_SHOW_NONPRESENT_DEVICES"] => 1


_SERVER["FP_NO_HOST_CHECK"] => NO


_SERVER["HOMEDRIVE"] => C:


_SERVER["HOMEPATH"] => Documents and SettingsAdministrator


_SERVER["JAVA_HOME"] => C:jrockit-R27.5.0-jdk1.5.0_14


_SERVER["LOGONSERVER"] => \D74C42F8F4BC440


_SERVER["NUMBER_OF_PROCESSORS"] => 2


_SERVER["OS"] => Windows_NT


_SERVER["Path"] => C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:Pr


ogram FilesCommon FilesAdobeAGL;D:GApmApachebin;C:Program FilesJavajdk1


.5.0_14bin;C:Program FilesSybaseSQL Anywhere 8win32;C:Program FilesSybase


Sharedwin32;C:Program FilesSybaseSharedSybase Central 4.1;C:Program Files


SybasePowerDynamowin32;C:Program FilesSybaseSharedPowerBuilder;C:Program


 FilesSybaseInfoMaker 9.0Tutorial;C:Program FilesSybaseSharedWeb Targets;


C:Program FilesTortoiseSVNbin;C:Program FilesStormIICodec;C:Program Files


StormII;C:flex_sdk_3bin;D:hn40_serverphp-5.2.6-Win32


_SERVER["PATHEXT"] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH


_SERVER["PHP_COMMAND"] => php.exe


_SERVER["PROCESSOR_ARCHITECTURE"] => x86


_SERVER["PROCESSOR_IDENTIFIER"] => x86 Family 15 Model 107 Stepping 2, Authentic


AMD


_SERVER["PROCESSOR_LEVEL"] => 15


_SERVER["PROCESSOR_REVISION"] => 6b02


_SERVER["ProgramFiles"] => C:Program Files


_SERVER["PROMPT"] => $P$G


_SERVER["SESSIONNAME"] => Console


_SERVER["SystemDrive"] => C:


_SERVER["SystemRoot"] => C:WINDOWS


_SERVER["TEMP"] => C:DOCUME~1ADMINI~1LOCALS~1Temp


_SERVER["TMP"] => C:DOCUME~1ADMINI~1LOCALS~1Temp


_SERVER["USERDOMAIN"] => D74C42F8F4BC440


_SERVER["USERNAME"] => Administrator


_SERVER["USERPROFILE"] => C:Documents and SettingsAdministrator


_SERVER["windir"] => C:WINDOWS


_SERVER["YII_PATH"] => D:PHPnowhtdocsframework


_SERVER["PHP_SELF"] => D:PHPnowhtdocsframeworkyiic


_SERVER["SCRIPT_NAME"] => /index.php


_SERVER["SCRIPT_FILENAME"] => D:PHPnowhtdocsdemoshn40index.php


_SERVER["PATH_TRANSLATED"] => D:PHPnowhtdocsframeworkyiic


_SERVER["DOCUMENT_ROOT"] =>


_SERVER["REQUEST_TIME"] => 1233016134


_SERVER["argv"] => Array


(


    [0] => D:PHPnowhtdocsframeworkyiic


    [1] => shell


)





_SERVER["argc"] => 2


_SERVER["REQUEST_URI"] => /index.php


_SERVER["HTTP_HOST"] => localhost


_SERVER["SERVER_NAME"] => localhost


_SERVER["SERVER_PORT"] => 80


_ENV["ALLUSERSPROFILE"] => C:Documents and SettingsAll Users


_ENV["APPDATA"] => C:Documents and SettingsAdministratorApplication Data


_ENV["ASANY8"] => C:Program FilesSybaseSQL Anywhere 8


_ENV["ASANYSH8"] => C:Program FilesSybaseShared


_ENV["CommonProgramFiles"] => C:Program FilesCommon Files


_ENV["COMPUTERNAME"] => D74C42F8F4BC440


_ENV["ComSpec"] => C:WINDOWSsystem32cmd.exe


_ENV["DEVMGR_SHOW_NONPRESENT_DEVICES"] => 1


_ENV["FP_NO_HOST_CHECK"] => NO


_ENV["HOMEDRIVE"] => C:


_ENV["HOMEPATH"] => Documents and SettingsAdministrator


_ENV["JAVA_HOME"] => C:jrockit-R27.5.0-jdk1.5.0_14


_ENV["LOGONSERVER"] => \D74C42F8F4BC440


_ENV["NUMBER_OF_PROCESSORS"] => 2


_ENV["OS"] => Windows_NT


_ENV["Path"] => C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:Progr


am FilesCommon FilesAdobeAGL;D:GApmApachebin;C:Program FilesJavajdk1.5.


0_14bin;C:Program FilesSybaseSQL Anywhere 8win32;C:Program FilesSybaseSh


aredwin32;C:Program FilesSybaseSharedSybase Central 4.1;C:Program FilesSy


basePowerDynamowin32;C:Program FilesSybaseSharedPowerBuilder;C:Program Fi


lesSybaseInfoMaker 9.0Tutorial;C:Program FilesSybaseSharedWeb Targets;C:


Program FilesTortoiseSVNbin;C:Program FilesStormIICodec;C:Program FilesSt


ormII;C:flex_sdk_3bin;D:hn40_serverphp-5.2.6-Win32


_ENV["PATHEXT"] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH


_ENV["PHP_COMMAND"] => php.exe


_ENV["PROCESSOR_ARCHITECTURE"] => x86


_ENV["PROCESSOR_IDENTIFIER"] => x86 Family 15 Model 107 Stepping 2, AuthenticAMD





_ENV["PROCESSOR_LEVEL"] => 15


_ENV["PROCESSOR_REVISION"] => 6b02


_ENV["ProgramFiles"] => C:Program Files


_ENV["PROMPT"] => $P$G


_ENV["SESSIONNAME"] => Console


_ENV["SystemDrive"] => C:


_ENV["SystemRoot"] => C:WINDOWS


_ENV["TEMP"] => C:DOCUME~1ADMINI~1LOCALS~1Temp


_ENV["TMP"] => C:DOCUME~1ADMINI~1LOCALS~1Temp


_ENV["USERDOMAIN"] => D74C42F8F4BC440


_ENV["USERNAME"] => Administrator


_ENV["USERPROFILE"] => C:Documents and SettingsAdministrator


_ENV["windir"] => C:WINDOWS


_ENV["YII_PATH"] => D:PHPnowhtdocsframework





PHP License


This program is free software; you can redistribute it and/or modify


it under the terms of the PHP License as published by the PHP Group


and included in the distribution in the file:  LICENSE





This program is distributed in the hope that it will be useful,


but WITHOUT ANY WARRANTY; without even the implied warranty of


MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.





If you did not receive a copy of the PHP license, or have any


questions about PHP licensing, please contact license@php.net.


从phpinfo看出你的命令行php没有使用PDO。

PHP命令行可以指定使用某个ini文件的。你运行"php -h"看看。

没辙了弄了几天还搞不定。

1.1用php -c 指定路径

Quote

D:\PHPnow\Apache\bin>php -c D:\PHPnow\php-5.2.5-Win32\php-apache2handler.ini

D:\PHPnow\Apache\bin>

1.2用php --ini还是没有改变

Quote

D:\PHPnow\Apache\bin>php --ini

Configuration File (php.ini) Path: C:\WINDOWS

Loaded Configuration File:        (none)

Scan for additional .ini files in: (none)

Additional .ini files parsed:      (none)

1.3 运行yiic shell还是报 PDO.php找不到

Quote

D:\PHPnow\Apache\bin>D:\PHPnow\htdocs\framework\yiic shell D:\PHPnow\htdocs\demo

s\blog\index.php

Quote

<p class="message">

YiiBase::include(PDO.php): failed to open stream: No such file or directory</p>

<h3>Source File</h3>

2 qiang,不知道你用的什么服务配置环境。还有开发环境和工具一并告知。谢谢。

这样子就可以了:

php -c path/to/php.ini protected/yiic

我用的是Windows和从php.net直接下载的PHP。

怎么搞的,我也是那个问题,始终解决不了!

试试我说的方法?

php -c path/to/php.ini protected/yiic

试试我说的方法?

php -c path/to/php.ini protected/yiic

我也用phpnow也出现了这个问题,用了这个命令还是不行。

你的php.ini有没有启用PDO?

有开启pdo和pdo_mysql的啊,在yii/requirements/测试上是通过的。但是就是不行。后来装了wamp测试,也是开了pdo和pdo_mysql,自己写的model能连接到mysql,但是通过yiic来建model就提示CDbConnection不存在,找不到。目前只能自己写了,呵呵,不过已经感觉到yii的强大了,yii给了我不同的设计理念,如果强哥有空能把yii的执行过程用中文讲解一下那就更爽了。 ;D

requirements检查到的配置可能和你命令行php用的配置不一样。所以你需要看看命令行PHP用的php.ini。你不妨把它贴到这里看看。

你看过中文翻译了么?http://www.yiiframework.com/doc/guide/zh_cn/quickstart.first-app

请告诉我,如果你希望在某些地方讲解更清楚一些。多谢捧场!

看了一下,的确是php.ini的问题,phpinfo用的是apache里面的php.ini配置文件,php里面的配置文件的确没有开启pdo,我拷贝了一份过去之后,cli便可以运行了,呵呵,终于行了。中文翻译那个没看过,我只下了份英文的guide1.0.2版的,我再看看。 ;D

我也遇到了同样的问题,

只是因为Yii会默认去读php安装目录下的php.ini,而PHPNow会把这个文改成php-apache2handler.ini,

最简单的解决办法就是,复制一份php-apache2handler.ini,并改名为php.ini,

这样Yii的Shell就能运行正常了,

可能的话,你还需要改一些php.ini文件里的path.