为什么我的php脚本只在文件权限读写时执行?

时间:2014-10-19 06:30:26

标签: php apache curl

我的名字lebnik,以及关于我的信息:

# id lebnik
uid=1000(lebnik) gid=1000(lebnik) groups=1000(lebnik),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev)

我的网络服务器Apache从用户www-data运行php-scripts,请检查:

root@debian /etc/apache2 # grep -R "APACHE_RUN_USER=" .
./envvars:export APACHE_RUN_USER=www-data

有关用户www-data的信息:

# id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)

我创建了php-script file.php:

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);

echo 'script executed';
?>

接下来,我检查权限my file.php

# ls -la
total 16
drwxrwxrwx 1 www-data www-data 4096 Oct 18 00:49 .
drwxrwxr-x 1 www-data www-data 4096 Oct 18 00:36 ..
-rw-rw-r-- 1 www-data www-data  225 Oct 18 00:46 file.php

我尝试用Apache调用我的脚本:curl http://starsite.l/file.php并看到:

script executed

为什么我的php脚本在文件权限只能读写时执行?

1 个答案:

答案 0 :(得分:3)

执行权限阻止shell执行该文件,但它不会阻止另一个应用程序读取文本文件并执行它。 php引擎并不关心可执行权限位。