Ubuntu — проблема активации расширения 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 Loader. Я скачиваю 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-файл PHP как 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" линия есть.

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

1

Решение

очевидно, все работало нормально, но по какой-то причине 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
3

Другие решения

Мне пришлось настроить с —enable-xdebug:

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

0

По вопросам рекламы [email protected]