当前位置: 首页 > 知识库问答 >
问题:

PHP 5.5 Zend OPache在Ubuntu 14.04上编译时不运行

姚兴安
2023-03-14

我编译PHP 5.5.27在Ubuntu 14.04作为Nginx 1.8.0的一部分与PHP-FPM部署和不明白为什么它不工作。

我有下面的php。系统上的ini文件。我没有使用Apache,所以第三个已经过时了。。。剩下前两个:

/srv/etc/web_x/php/php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini 

当我启动nginx时,我可以从phpinfo中看到。php(安全)页面,我指向我编译的php。ini,即:

Loaded Configuration File   /srv/etc/web_x/php/php.ini

但是,没有Zend OPache信息,因此无法运行。

唯一提到opcache的是--enable opcache的配置选项。根据phpinfo的完整配置选项有(我使用带有变量的脚本比使用变量更容易表示):

'./configure' '--prefix=/srv/apps/web_x/php' '--with-config-file-path=/srv/etc/web_x/php' '--with-config-file-scan-dir=/srv/etc/web_x/php/conf.d' '--with-curl' '--with-pear' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-freetype-dir' '--with-t1lib' '--with-mcrypt' '--with-mhash' '--with-mysql' '--with-mysqli' '--with-pgsql' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-openssl' '--with-xmlrpc' '--with-xpm-dir' '--with-xsl' '--with-bz2' '--with-gettext' '--with-readline' '--with-fpm-user=wwx' '--with-fpm-group=wwx' '--with-imap' '--with-imap-ssl' '--with-kerberos' '--with-snmp' '--disable-debug' '--enable-opcache' '--enable-fpm' '--enable-cli' '--enable-gd-native-ttf' '--enable-inline-optimization' '--enable-json' '--enable-exif' '--enable-wddx' '--enable-zip' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-mbstring' '--enable-soap' '--enable-sockets' '--enable-shmop' '--enable-dba' '--enable-shared' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg'

奇怪的是,如果我查看我看到的设置,这些设置显示我已经为我的编译安装启用了Zend OPcache,但它没有为Ubuntu提供的PHP CLI安装启用:

/srv/etc/web_x/php/php.ini:[opcache]
/srv/etc/web_x/php/php.ini:opcache.enable=1
/srv/etc/web_x/php/php.ini:opcache.enable_cli=1
...

/etc/php5/cli/php.ini:[opcache]
/etc/php5/cli/php.ini:;opcache.enable=0
/etc/php5/cli/php.ini:;opcache.enable_cli=0
...

但是,如果我检查Ubuntu PHP CLI,我会看到:

php --version

PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul  2 2015 15:23:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies 

共有1个答案

毛淳
2023-03-14

刚刚找到的解决方案...在php.ini文件末尾添加以下内容:

zend_extension=opcache.so

在php.net的PHP安装指南中讨论了这一点,但我记得我曾经读过,这不再是必需的,尽管显然是必需的(也许我曾经错误地回忆起通往共享库的路径是必需的,但显然不是)。

我本以为PHP5.5编译时使用--enable-opcache可以处理这个问题,但事实并非如此。可能是未来的PHP版本;-)

 类似资料:
  • 问题内容: 我正在尝试在OSX上交叉编译go应用程序,以为Windows和Linux构建二进制文件。我已经阅读了所有可以在网上找到的东西。我发现的最接近的示例已发布(除了有关go- nuts邮件列表的许多未完成的讨论之外): http://solovyov.net/en/2012/03/09/cross-compiling- go/ 但它不适用于我的安装。我去了1.0.2。由于1.0.2是最近的版

  • 问题内容: 我正在编译glibc库。在我可以这样做之前,我需要先跑步。但是,要编译glibc,我需要使用gcc编译器,它不是计算机上的默认编译器。该手册说明以下内容。 现在,我的问题是我对该计算机没有任何管理权限。因此,如何使用不同于默认值的编译器。 问题答案: 在linux上,任何人都可以更改其进程的环境变量。不需要管理权限。 在bash中: 在csh中使用 在该命令之后在此shell中启动的任

  • 发生在运行时,因为编译器不能在决定执行哪个函数,但为什么编译器不能在编译时决定呢? 产出: 狗在吃...

  • 我知道这听起来像是一个奇怪的“问题”,但请坚持住。 我有一个支持OpenGL 3.3的显卡。< br >但是,我正在编写针对OpenGL 2.0的代码,因此也是针对1.1版的代码。< br >我有以下GLSL代码:< br > 如您所见,我已将GLSL版本指定为#version 110。 您可能还注意到,我对vec4位置使用了“in”关键字 该关键字在指定的GLSL版本中不可用,但它在我的图形卡(

  • 问题内容: 我尝试在Android上的Janino上使用这些东西,并得出结论说,它们根本无法在Dalvik VM中运行。 所以我只想问一个简单的问题:在 Android上 ,是否有可能在运行时编译包含代码的字符串以供应用程序使用。如果是这样,是否有让我这样做的库和/或您可以共享一个代码示例来做到这一点? 对于 (一个非常简单的) 示例,如果我有一个包含以下内容的String对象: 作为一根巨大的弦

  • 例如如下代码: SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); Date date = sdf.parse("abcd"); 这段代码会抛出ParseException,而它是编译时异常,为什么编译阶段不报错,运行时报错?