新版支付版DEMO在Linux上无法使用的解决方案
自从支付宝支付接口从即时到帐升级为网页支付后个人觉得改变挺大的,在新公司写支付接口时遇到一个问题,就是在本地测试demo正常访问,但放到Linux上后就没有什么反映,排查来排查去发现是在安装lnmp环境时禁用了php里的一个函数scandir(php官方手册解释:scandir — 列出指定路径中的文件和目录),查看日志报错如下:
[error] 24468#0: *2 FastCGI sent in stderr: "PHP message: PHP Warning: scandir() has been disabled for security reasons in /home/home/alipay/lotusphp_runtime/Autoloader/Autoloader.php on line 155
PHP message: PHP Warning: Invalid argument supplied for foreach() in /home/home/alipay/lotusphp_runtime/Autoloader/Autoloader.php on line 156
解决方案:
打开php.ini,找到disable_functions = ...,scandir,... 从中去掉这个函数,重启php-fpm 之后就可以了。