首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PHP模块没有加载到PHP中?

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

Unix & Linux用户
提问于 2020-07-29 19:28:31
回答 1查看 807关注 0票数 0

演示如何调试PHP模块未加载到PHP中的问题。

我使用OpenSUSE v42.2linux操作系统,与,PHPV7.1,Mysql一起使用。

因为它没有提供我需要的PHPV7.1,所以我从源代码构建了PHPV7.1。使用PHP。

我把它装进

代码语言:javascript
复制
/opt/php-7.1/

php.ini位于:

代码语言:javascript
复制
/opt/php-7.1/lib/php.ini

我发现,opcache被安装到

代码语言:javascript
复制
/opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/opcache.so

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

代码语言:javascript
复制
zend_extension=/opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/opcache.so

重新启动:

代码语言:javascript
复制
systemctl restart php-7.1-fpm.service
systemctl restart apache2.service

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

代码语言:javascript
复制
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]

它丢失了。

但在配置中有“--启用--opcache”:

/ -i‘-前缀=/opt/ php -7.1’‘-with-pdo-pgsql’‘-with-zlib-dir’-with-freetype-dir‘-启用-libxml-dir=/usr’‘-启用-soap’-启用-intl‘’-启用-curl‘’-with-mcrypt‘’-with-mcrypt‘-with-mcrypt’‘-with-mcrypt’‘。“-with-gd”-with-pgsql‘-禁用-rpath’-启用-内联-优化‘-与-bz2 2’‘-with-zlib’-启用--套接字‘-启用-sysvsem’‘-启用-sysvshm’‘-启用-pcntl’-启用-mbregex‘’-启用-exif‘-启用-bc计量’‘-与-mhash’‘-启用-zip‘’-with-pcre-regex‘’-with-pdo-mysqli‘’-with-mysqli‘-with-mysql-sock=/var/run/mysql/mysql.sock’-with-xpm-dir=/usr‘-with-webp=/usr’-with-jpeg-dir=/usr‘-with-png-dir=/usr’‘-启用-gd-本机-ttf’-带有-openssl‘‘-with-fpm-user=wwwrun’‘-with-fpm-group=www’-with-libdir=lib64 64‘-启用-ftp’-with-imap‘-with-imap-ssl’-with-kerberos‘-with-gettext’-with-xmlrpc‘’-with-xsl‘-启用-opcache’-启用-fpm‘。

我还试图说明如下:

代码语言:javascript
复制
zend_extension=opcache

但我也得到了同样的结果,仍然失踪。

如何修复使opcache启用?

EN

回答 1

Unix & Linux用户

发布于 2020-07-29 23:26:26

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

解决方案:

我注意到,在phpinfo中,"display_errors“本地值是关闭的,主值是打开的。因为主值来自php.ini,并且在/opt/php-7.1/lib/php.ini中有"display_errors = Off",这意味着没有加载这个php.ini。

还发现,"Loaded Configuration File“字段值为空,因此它也显示没有加载php.ini。

但是php.ini位于(并且应该是从这里加载):/opt/php-7.1/lib/php.ini

此外,我注意到,在phpinfo中,"Configuration File (php.ini) Path“设置为:"/opt/php-7.1/lib64”,这意味着php.ini应该位于/opt/php-7.1/lib64/目录下。

Step1修复:

代码语言:javascript
复制
copy php.ini 
from 
/opt/php-7.1/lib/php.ini
to
/opt/php-7.1/lib64/php.ini

在命令行中:

代码语言:javascript
复制
cp -p /opt/php-7.1/lib/php.ini /opt/php-7.1/lib64/php.ini

还注意到,php是用'--with-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/”放在一起就足够了。这成了最后的解决办法。

Step2修复:

代码语言:javascript
复制
copy opcache.a & opcache.so
from 
/opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/
to
/opt/php-7.1/lib64/extensions/

在命令行中:

代码语言:javascript
复制
cp -p /opt/php-7.1/lib64/extensions/no-debug-non-zts-20160303/opcache.* /opt/php-7.1/lib64/extensions/

Step3修复:

重新启动Apache &PHP(可选,如果使用):

代码语言:javascript
复制
service apache2 restart
service php-7.1-fpm restart

在完成这三个修复步骤之后,PHP。

<#>结果:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/600966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档