提问者:小点点

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


展示了如何调试问题,即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个答案

匿名用户

在我的例子中,受影响的模块是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