Home >Backend Development >PHP Problem >What to do if php extension does not take effect
Solution to the problem that php extension does not take effect: 1. Specify the php.ini file to start the php-fpm service; 2. Modify the path of the php.ini file; 3. Restart the php-fpm service.
The operating environment of this article: Windows 7 system, PHP version 7.1, DELL G3 computer
What should I do if the php extension does not take effect?
Solution to the problem that php extension installation does not take effect
After php installs the extension module, restarting does not take effect and the reasons and solutions
In lnmp In the operation and maintenance environment, we often encounter that some extension modules that PHP depends on are not installed, which requires adding these extension modules later. After the extensions are installed and configured, you will often find that after the php-fpm service is restarted, these extensions are not actually loaded! The following is an example to illustrate:
Sample environment:
php installation package storage path: /data/software/php -5.6.10.tar.gz
php installation directory:/data/php
[root@zabbix ~]# ll /data/software/php-5.6.10.tar.gz -rw-r--r-- 1 root root 18306403 6月 11 2015 /data/software/php-5.6.10.tar.gz [root@zabbix ~]# ll -d /data/software/php-5.6.10 drwxr-xr-x 17 www www 4096 10月 13 19:38 /data/software/php-5.6.10 [root@zabbix ~]# ls /data/php/ bin etc include lib php sbin var
Using the php -m command, it is found that the bcmath and gettest extensions are missing
[root@zabbix ~]# vim /etc/profile export PATH=$PATH:/data/php/bin [root@zabbix ~]# source /etc/profile [root@zabbix ~]# php -m|grep bcmath [root@zabbix ~]# php -m|grep gettext [root@zabbix ~]#
Now start installing bcmatn and gettest extensions
Install bcmath extension
[root@zabbix ~]# cd /data/software/php-5.6.10/ext/bcmath/ [root@zabbix bcmath]# /data/php/bin/phpize [root@zabbix bcmath]# ./configure --with-php-config=/data/php/bin/php-config [root@zabbix bcmath]# make && make .......
After successful compilation, you will be informed of a directory
Installing shared extensions: /data/php/lib/php/extensions/no-debug-non-zts-20131226
Install gettext extension
[root@zabbix ~]# cd /data/software/php-5.6.10/ext/gettext/ [root@zabbix gettext]# /data/php/bin/phpize [root@zabbix gettext]# ./configure --with-php-config=/data/php/bin/php-config [root@zabbix gettext]# make && make .......
After successful compilation, you will be told a directory
Installing shared extensions: /data/php/lib/php/extensions/no-debug-non-zts-20131226 [root@zabbix ~]# ll /data/php/lib/php/extensions/no-debug-non-zts-20131226
Total usage 2336
-rwxr-xr-x 1 root root 380152 10月 13 23:03 bcmath.so -rwxr-xr-x 1 root root 50376 10月 13 23:31 gettext.so
Configuration php.ini
[root@zabbix ~]# vim /data/php/etc/php.ini ......... extension_dir = "/data/php/lib/php/extensions/no-debug-non-zts-20131226" extension=bcmath.so extension=gettext.so
Restart php-fpm
[root@zabbix ~]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done
and then check again whether the bcmath and gettext extensions are installed and take effect?
[root@zabbix ~]# php -m|grep bcmath [root@zabbix ~]# php -m|grep gettext [root@zabbix ~]#
Found that it didn’t take effect! why! ?
This is because php.ini was not specified when php-fpm was started, so it never took effect!
[root@zabbix etc]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done [root@zabbix etc]# ps -ef|grep php-fpm root 19529 1 0 23:37 ? 00:00:00 php-fpm: master process (/data/php/etc/php-fpm.conf) www 19530 19529 0 23:37 ? 00:00:00 php-fpm: pool www www 19531 19529 0 23:37 ? 00:00:00 php-fpm: pool www root 19533 17173 0 23:37 pts/4 00:00:00 grep --color=auto php-fpm
Solution:
1) Specify the php.ini file to start the php-fpm service
[root@zabbix etc]# /etc/init.d/php-fpm stop Gracefully shutting down php-fpm . done [root@zabbix etc]# ps -ef|grep php-fpm root 19541 17173 0 23:38 pts/4 00:00:00 grep --color=auto php-fpm [root@zabbix etc]# /data/php/sbin/php-fpm -y /data/php/etc/php-fpm.conf -c /data/php/etc/php.ini [root@zabbix etc]# ps -ef|grep php-fpm root 19543 1 0 23:38 ? 00:00:00 php-fpm: master process (/data/php/etc/php-fpm.conf) www 19544 19543 0 23:38 ? 00:00:00 php-fpm: pool www www 19545 19543 0 23:38 ? 00:00:00 php-fpm: pool www root 19547 17173 0 23:39 pts/4 00:00:00 grep --color=auto php-fpm
2) If after starting the above, the installed php extension still does not take effect! Then it may be that the php.ini file is not placed in the right path (here I directly enlarge the etc directory of php)
[root@zabbix ~]# ll /data/php/etc/php.ini -rw-r--r-- 1 root root 73243 10月 13 23:32 /data/php/etc/php.ini [root@zabbix ~]# cp /data/php/etc/php.ini /data/php/lib/ [root@zabbix ~]# ll /data/php/lib/php.ini -rw-r--r-- 1 root root 73243 10月 13 23:35 /data/php/lib/php.ini
Then restart the php-fpm service!
[root@zabbix ~]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done [root@zabbix ~]# ps -ef|grep php root 19564 1 0 23:43 ? 00:00:00 php-fpm: master process (/data/php/etc/php-fpm.conf) www 19565 19564 0 23:43 ? 00:00:00 php-fpm: pool www www 19566 19564 0 23:43 ? 00:00:00 php-fpm: pool www root 19568 17173 0 23:43 pts/4 00:00:00 grep --color=auto php [root@zabbix ~]#
Finally check again whether the bcmath and gettext extensions have taken effect?
[root@zabbix ~]# php -m|grep bcmath bcmath [root@zabbix ~]# php -m|grep gettext gettext [root@zabbix ~]#
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What to do if php extension does not take effect. For more information, please follow other related articles on the PHP Chinese website!