2015-08-18 6 views
4

Я использую Ubuntu 15,04 - 64 бит со следующей установкой:Apache не будет загружать Zend Guard Loader

Apache

Server version: Apache/2.4.10 (Ubuntu), Server built: Jul 24 2015 17:25:18

PHP

PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28) Copyright, (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c), 1998-2014 Zend Technologies with Zend OPcache v7.0.4-dev, Copyright, (c) 1999-2014, by Zend Technologies

Мой php.ini (Последние 5 строк)

; Local Variables: 
; tab-width: 4 
; End 
zend.loader=1 
zend_extension="/var/www/extensions/ZendGuardLoader_56.so" 

И да, ZendGuardLoader не будет загружен (он не упоминается в «php -v», а также не в «phpinfo()»). Защита резьбы отключена! Если вам нужны другие варианты, дайте мне знать.

Что я пытался до сих пор:

  • удалили "= zend.loader 1" вариант,
  • Пробовал "zend_loader.enabled = 1" вместо "zend.loader"
  • включил старую версию из ZendGuardLoader (5.5 вместо 5.6)
  • сменило владельца и группу из обоих файлов на мой счет (вместо WWW-данных)
  • Изменены разрешения на 777, 775, 75 5

Также приятно знать:

My Apache Error Log также "чистый". Если я переименую файл .so, мой Apache регистрирует это исключение. Но на текущей установки, файл читается .. Не поймите меня неправильно, но я ожидаю сообщение типа «ZendGuardLoader не может быть загружен, потому что» ..

Update1

После нескольких часов, я очень напуган! Я установил бродягу вкл. «Debian 7.8» также начал все и так далее. На моем ящике я установил PHP (5.4) и Apache, создал папку www для одного и того же адресата и загрузил 5.4 ZendGuard Loader. В моей установке я сделал то же самое, что и в моей основной системе, например, -> php.ini, последняя запись: «zend_extension =/vagrant/ZendGuardLoader.so»

Файл существует, также читабель и т. Д. , Создав новый «info.php» («phpinfo()»), он все еще не имеет расширения ZendGuardLoader. Команда php -v говорит в основном то же самое, что и основная система (различия в версии ..).

решение для PHP -v

Ладно, ребята, мой разум был сломан - но это не исправлено! Я сказал вам, проверяя php -v, вывод довольно по умолчанию (без ZendGuardLoader). BUT (!): Php -v запускается командой commandline (cli) - поэтому я добавил «zend_extension» внутри php5 \ cli \ php.ini -> работает как шарм!

PHP 5.4.41-0+deb7u1 (cli) (built: May 22 2015 12:49:18) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

Это то, что я хотел. Поэтому я вызвал файл phpinfo с помощью командной строки и сохранил вывод в отдельный файл.И, как я вижу, ZendGuardLoader тоже дается!

Но проблема с Apache еще не решена. Строка zend_extension точно совпадает между apache2 \ php.ini и cli \ php.ini.

Так что это не проблема разрешения, потому что у CLI нет проблем. Я думаю, апач сломан, потому что она не будет загружаться, что меньше специальное расширение ..

Новый день - новые идеи

Ладно, ребята, вчера мы получили точку, почему она не будет работать на CLI, но это менее серьезная проблема. Поэтому я интегрировал ioncube в CLI, а также на apache. CLI работает как шарм. Apache также не загрузит ионкуб. Так что же с этим апачем?

Я попытался вызвать некоторые ошибки, создав новый файл в каталоге php5 \ apache2 \ conf.d \. Новый файл содержит один и тот же «zend_extension =/бродячую/ZendGuardLoader.so» фрагмент кода, как мой php5 \ apache2 \ php.ini - так apache2 будет пытаться загрузить .so дважды, и бросает ожидаемую ошибку:

PHP Fatal error: [Zend Guard Loader] Extension "Zend Guard Loader" cannot be loaded twice in Unknown on line 0

Apache пытается загрузить оба расширения. Поэтому я могу быть прав, если я скажу, что apache2 загрузит расширение, если оно только одно! Но, похоже, apache не может работать с расширением. Помните - php cli ("php -v"/"php -m") может!

ответ

1

Для всех тех людей, которые хотят знать решение:

После отладки Apache на некоторое время, я нашел, что включает в apache2 \ php.ini не будет работать правильно для меня. Поэтому я создал новый файл внутри apache2 \ conf.d \ - и удалил запись внутри apache2 \ php.ini.

После перезагрузки apache2 ничего не изменилось, но phpinfo() говорит, что расширения были загружены. Я снова перезагрузился - и, наконец, все работает. Я не уверен, что происходит со мной или с apache2.

Всеобщее дело: я должен перезагрузить apache2 два раза после перезапуска виртуальной машины. Но после этого процесса все работает отлично. Поэтому ребята ..

TL; DR;

  • Создать новый файл в apache2 \ conf.d \ и использовать тот же "zend_extension =/путь"
  • Restart apache2 дважды.
  • Прибыль
Смежные вопросы