Я использую 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 ()»).
Безопасность потоков отключена! Если вам нужны другие варианты, дайте мне знать.
Что я пробовал до сих пор:
Также приятно знать:
Мой журнал ошибок 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») может!
Для всех тех людей, которые хотят знать решение:
После некоторой отладки Apache я обнаружил, что включение per apache2 \ php.ini для меня не будет работать корректно. Итак, я создал новый файл внутри apache2 \ conf.d \ — и удалил запись внутри apache2 \ php.ini.
После перезагрузки apache2 ничего не изменилось, но phpinfo () сообщает, что расширения загружены. Я снова перезагрузил — и, наконец, !, все работает. Я не уверен, что происходит со мной или apache2.
Любопытная вещь: я должен дважды перезагрузить apache2 после перезапуска ВМ. Но после этого процесса все работает идеально. Так что, ребята ..
TL; DR;
Других решений пока нет …