Heim  >  Artikel  >  Backend-Entwicklung  >  PHP在Linux下执行exec

PHP在Linux下执行exec

WBOY
WBOYOriginal
2016-06-23 13:54:001002Durchsuche

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
表示也没有输出

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn