public function deploy_test() {
echo json_encode(system("python --version"));
}
当用户想要部署测试时,通过单击网页中的测试按钮,他将能够完成这样的任务.
但是,当我单击测试按钮时,我的输出是:
""
同时,当我用命令执行相同的功能时:
public function deploy_test() {
echo json_encode(system("ls -l"));
}
我越来越:
total 32
drwxr-xr-x. 15 philippe philippe 4096 Mar 4 16:48 application
drwxrwxr-x. 2 philippe philippe 4096 Mar 4 17:28 css
-rw-r--r--. 1 philippe philippe 6357 Jan 30 11:53 index.PHP
drwxrwxr-x. 2 philippe philippe 4096 Feb 27 15:38 js
-rw-r--r--. 1 philippe philippe 2496 Jan 30 11:53 license.txt
drwxr-xr-x. 8 philippe philippe 4096 Jan 30 11:53 system
drwxr-xr-x. 12 philippe philippe 4096 Jan 30 11:53 user_guide
有人可以帮我解决问题吗?
解决方法:
问题在于您的权限.
PHP使用在apache的env-vars中设置的权限.
理想情况下设置为:
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
在你的apache2 / httpd conf文件下.
例如:
试试跑步:
<?= `whoami` ?>
通过您的shell和浏览器.
您的浏览器可能会说www-data和shell会说出您的用户名,或者如果您在AWS上 – 默认情况下,您将获得root权限
您不必使用system(),而是使用exec().
我们应该接近:
echo json_encode(exec("python --version"));
执行操作将要求您设置正确的用户和组.
查找:In the shell, what does ” 2>&1 ” mean?
所以你的代码应该是:
echo json_encode(exec("python --version 2>&1"));
希望能帮助到你!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。