Я использую Ubuntu 15.04 - 64 бит со следующей настройкой:
Apache
Версия сервера: 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, Авторское право (c), 1998-2014 гг. Zend Technologies с Zend OPcache v7.0.4-dev, Copyright, (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 не может быть загружен, потому что" ..
Обновление1
Через несколько часов мне очень страшно! Я установил бродягу вкл. «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) Авторские права (c) 1997-2014 PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies with Zend Guard Loader 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. Так что не так с этим апачем ..?
Я пытался спровоцировать некоторые ошибки, создав новый файл в каталоге php5 \ apache2 \ conf.d \. Новый файл содержит тот же фрагмент "zend_extension = / vagrant / ZendGuardLoader.so", что и мой php5 \ apache2 \ php.ini - поэтому apache2 попытается загрузить .so дважды и выдаст ожидаемую ошибку:
Неустранимая ошибка PHP: [Zend Guard Loader] Расширение «Zend Guard Loader» не может быть загружено дважды в Unknown в строке 0
Apache пытается загрузить оба расширения. Так что я могу быть прав, если я собираюсь сказать, что apache2 загружает расширение, если оно только одно! Но похоже, что apache не может работать с расширением. Помните - php cli ("php -v" / "php -m") может!