PHP 代码中 exec 执行返回 permission denied 解决方法
2017-02-25| 程成| 1898| 0| PHP技术

用php执行exec()方法时,总会返回permission denied,字面的意思是权限不够的意思,后来把语句dump出来,在xshell中可以完美执行,这样更加确定了是权限问题。后来运维的人说前面加上/usr/bin再试试,然后神奇的发现可以了。。如果还是不行,可以按照下面要求一步步来排除错误可能出现的位置。


一、报错


blob.png



二、解决方法:


1、系统是否禁用exec方法


找到php.ini配置文件,查找“disable_functions”,把exec和shell_exec去掉,然后保存退出。


blob.png



2、给相应文件夹赋予777权限


chmod -R 777 路径



3、查看当前用户是否有执行权限


在xshell端直接执行命令,查看是否能够执行。如果不行,切换到root,再执行命令,通常情况是用户权限不够引起的;如果还是不行,请检查命令语法是否正确。


zip -r ./uploads/download/129960.zip ./20170222113250_58ad06620b334.png


还是不行的话,命令前加上/usr/bin试试


/usr/bin/zip -r ./uploads/download/129960.zip ./20170222113250_58ad06620b334.png



如上这些方法应该可以解决大多数的php中无法执行exec()方法的问题,以及exec()方法各种报错问题。



但是这里不知道为什么加了/usr/bin就可以执行,等待后面的学习来自圆或者有懂运维的人告知下,谢谢啦~



×
作者:程成
QQ:492245711