使用PHP Farm激活一个php扩展

我正在实现一个需要PHP 5.4和ZendGuard 6( ZendGuard )的软件( Getsy )。

我正在使用Ubuntu 14.04的AWS实例。 由于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有这个configuration:

 <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,我创build了文件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正确安装,但是当我检查/opt/phpfarm/inst/bin/php-5.4.30 -v的PHP版本时,我得到这个输出:

 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.inizend_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