linux配置php.ini不起作用的解决办法:1、将php.ini放到指定目录下;2、开启命令时使用“-c”参数指定要读的配置文件路径。
本文操作环境:linux5.9.8系统、PHP7.1版,DELL G3电脑
linux上修改php.ini配置添加扩展时不生效
因初次编译安装php时没有开启openssl, 导致请求https网站报错, 为此需要手动编译openssl扩展然后添加到php.ini中. 问题就在自己明明已经编译安装生成openssl.so的步骤都没有错, 也已经将extension=openssl.so加入php.ini中,服务器也重启了, 但是无论是访问phpinfo()打印的出内容还是直接命令行php -m打印加载的模块都没有显示有加载openssl.
对于以上问题, 其实问题就在如果自己编译生成的openssl.so没有问题, php.ini配置也加了,还是没有生效那么就要想到自己改的php.ini不是被加载的那个. 如何验证?
1. web模式访问 phpinfo()打印出的内容. 找到如下图所示信息, 第一行为php会在什么目录下需找php.ini配置文件, 第二行就是实际加载的php.ini文件, 没有就是php系统默认的咯. 解决办法: 要生效很简单就是将php.ini放到那个第一行所示目录下即可 . (可能很多人的文件是放在etc下)
2. php命令行模式加载的php.ini(很有可能和web模式加载的不一样); linux上先将目录切换都你php安装目录的bin下, 然后使用 ./php --ini会显示如下图信息; 第一行为php会在哪个目录下寻找php.ini文件, 第二行是实际加载的php.ini文件路径, none就是什么配置文件都没有用,使用了系统的默认配置. 解决办法: 将你的php.ini文件放到那个目录下, 或者开启命令时使用-c参数指定要读的配置文件路径. (例如php -c /usr/local/php.ini --ini 看下指定的是不是生效)
此外因为php命令行(cli) 模式下加载配置位置的不一样, 比如扩展目录(可通过php -i 命令输出的内容找到extension_dir字段就是),假设你要添加一个openssl扩展, 那么你将extension=openssl.so加入到php.ini, 但是如果你的openssl.so不在extension_dir字段所指的目录下, 你用php -m 查看加载的扩展是无法看到的,所以要么配置中写绝对路径或将扩展放对地方。
推荐学习:《PHP视频教程》
以上是linux配置php.ini不起作用怎么办的详细内容。更多信息请关注PHP中文网其他相关文章!