PHP作为shell脚本被拒绝

Shi*_*iki 2 php shell ubuntu

我正在尝试按照此处的说明操作:http://www.php.net/manual/en/features.commandline.usage.php

  • 我创建了一个名为"vardump"的文件
  • 将此代码添加到文件中:

    #!/usr/bin/php
    <?php
    var_dump($argv);
    ?>
    
    Run Code Online (Sandbox Code Playgroud)
  • 没有 chmod +x vardump
  • 但是我在执行文件时收到权限被拒绝错误:

    shiki@Etna:~/projects/tests$ ./vardump
    bash: ./vardump: Permission denied
    shiki@Etna:~/projects/tests$ sudo ./vardump
    sudo: unable to execute ./vardump: Permission denied
    
    Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?我正在运行Ubuntu 10.04.

像这样执行它有效:

shiki@Etna:~/projects/tests$ php vardump
array(1) {
  [0]=>
  string(7) "vardump"
}
Run Code Online (Sandbox Code Playgroud)

以下是文件权限:

shiki@Etna:~/projects/tests$ ls -l
-rwxrwxrwx 1 root root   41 2010-06-23 07:25 vardump

shiki@Etna:~/projects/tests$ ls -l /usr/bin/php
lrwxrwxrwx 1 root root 21 2010-06-02 15:34 /usr/bin/php -> /etc/alternatives/php
Run Code Online (Sandbox Code Playgroud)

Shi*_*iki 5

解决了它.根据你的所有答案,我怀疑问题不在于php.我在NTFS安装上运行脚本,所以我试图将它移动到根安装,它在那里工作.所以我添加exec到/ etc/fstab并且它有效.

UUID=0B02861D7B0D6A31 /media/Data ntfs-3g defaults,users,exec,locale=en_PH.UTF-8 0 0
Run Code Online (Sandbox Code Playgroud)

这个答案也给了我一些线索.非常感谢您的帮助!