Ошибка активации расширения php с помощью PHP Farm

Я реализую программное обеспечение ( Getsy ), которое требует PHP 5.4 и ZendGuard 6 ( ZendGuard ).

Для случая я использую экземпляр AWS Ubuntu 14.04. Поскольку Ubuntu 14.04 поставляется с PHP 5.5+ по умолчанию, мне нужно было установить PHP 5.4. Для этого я установил PHP Farm.

Чтобы изменить версии PHP среди сайтов, у меня есть этот скрипт cgi-bin:

#!/bin/sh PHP_FCGI_CHILDREN=3 export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_MAX_REQUESTS exec /opt/phpfarm/inst/bin/php-cgi-5.4.30 

Для моего конкретного сайта (сайт изменен для ****) у меня есть эта конфигурация в /etc/apache2/sites-enabled/****.conf :

 <VirtualHost *:80> ServerAdmin ...@... ServerName **** ServerAlias **** DocumentRoot /var/www/****/public_html/ ErrorLog /var/www/****/logs/error.log LogLevel warn CustomLog /var/www/****/logs/access.log combined <Directory /> Options FollowSymLinks AllowOverride All AddHandler php-cgi .php Action php-cgi /cgi-bin-php/php-cgi-5.4.30 </Directory> </VirtualHost> 

Итак, когда я запускаю phpinfo() моего сайта, все в порядке, и сайт работает с PHP 5.4.30.

Теперь мне нужно включить расширение загрузчика ZendGuard. Я загружаю 64-битную версию Linux с помощью следующих команд:

 cd ~ wget http://downloads.zend.com/guard/6.0.0/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz tar -xvf ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz cd ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64 cd php-5.4.x mv ZendGuardLoader.so /usr/lib/php5/ZendGuardLoader.so 

Итак, после этого, чтобы установить PHP 5.4.30, я создаю файл custom-options-5.4.sh :

 #!/bin/bash #gcov='--enable-gcov' configoptions="--disable-debug \ --enable-short-tags \ --with-pear \ --enable-bcmath \ --enable-calendar \ --enable-exif \ --enable-ftp \ --enable-mbstring \ --enable-pcntl \ --enable-soap \ --enable-sockets \ --enable-wddx \ --enable-zip \ --with-zlib \ --with-gettext \ --enable-pdo \ --with-pdo-mysql \ --enable-cgi \ --enable-json \ --with-curl \ --with-gd \ --enable-gd \ --with-openssl \ --enable-openssl \ --with-mysql \ --enable-mysql \ $gcov" 

Я также использую собственный файл php ini как custom-php.ini :

 include_path=".:/opt/phpfarm/inst/php-$version/pear/php/" [Zend] zend_extension="/usr/lib/php5/ZendGuardLoader.so" 

Впоследствии, чтобы скомпилировать версию PHP, я использую эту команду:

 cd /opt/phpfarm/src/ ./compile 5.4.30 

Итак, сразу после этого я получаю все выходные данные и php устанавливается правильно, но когда я проверяю версию PHP в /opt/phpfarm/inst/bin/php-5.4.30 -v я получаю этот вывод:

 PHP 5.4.30 (cli) (built: Sep 3 2014 23:41:33) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies 

По какой-то причине он не загружает расширение ZendGuard. Когда я проверяю phpinfo() ZendGuard вообще не появляется. Когда я проверяю /opt/phpfarm/inst/php-5.4.30/lib/php.ini появляется zend_extension="/usr/lib/php5/ZendGuardLoader.so" .

Любые идеи, почему он не загружает расширение или как я могу его включить?

очевидно, все работает нормально, но по какой-то причине PHP не читал файл php.ini, и ни одно из изменений не было отражено. Что я сделал, я удалил папку inst/php-5.4.30 а также папку src/php-5.4.30 , я пересмотрел свой файл custom-options-5.4.sh и добавил следующую строку:

 --with-config-file-path=/opt/phpfarm/inst/php-5.4.30/lib/ \ 

Впоследствии я скомпилировал снова, перезапустил apache2, и все работало правильно. Надеюсь, это может быть полезно кому-то другому :).

Ах, а также, теперь вывод php -v выглядит так:

 PHP 5.4.30 (cli) (built: Sep 26 2014 16:13:45) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies 

Мне пришлось настроить с помощью –enable-xdebug:

./configure –with-php-config = / opt / phpfarm / inst / bin / php-config-5.4.16 –enable-xdebug