Apache не будет загружать Zend Guard Loader

Я использую Ubuntu 15.04 — 64 Bit со следующей настройкой:

апаш

Версия сервера: Apache / 2.4.10 (Ubuntu),
Построен сервер: 24 июля 2015 17:25:18

PHP

PHP 5.6.4-4ubuntu6.2 (cli) (сборка: 2 июля 2015 г., 15:29:28). Авторское право,
(c) 1997-2014 PHP Group Zend Engine v2.6.0, Copyright (c),
1998-2014 Zend Technologies с Zend OPcache v7.0.4-dev, Авторские права,
(c) 1999-2014, 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-data)
  • Поменял разрешения на 777, 775, 755

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

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

Update1

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

Файл существует, доступен для чтения, и так далее. После создания нового файла info.php (phpinfo ()) он все еще не имеет расширения ZendGuardLoader. Команда php -v говорит в основном так же, как и основная система (отличия по версии ..).

Решение для php -v

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

PHP 5.4.41-0 + deb7u1 (cli) (сборка: 22 мая 2015 г., 12:49:18)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
с загрузчиком Zend Guard v3.3, Copyright (c) 1998-2013, Zend Technologies

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

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

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

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

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

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

Неустранимая ошибка PHP: расширение [Zend Guard Loader] не может быть загружено дважды в поле Неизвестно в строке 0

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

4

Решение

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

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

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

Любопытная вещь: я должен дважды перезагрузить apache2 после перезапуска ВМ. Но после этого процесса все работает идеально. Так что, ребята ..

TL; DR;

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]