1

Я выполнил все инструкции. Я на Ubuntu 10.10. используя Zend Server Ce.Ubuntu Zend Framework cli securityCheck Ошибка

В моей .bashrc у меня есть LD_LIBRARY_PATH, Зенд библиотека и т.д.

я могу запустить З.Ф., но его дает ошибку:

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 

Как я могу решить эту проблему?

+0

Никто не знает, почему? – ONSC

ответ

0

В zf.sh вы должны добавить непосредственно перед if test "@[email protected]" != '@'php_bin'@'; then линии,

LANG=C 
export LANG 

Все работает сейчас, и я рад ...

0

Я понимаю, как произошла ошибка.

Моя операционная система, использующая кодировку символов utf8 для имен файлов. utf8-кодированные имена файлов с php запускаются терминалом, выдает ошибку. 'I' является верхняя одна 'ı' на моем языке. Но php ожидает, что будет 'i'. Если я изменяю имена файлов на ASCII в php, используя значок, ошибка повторяется снова, потому что он не может найти местоположение файла в это время. Я нашел причину проблемы, но до сих пор не знаю решения.

спасибо.

0

Я считаю, что это не проблема с ZF. Это либо ошибка php, либо неправильная настройка.

заменить в Zend_Loader и разместить здесь выход, так что я могу подтвердить мое подозрение

protected static function _securityCheck($filename) 
{ 
    var_dump($filename); exit; 
} 

попробовать Также это:

mb_internal_encoding('UTF-8'); 
mb_regex_encoding('UTF-8'); 

Извините, если я ошибаюсь. Я здесь не специалист.

+0

var_dump дает имя файла => Zend/Tool/Project/Context/Zf/PublicIndexFile.php, файл которого содержит символ I. Я вставлял функции mb_string, которые вы указываете, чуть выше if (preg_match ('/ [^ a-z0-9 \\/\\\\ _.: -]/i', $ filename)) { ничего не изменилось. Спасибо. – ONSC

+0

Я использую конфигурации zend сервера zend по умолчанию. Поэтому я не думаю, что есть какая-либо проблема с конфигурацией. Любое предложение ? – ONSC

+0

Кстати, мой проект работает в браузере без каких-либо проблем. Но я не могу использовать любые преимущества zf-инструмента. – ONSC