Как установить Zend Guard Loader на Xampp

Я использую программное обеспечение, файлы которого закодированы Zend Guard. Поскольку версии PHP 5.3 + не поддерживают Zend Optimizer, мне нужно установить Zend Guard Loader, чтобы запустить это приложение в моей установке windows xampp.

Я загрузил Zend guard loader и скопировал в папку xampp. Затем я отредактировал следующие строки в файле php.ini.

zend_extension ="E:\xampp\ZendGuardLoader\php-5.4.x\ZendLoader.dll"
zend_loader.enable=1

Затем перезапустил xampp, но он выдал php5.dll отсутствующую ошибку, затем я скачал файл php5.dll из Интернета и загрузил в папку xampp/php и отредактировал следующий файлxampp\apache\conf\extra\httpd-xampp.conf здесь я отредактировал это линия

LoadFile "/xampp/php/php5ts.dll"

загрузить файл "/xampp/php/php5.dll"

то ошибка php5.dll исчезла и произошла следующая ошибка:

"Не удалось найти точку входа в процедуру zend_new_interned_string в библиотеке динамических ссылок E:\xampp\ZendGuardLoader\php-5.4.x\ZendLoader.dll"

Когда я попытался выполнить поиск в Интернете, то обнаружил, что эта проблема с "Thread Safety" включена в xampp php. Я не знаю, как отключить "Thread Thread" или как использовать php-версию "Non Thread Safety" с xampp.

Пожалуйста, помогите мне установить Zend Guard Loader на Windows 8 OS Xampp 1.8.1 с php 5.4.x

2 ответа

Прежде чем тратить впустую больше времени на проверку, посмотрите, показывает ли вывод phpinfo(), включена ли безопасность потоков или нет.

Zend Extensions - это NTS (не ориентированный на многопотоковое исполнение), поэтому, если он включен, он не может загружаться, и вам нужен NTS PHP для загрузки расширения Guard Loader.

А также

Потоковая безопасность не может быть отключена, это флаг компиляции и то, как работает скомпилированный двоичный файл.

Вам нужно загрузить другой модуль Apache PHP, который не является потокобезопасным (php.net выпускает сборки как TS, так и NTS).

Посмотрите на http://forums.zend.com/viewtopic.php?f=57&t=43013

Итак, у меня была такая же проблема.

XAMPP (до версии 3.2.1) поставляется в комплекте с Thread Safe PHP-компиляцией. Это php бинарные файлы скомпилированы с использованием флага для принудительной установки "Tread Safe", поэтому он не может быть переключен обратно на те же бинарные файлы.

Вам нужно изменить двоичные файлы XAMP для тех, которые скомпилированы без Tread Safe (NTS).

Я следовал этому руководству для замены PHP в XAMP для использования NTS. В руководстве объясняется, как включить FastCGI и Zend OPcache, поэтому, если вы скопируете и вставите шаги, у вас должен быть XAMP для запуска PHP в режиме FastCGI. Соответствующие шаги:

  1. Определите версию сервера Apache, который работает. [..]
  2. Загрузите последние бинарные файлы PHP для Windows. Выберите non-thread-safe (вы можете выбрать более новую версию php) [...] Создать новую папку для новой версии PHP (например, c:\xampp\php56-nts).
  3. Отредактируйте файл конфигурации Apache (например: c: \ xampp \ apache \ apache \ conf \ extra \ httpd-xampp.conf) и замените пути в конфигурации модуля php5, возможно, вам потребуется изменить имя.dll
  4. Поскольку загруженные с php.net бинарные файлы php можно использовать для разработки или для производства, вам нужно создать php.ini в соответствии с вашими потребностями (в папке есть 2 шаблона, которые вы можете использовать для начала: php.ini-development и php.ini-production)

При этом в основном у вас есть XAMPP для запуска PHP-версии NTS. После этого вы можете установить Zend Guard Loader, как сказано в руководстве. В принципе:

  1. Скачать бинарный файл Zend Guard Loader
  2. Найдите файл ZendLoader.dll и вставьте его в путь к библиотеке php для xampp. Получить путь.
  3. Сконфигурируйте php.ini для использования ZendLoader; добавлять

    zend_extension=
    zend_extension=

  4. Добавьте любую другую дополнительную конфигурацию. Перезапустите Apache, и он должен перезапуститься с версией PHP NTS. Вы можете проверить это с помощью localhost/xampp/phpinfo.php

Другие вопросы по тегам