• 我们中的有些人,注定要在日常生活的点滴中去寻找生命的意义。---- 《生活大爆炸》|

Linux服务器PHP环境curl始终返回false(解决方案)

PHP admin 4年前 (2019-03-04) 354次浏览 已收录 0个评论

1、问题描述:在 linux 系统的 lnmp 环境中,通过 curl 操作获取微信 access_token 始终返回 false 或 null

线上服务器突然报错,用户登陆之后无响应,没有跳转到指定 url,通过排查是 access_token 未获取,用 file_get_contents 先解决了问题,之后仔细研究了下问题,以下为解决方案:

在 curl 的操作中用 curl_error($url);来看是否有报错,报错信息为:Problem with the SSL CA cert (path? access rights?)

有报错信息,这就好办了

这个首先:yum install ca-certificates (此命令:没有安装过该包该命令会把此包装上,有的话则更新该包)

重启 php-fpm

到此,问题解决

但是,服务器上环境是多版本 php 共存的,刚好该项目用的 php7 版本的环境,没有把此版本 php-fpm,注册为系统命令,(即:/etc/init.d/下没有此项目 php-fpm 命令文件)

而且,php7 以后,不能通过安装目录下的 php-fpm(start|stop|restart)来进行服务的管理,只能通过信号变量,

所以有了以下操作:

1、你能知道你的该 php 进行的 pid,一般在安装目录下的/var/run/php-fpm.pid 文件里,(例如我的:/usr/local/php7/var/run/php-fpm.pid)

2、用信号变量进行操作:

关闭命令:kill -INT cat /var/local/php7/var/run/php-fpm.pid

重启命令:kill -USR2 cat /var/local/php7/var/run/php-fpm.pid

其实,使用 service php-fpm restart 或者 systemctl start php-fpm 都是类似的,最终都是转成信号变量的方式来对 php-fpm 进行进行操作的

如果你的 linux 系统/etc/init.d/目录下有 php-fpm,你打开就恍然大悟了,同样的还有 nginx 的切割日志一些操作都是典型的使用信号变量的例子


本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux 服务器 PHP 环境 curl 始终返回 false(解决方案)
喜欢 (1)

您必须 登录 才能发表评论!