我正在尝试保护我的网络系统应用程序的一些代码。
对于这个pourpouse,我正在尝试使用PHP的BLENC扩展。
原因:
因为客户要求它,所以请不要混淆主题。
问题:
结果是BLENC扩展可以很好地使用简单的脚本,但是...我的网络应用程序是使用YII框架制作的,当我尝试访问网站时,它返回以下错误消息......
浏览器输出错误:
include(Controller.php): failed to open stream: No such file or directory
/opt/lampp/htdocs/vial/yii/framework/YiiBase.php(427)
{
include($classFile);
if(YII_DEBUG && basename(realpath($classFile))!==$className.'.php')
throw new CException(Yii::t('yii','Class name "{class}" does not match class file "{file}".', array(
'{class}'=>$className,
'{file}'=>$classFile,
)));
break;
}
}
}
else
include($className.'.php'); //<-----ERROR POINTING HERE
}
else // class name with namespace in PHP 5.3
{
$namespace=str_replace('\\','.',ltrim($className,'\\'));
if(($path=self::getPathOfAlias($namespace))!==false)
include($path.'.php');
else
return false;
}
return class_exists($className,false) || interface_exists($className,false);
}
return true;
附加:
我唯一做的就是用“php.ini”激活BLENC扩展名:
extension=blenc.so
blenc.key_file="/opt/lampp...."
我没有加密任何php文件,我收到此错误消息。
额外2 :
当我在“php.ini”中停用扩展程序时,我的网络应用程序再次正常运行....所以.......
问题:
什么事情发生了?,我添加了扩展到PHP(我知道它工作正常),但我不加密任何PHP文件,尝试运行我的网络应用程序,我得到错误....我不知道什么是什么发生。
如果我有或没有加密文件都没关系...一旦我激活扩展程序...我的网络应用程序停止工作,向我显示Yii框架错误消息。
答案 0 :(得分:0)
看起来Yii自动加载系统被破坏了。
因此,自动加载器可能会失败,因为Blenc有自己的自动加载器,它会以某种方式影响Yii。
加载扩展程序时可能会更改PATH,即使这样我也不确定Yii如何使用它。
还要确保它不是Yii或扩展程序的问题,而是文件的命名。 Yii不会加载名为&#34; Controller&#34;如果文件名是&#34; controller.php&#34;或者在文件内部类的定义有不同的情况,它必须与案例相匹配。在Windows中,事情可能有效,但在Linux中它总是区分大小写。
链接:
http://www.yiiframework.com/forum/index.php/topic/22756-why-does-autoload-not-work/ Encrypt PHP source code in Yii
所以也许你可以测试另一个工具,看看你是否得到了同样的错误,然后你知道它是否应该是Yii,或者是因为扩展内的东西。