> 백엔드 개발 > PHP 튜토리얼 > PHP在Linux下执行exec

PHP在Linux下执行exec

WBOY
풀어 주다: 2016-06-23 13:54:00
원래의
1075명이 탐색했습니다.

PHP的版本为5.4

PHP代码如下:

<?phpexec('whoami', $r);var_dump($r);
로그인 후 복사


root用户在服务器终端使用php test.php
输出结果如下,是正确的
[root@localhost htdocs]# php test.phparray(1) {  [0]=>  string(4) "root"}
로그인 후 복사


但是在浏览器上输入http://192.168.x.x/test.php
输出为空。

感觉是linux服务器上的权限问题,但是又不知道哪个权限问题。
运行httpd的用户名为apache


回复讨论(解决方案)

whoami 显示登录名
浏览者是匿名(就是没有名字)访问网站的,所以显示为空是正确的

whoami 显示登录名
浏览者是匿名(就是没有名字)访问网站的,所以显示为空是正确的



改成exec('date', $r);也一样,我感觉是权限问题。在php.ini中的disable_functions不存在一个被禁用的函数

把错误输出 你就知道是不是权限问题了.

把错误输出 你就知道是不是权限问题了.



apache的access.log中,只有get请求。
apache的error.log中,没有错误产生。


把错误输出 你就知道是不是权限问题了.



apache的access.log中,只有get请求。
apache的error.log中,没有错误产生。

请打开 php 的错误输出



把错误输出 你就知道是不是权限问题了.



apache的access.log中,只有get请求。
apache的error.log中,没有错误产生。

请打开 php 的错误输出

错误输出是指php.ini中的 display_errors吗?
如果是的话,display_errors 已经  on

没有错误的话
那么你就chmod 吧 给个777 
无论是 whoami 还是date 都是可以输出结果的 在浏览器下
我在linux 下实测过了.剩下两个 人品和 权限  我想你应该更倾向于选择后者吧...

没有错误的话
那么你就chmod 吧 给个777 
无论是 whoami 还是date 都是可以输出结果的 在浏览器下
我在linux 下实测过了.剩下两个 人品和 权限  我想你应该更倾向于选择后者吧...



把上面的test.php改成777吗?改后还是没用,不管我把test.php的所有权改在apache还是root
-rwxrwxrwx. 1 root root       38 Jul 10 16:14 test.php


没有错误的话
那么你就chmod 吧 给个777 
无论是 whoami 还是date 都是可以输出结果的 在浏览器下
我在linux 下实测过了.剩下两个 人品和 权限  我想你应该更倾向于选择后者吧...



把上面的test.php改成777吗?改后还是没用,不管我把test.php的所有权改在apache还是root
-rwxrwxrwx. 1 root root       38 Jul 10 16:14 test.php
目录权限呢?都改改看看吧 想不出来还有什么其他的,你在什么Linux 下测试的,我在Ubuntu 下 一切都好...

测试过,一切正常。

我的环境是:
Centos 6.5 
PHP 5.4
Apache 2.4

Apache httpd的执行用户名(组)为非登录的apache:apache

nginx 
php 5.3
表示也没有输出

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿