Ubuntu Zend Framework cli securityCheck Ошибка
Я следовал всем инструкциям. Я на Ubuntu 10.10. используя Zend Server Ce.
В моем.bashrc у меня есть ld_library_path, библиотека Zend Framework и т. Д.
Я могу запустить zf, но выдает ошибку:
Fatal error: Uncaught exception 'Zend_Exception' with message 'Security check: Illegal character in filename' in /usr/local/zend/share/ZendFramework/library/Zend/Loader.php:303
Stack trace:
#0 /usr/local/zend/share/ZendFramework/library/Zend/Loader.php(128): Zend_Loader::_securityCheck('Zend/Tool/Proje...')
#1 /usr/local/zend/share/ZendFramework/library/Zend/Loader.php(94): Zend_Loader::loadFile('Zend/Tool/Proje...', NULL, true)
#2 /usr/local/zend/share/ZendFramework/library/Zend/Tool/Project/Context/Repository.php(88): Zend_Loader::loadClass('Zend_Tool_Proje...')
#3 /usr/local/zend/share/ZendFramework/library/Zend/Tool/Project/Context/Repository.php(79): Zend_Tool_Project_Context_Repository->addContextClass('Zend_Tool_Proje...')
#4 /usr/local/zend/share/ZendFramework/library/Zend/Tool/Project/Provider/Abstract.php(85): Zend_Tool_Project_Context_Repository->addContextsFromDirectory('/usr/local/zend...', 'Zend_Tool_Proje...')
#5 /usr/local/zend/share/ZendFramework/library/Zend/Tool/Framework/Provider/Repository.php(187): Z in /usr/local/zend/share/ZendFramework/library/Zend/Loader.php on line 303
Если я прокомментирую строку Zend_loader 303
, похоже, работает, но если я пытаюсь создать контроллер или что-то, это выдает ошибку, как показано ниже:
[ 21.01.2011 10:26:40 ERROR] [ ZendExtensionManager.cpp : 654 ( sig_handler ) ] ZendExtensionManager got SIG 11 at pid 4781 !
[ 21.01.2011 10:26:40 ERROR] [ ZendExtensionManager.cpp : 667 ( sig_handler ) ] Crash happened during IDLE stage
[ 21.01.2011 10:26:40 ERROR] [ ZendExtensionManager.cpp : 670 ( sig_handler ) ] The stack trace follows:
[ 21.01.2011 10:26:40 SYSTEM] Obtained 20 stack frames
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/lib/ZendExtensionManager.so(+0x21c1e) [0xb718fc1e]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/lib/ZendExtensionManager.so(+0xf0b7) [0xb717d0b7]
[ 21.01.2011 10:26:40 SYSTEM] [0xb78d3400]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x81ccc07]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x830e044]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x82e2961]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php(execute+0x212) [0x82e4032]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/lib/debugger/php-5.3.x/ZendDebugger.so(+0x4bed6) [0xb2c72ed6]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x830daef]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x82e2961]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php(execute+0x212) [0x82e4032]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/lib/debugger/php-5.3.x/ZendDebugger.so(+0x4bed6) [0xb2c72ed6]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x830daef]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x82e2961]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php(execute+0x212) [0x82e4032]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/lib/debugger/php-5.3.x/ZendDebugger.so(+0x4bed6) [0xb2c72ed6]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x830daef]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php() [0x82e2961]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/bin/php(execute+0x212) [0x82e4032]
[ 21.01.2011 10:26:40 SYSTEM] /usr/local/zend/lib/debugger/php-5.3.x/ZendDebugger.so(+0x4bed6) [0xb2c72ed6]
Segmentation fault
Как я могу решить эту проблему?
3 ответа
В zf.sh вы должны добавить только перед if test "@php_bin@" != '@'php_bin'@'; then
линия,
LANG=C
export LANG
Все работает сейчас, и я счастлив...
Я понимаю, как произошла ошибка.
Моя операционная система использует кодировку символов utf8 для имен файлов. Имена файлов в кодировке utf8 с php, запускаемые терминалом, выдают ошибку. " Я " является верхним "я" в моем языке. Но php ожидает быть " я ". Если я изменю имена файлов на ASCII в php, используя iconv, ошибка повторится снова, потому что он не может найти местоположение файла в это время. Я нашел причину проблемы, но до сих пор не знаю решения.
Спасибо.
Я считаю, что это не проблема ZF. Это либо ошибка php, либо неверная конфигурация.
замените в Zend_Loader и опубликуйте здесь вывод, чтобы я мог подтвердить свое подозрение
protected static function _securityCheck($filename)
{
var_dump($filename); exit;
}
Также попробуйте это:
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
Извините, если я ошибаюсь. Я не эксперт здесь.