2010-06-22 3 views
2

Je suis en train de suivre les instructions ici: http://www.php.net/manual/en/features.commandline.usage.phpPermission denied sur PHP comme un script shell

  • J'ai créé un fichier nommé "vardump"
  • Ajouté le code du fichier:

    #!/usr/bin/php 
    <?php 
    var_dump($argv); 
    ?> 
    
  • a fait chmod +x vardump
  • mais je suis obtenir une permission refusée erreur lors de l'exécution du fichier:

    [email protected]:~/projects/tests$ ./vardump 
    bash: ./vardump: Permission denied 
    [email protected]:~/projects/tests$ sudo ./vardump 
    sudo: unable to execute ./vardump: Permission denied 
    

Quel pourrait être le problème? Je cours Ubuntu 10.04.

il exécution comme cela fonctionne bien:

[email protected]:~/projects/tests$ php vardump 
array(1) { 
    [0]=> 
    string(7) "vardump" 
} 

Voici les autorisations de fichier:

[email protected]:~/projects/tests$ ls -l 
-rwxrwxrwx 1 root root 41 2010-06-23 07:25 vardump 

[email protected]:~/projects/tests$ ls -l /usr/bin/php 
lrwxrwxrwx 1 root root 21 2010-06-02 15:34 /usr/bin/php -> /etc/alternatives/php 
+0

Est-ce une question de programmation? En outre, il ne semble pas être lié à php. – Mewp

+0

Que vous montre 'ls -l/usr/bin/php'? – Wrikken

+0

@Mewp Je ne suis pas vraiment sûr de moi-même. Cela devrait-il être dans le super-utilisateur? – Shiki

Répondre

5

Résolu. Sur la base de toutes vos réponses, je pensais que le problème n'était pas du tout lié au php. Je cours le manuscrit sur un montage de NTFS ainsi j'ai essayé de le déplacer au support de racine et cela a fonctionné là. J'ai donc ajouté exec à/etc/fstab et cela a fonctionné.

UUID=0B02861D7B0D6A31 /media/Data ntfs-3g defaults,users,exec,locale=en_PH.UTF-8 0 0 

This answer m'a également donné l'indice pour cela. Merci beaucoup pour toute votre aide!

+0

Nice. Merci d'avoir posté la réponse au fil de discussion pour référence future. – labratmatt

+0

Pour contourner le problème, il vaut probablement la peine de mentionner que la simple exécution de 'php myfile.php' devrait fonctionner comme prévu. – Werner

1

Êtes-vous autorisé à exécuter/etc/alternatives/php sur le système? Il est possible que lorsque vous exécutez les scripts avec php vardump, il utilise un binaire php différent de/etc/alternatives/php. Pour vérifier cela, exécutez which php et voir ce qu'il imprime. En outre, quelle est la sortie de ls -l /etc/alternatives/php.

+0

C'est 'lrwxrwxrwx 1 root root 13 2010-06-02 15:34/etc/alternatives/php ->/usr/bin/php5' – Shiki

+0

Connu que 'quel php' est'/usr/bin/php' il est peut-être lié à l'installation de php comme Marco l'a mentionné –

3

Utilisez-vous deux instances php différentes? Exécutez ce qui suit, est-ce autre chose que/usr/bin/php?

which php 
+0

Non, c'est toujours '/ usr/bin/php' – Shiki

1

Je courrais que php - je sais que sur Ubuntu que php est lié à/usr/bin/php (testé sur Ubuntu 10.04 Desktop et le serveur de votre script fonctionne très bien avec les deux 0777 et 0755 autorisations sur ma machine en utilisant ce qui suit:..

[email protected]:~/Projects$ php -v 
PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cli) (built: May 13 2010 20:03:45) 
Copyright (c) 1997-2009 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies 

[email protected]:~/Projects$ ls -lah vardump 
-rwxrwxrwx 1 marco marco 41 2010-06-22 20:17 vardump 
[email protected]:~/Projects$ ls -l /usr/bin/php 
lrwxrwxrwx 1 root root 21 2010-05-26 09:15 /usr/bin/php -> /etc/alternatives/php 
[email protected]:~/Projects$ ls -l /etc/alternatives/php 
lrwxrwxrwx 1 root root 13 2010-05-26 09:15 /etc/alternatives/php -> /usr/bin/php5 
[email protected]:~/Projects$ ls -l /usr/bin/php5 
-rwxr-xr-x 1 root root 7836792 2010-05-13 16:20 /usr/bin/php5 

[email protected]:~/Projects$ ./vardump 
array(1) { 
    [0]=> 
    string(9) "./vardump" 
} 

Cette probable devra être affiché dans serverfault Enfin exécuter ce qui suit pour vous assurer que tout est correctement installé

[email protected]:~/Projects$ dpkg -l | grep php5 
ii libapache2-mod-php5     5.3.2-1ubuntu4.2          server-side, HTML-embedded scripting languag 
ii php5         5.3.2-1ubuntu4.2          server-side, HTML-embedded scripting languag 
ii php5-cgi        5.3.2-1ubuntu4.2          server-side, HTML-embedded scripting languag 
ii php5-cli        5.3.2-1ubuntu4.2          command-line interpreter for the php5 script 
ii php5-common       5.3.2-1ubuntu4.2          Common files for packages built from the php 
ii php5-dev        5.3.2-1ubuntu4.2          Files for PHP5 module development 
ii php5-mysql       5.3.2-1ubuntu4.2          MySQL module for php5 
Questions connexes