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

为什么PHP模块没有加载到PHP中?

穆智刚
2023-03-14

展示了如何调试问题,即PHP模块没有加载到PHP中。

我使用OpenSUSEV42。2个Linux操作系统,带有Apache Web服务器,PHP v7。1、Mysql。

因为它不提供PHPV7。1我需要,我构建了PHPV7。1来源。使用PHP-FPM。

我把它安装到

/opt/php-7.1/

php.ini在:

/opt/php-7.1/lib/php.ini

我发现,opcache安装到

/opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/opcache.so

我编辑了php。ini并添加了以下行:

zend_extension=/opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/opcache.so

重新启动:

systemctl restart php-7.1-fpm.service
systemctl restart apache2.service

但我还是得到了以下结果:

php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
intl
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib

[Zend Modules]

[Zend模块]中缺少opache。

但在configure中有“--enable opcache”:

php-i | grep-i opcache

配置命令=

我还尝试指定为:

zend_extension=opcache

但我得到了同样的结果,opcache仍然缺失。

如何修复启用opcache的问题?

共有1个答案

黄丰
2023-03-14

在我的例子中,受影响的模块是opachePHP模块。

解决方案

我注意到,在phpinfo中,"display_errors"本地值为OFF,主值为ON。因为Master值来自php.ini,并且在/opt-php-7.1/lib/php.ini中有"display_errors=off",这意味着没有加载此php.ini。

但是php。ini位于(并且应该从以下位置加载):/opt/php-7.1/lib/php。ini

此外,我注意到,在phpinfo中,配置文件(php.ini)路径设置为:/opt-php-7.1/lib64,所以这意味着php.ini应该位于/opt-php-7.1/lib64/目录。

步骤1修复:

copy php.ini 
from 
/opt/php-7.1/lib/php.ini
to
/opt/php-7.1/lib64/php.ini

在命令行中:

cp -p /opt/php-7.1/lib/php.ini /opt/php-7.1/lib64/php.ini

还注意到,php是用'——libdir=lib64'参数编译的。

这可能意味着,“opcache.so”文件应该在这个目录下找到。

当前“opcache.so”位于目录:“/opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/”中。我想把“opcache.so”放到“/opt/php-7.1/lib64/extensions/”就足够了。这成了最后的解决办法。

步骤2修复:

copy opcache.a & opcache.so
from 
/opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/
to
/opt/php-7.1/lib64/extensions/

在命令行中:

cp -p /opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/opcache.* /opt/php-7.1/lib64/extensions/

Step3修复:

重启Apache

service apache2 restart
service php-7.1-fpm restart

完成这3个修复步骤后,PHPopache模块成功加载

结果:

php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
intl
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache
 类似资料:
  • 我有一个问题,oci8模块未加载。 操作系统是Ubuntu16,带有Apache2.4和PHP5.6 我做以下步骤: 我下载了Oracle Instant Client Basic和SDK包:(oracle-instantclient11.2-basic-11.2.0.4.0-1。x86_64.rpm,oracle-instantclient11.2-devel-11.2.0.4.0-1。x86_

  • 我已经重新启动了nginx和php7.4-fpm。 xdebug 3看起来是基于以下内容安装的: phpinfo()中的Ini目录: 加载的配置文件 /etc/php/7.4/fpm/php.ini扫描此目录以查找其他. ini文件 /etc/php/7.4/fpm/conf.d解析 /etc/php/7.4/fpm/conf.d/10-opcache.ini, /etc/php/7.4/fpm/

  • 我有一个与PHP cURL不工作完全相同的问题——Windows7 64位上的WAMP Apache重新启动时不加载CURL,消息为:“PHP启动:无法加载动态库'c:/wamp/bin/PHP/php5.3.22/ext/PHP_CURL.dll”-操作系统无法运行%1。\r\n在第0行的未知位置” 除了我没有安装5.3.13在其他线程,但我试图升级PHP在现有的WAMP安装从5.3.4到5.3

  • 正如你所看到的,詹金斯没有找到我的资源。 我错过了什么?

  • 当我试图访问我的站点时,我必须在URL的末尾手动键入index.php。我正在尝试在访问站点时自动加载我的index.php文件。我的nginx配置文件如下所示。

  • 问题内容: 我在尝试连接到MySQL数据库时遇到的问题。我还提供了我已使用的数据库设置。 数据库设置:: 非常感谢您的帮助 !! 问题答案: 看来你没有安装python mysql软件包,请尝试: 或如果未使用虚拟环境(在* nix主机上):