Понадобилось зазендить скрипты. Рабочая сборка PHP 5.3.5. Откат на 5.2.x не приемлем, так что отталкиваемся от 5.3.x и тут начинается интересное: 1) Для 5.2.x и ранее был Zend Optimizer, который ставился без бубна и работал толково, в 5.3.х же ввели Zend Loader 2) Zend Loader работает только в FastCGI 3) Мануала нигде нет Тренеровался на денвере. Итог: в папку apache добавляются файлы: bin/ZendEnablerApache.php bin/ZendEnablerConf.xml bin/ZendEnablerConf.xsd bin/zlib1.dll bin/libmysql.dll (так и не понял, почему этот файл здесь, а не с PHP) bin/xerces-c_3_0.dll bin/QtCore4.dll bin/QtNetwork4.dll bin/QtSql4.dll bin/QtXml4.dll bin/libeay32.dll - заменил на новый из zend server bin/ssleay32.dll - заменил на новый из zend server conf/zend.conf в папку php5 добавляются файлы: ZendLib.dll ZendExtensionManager.dll zend.ini loader/php-5.3.x/ZendLoader.php php-cgi.exe - заменил на новый из zend server php5.dll - скопировал из zend server, отличается от php5ts.dll Содержимое ZendEnablerConf.xml: Код (Text): <?xml version="1.0" encoding="UTF-8"?> <ZendEnablerConfiguration version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ZendEnablerConf.xsd"> <Global> <LogFile path="ZendEnabler.log" verbosity="0" maxFileSizeKB="100" /> </Global> <DefaultPool impersonation="true"> <Environment> <Variable name="DB2INSTANCE" value="DB2" /> <Variable name="PHP_FCGI_MAX_REQUESTS" value="10000" /> <Variable name="TEMP" value="tmp" /> <Variable name="PHPRC" value="\usr\local\php5\zend.ini" /> <Variable name="PATH" value="c:\Windows\system32;c:\Windows;c:\Windows\System32\Wbem;c:\Windows\System32\WindowsPowerShell\v1.0\;" /> </Environment> <ProcessCount start="2" extra="8"/> <Timeouts connectionTimeout="60" requestTimeout="120" /> </DefaultPool> <ServerPool mimeType="application/x-httpd-php" commandLine="\usr\local\php5\php-cgi.exe" impersonation="true"> </ServerPool> </ZendEnablerConfiguration> Содержимое zend.conf: Код (Text): LoadModule zend_enabler_module "bin\ZendEnablerApache.dll" ZendEnablerConfig "ZendEnablerConf.xml" AddHandler zend-enabler-script .php AddType application/x-httpd-php .php Содержимое zend.ini: Код (Text): [Zend] fastcgi.impersonate=1 cgi.fix_pathinfo = 1 zend_extension="\usr\local\php5\ZendExtensionManager.dll" [Zend.extension_manager] zend_extension_manager.log_verbosity_level=1 zend_extension_manager.load_order_file=zem_order [Zend.loader] zend_extension_manager.dir.loader="\usr\local\php5\loader" zend_loader.enable=1 zend_loader.disable_licensing=0 zend_loader.obfuscation_level_support=3 zend_loader.license_path= Теперь внимание, вопрос знатокам: иожно как-нибудь полегче интеграцию провести?
Вариант 2: Тоже задался целью прикрутить Зенд к 5.3. Главным образом мне нужен был ЗендДебаггер. Жаль эту статью нашел уже после после проделанной работы. Т.к. "убил" на это почти 3 дня, делюсь своим рецептом (он несколько отличается) - может кому пригодится. Среда: windows XP sp3. x86. За основу был взят набор софта из сборки VertrigoServer (http://vertrigo.sourceforge.net/). Это сборка типа "Денвера" для запуска веб-сервера на локальной машине. (туда входит apache, mysql, php, phpmyadmin, sqlite) Вариантов решения задачи и их комбинации было опробовано множество, опишу только конечный рабочий вариант. 1. php 5.3.6 thread safe ("из коробки") - был заменен на 5.3.8 non thread safe (nts вариант принципиален т.к. Zend не работает на ts версии). http://windows.php.net/downloads/releases/php-5.3.8-nts-Win32-VC9-x86.zip 2. apache 2.2.17 заменил свежим apache 2.2.21 (если используете Vertrigo можно и не обновлять 2.2.17 сгодится) http://www.sai.msu.su/apache//httpd/binaries/win32/httpd-2.2.21-win32-x86-openssl-0.9.8r.msi 3. скачал "Zend Server Community Edition" и установил в отдельный каталог. Отсюда дергал все необходимые компоненты. http://downloads.zend.com/zendserver/5.5.0/ZendServer-CE-php-5.3.8-5.5.0-Windows_x86.exe 4. Создал каталог "zend" в общей с php и apache папке. В папке "zend" создаем подкаталоги bin, etc, lib, logs, tmp. Эта структура каталогов частично повторяет ту, что использует "ZendServer". В результате экспериментов, я решил для экономии сил и простоты последующего обновления, ее не менять. Далее приведу список какие именно файлы скопировать в наш "zend" (файлы беруться из соответствующих каталогов в "ZendServer"): 4.1. "bin": libpq.dll QtCore4.dll QtNetwork4.dll QtSql4.dll QtXml4.dll xerces-c_3_0.dll ZendEnablerApache.dll 4.2. "etc": zem_order ZendEnablerConf.xml ZendEnablerConf.xsd а так же полностью подкаталог "cfg" 4.3 "lib": папки: debugger loader optimizerplus utils и сам файл ZendExtensionManager.dll 4.4 папки logs и tmp остаются пустыми. 5. В каталог "php" копируем файл "ZendLib.dll" из "ZendServer\bin" 6. Настраиваем файлы конфигурации. 6.1 В каталоге "zend\etc\cfg" отключаем ненужные нам утилиты datacache и javabridge путем переименовывания или удаления одноименных файлов. (я переименовывал в datacache.ini-skip и jbridge.ini-skip) 6.2 В "zend\etc\ZendEnablerConf.xml" исправляем пути к файлам на соответствующие нашим (привожу частично): Код (Text): <LogFile path="полный_путь\zend\logs\ZendEnabler.log" verbosity="0" maxFileSizeKB="100" /> <Variable name="TEMP" value="полный_путь\zend\tmp" /> <Variable name="PHPRC" value="полный_путь\zend\etc" /> <Variable name="PATH" value="полный_путь\zend\bin;" /> <ServerPool mimeType="application/x-httpd-php" commandLine="полный_путь\php\php-cgi.exe" impersonation="true" 6.3 В "php.ini" исправляем или добавляем в конец файла соотв. директивы (комментарии для краткости удалил): Код (Text): [ Zend ] fastcgi.impersonate = 1; cgi.fix_pathinfo = 1 zend_extension="полный_путь\zend\lib\ZendExtensionManager.dll" zend.install_dir="полный_путь\zend" zend.conf_dir="полный_путь\zend\etc\" zend.temp_dir="полный_путь\zend\tmp" zend.log_dir="полный_путь\zend\logs" zend.ini_scandir=cfg [ Zend.extension_manager ] zend_extension_manager.log_verbosity_level=1 zend_extension_manager.load_order_file=zem_order 6.4 В каталоге "Apache\conf\" создаем файл "zend.conf" со следующим содержимым: Код (Text): LoadModule zend_enabler_module "полный_путь\zend\bin\ZendEnablerApache.dll" ZendEnablerConfig "полный_путь\zend\etc\ZendEnablerConf.xml" AddHandler zend-enabler-script .php .phtml .php5 AddType application/x-httpd-php .php .phtml .php5 подключаем этот файл в основном конфиг-е "httpd.conf" через: "Include conf/zend.conf" Вроде бы все. Итого имеем: This program makes use of the Zend Scripting Language Engine: Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies with Zend Extension Manager v5.1, Copyright (c) 2003-2010, by Zend Technologies - with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies [loaded] [licensed] [enabled] - with Zend Utils v1.0, Copyright (c) 2004-2010, by Zend Technologies [loaded] [licensed] [enabled] - with Zend Optimizer+ v4.1, Copyright (c) 1999-2010, by Zend Technologies [loaded] [licensed] [enabled] - with Zend Debugger v5.3, Copyright (c) 1999-2010, by Zend Technologies [loaded] [licensed] [enabled] Предложенный вариант удобен с точки зрения последующего обновления т.к. все дополнительные файлы (кроме ZendLib.dll) лежат отдельно, а оригинальные файлы в каталогах установки Apache или php не меняются (за исключением файлов настройки). При необходимости отключить не нужную Zend утилиту можно простым переименованием соответствующего ей .ini файла в каталоге "zend\etc\cfg\".