Pages :
Bonjour !

Alors je vous explique je fais des tests pour comprendre le codage des scripts php. J'ai pour l'instant fait un script de test tout simple :
#!/bin/php
<?php
echo "Hello !";
?>


Et quand je tente de l'exécuter dans une console Linux le script ne s'exécute pas correctement :
upload/1528789027-71261-erreur.png

Avez vous une idée d'où ça peut venir ? parce que je n'ai pas l'impression que ça vienne du code : j'ai retrouvé la même syntaxe un peu partout...

Merci beaucoup d'avance !
Bonjour,

chmod, il a dit chmod… ça ressemble à de la permission. Linux est un peu enquiquinant avec ses permissions parfois.

Avez-vous tenté de rentrer — au moins en partie — le message d'erreur dans un moteur de recherche ?

Smiley sweatdrop
pour trouver le chemin d'accès à php, faire dans une console :
which php

Quand un executable dépend de librairies, il est situé dans le dossier "/usr/bin"
Quand un executable n'a besoin d'aucune librairy, il est situé dans le dossier "/bin"

Avec la modif ci-dessous ton script PHP devrait fonctionnait :
#!/usr/bin/env php
<?php
echo "Bonjour le Monde\n";
?>
Oups petit oubli suite à la remarque de Zelena, faire dans la console :
chmod a+x ton-script.php


L'unique intérêt de PHP est qu'il est quasiment obligatoire comme langage de programmation côté serveur chez la grande majorité des hébergeurs.

Si c'est pour faire quelques scripts, il y a des langages plus élégants comme python, ruby, ...
Modifié par bazooka07 (12 Jun 2018 - 10:36)
Alors Zelena , je n'ai même pas de message d'erreur ça me met juste une croix rouge comme sur l'image et c'est tout...

bazooka07 , il devrait fonctionner... Mais ça ne fonctionne toujours pas avec ces modifications... Smiley bawling
En plus j'avais bien fait toutes ces étapes déjà au départ... La commande "which php" m'avait bien renvoyé : /bin/php

Ensuite , j'ai remodifié mon script :
#! /bin php
<?php
echo "Hello !/n";
?>

Et maintenant j'ai bien un message d'erreur :
bash: ./scriptRecupDonneesSurSatellite.php: /bin: bad interpreter: Permission denied
Modifié par Cherrygolo (12 Jun 2018 - 11:13)
Alors avec chmod 777 monscript.php , j'obtient le message d'erreur :
bash: ./scriptRecupDonneesSurSatellite.php: /bin: bad interpreter: Permission denied
Modifié par Cherrygolo (12 Jun 2018 - 11:28)
Je suis très surpris que "which php" donne "/bin/php".
Tu as quelle distribution Linux
Tu as installé PHP avec le gestionnaire de paquets ou d'une archive zip ou tar.gz

Il semble que tu n'es pas le droit d'executer PHP
Que donnent les commandes suivantes :
ls -l ton-script.php
ls -l /bin/php
Il faut regarder les droits des utilisateurs et le propriétaire et le groupe
Alors enfait je possède une machine linux qui est sur un serveur et je communique avec via MobaXterm (un client ssh d'après ce que j'ai lu). On m'a donné cette machine toute faite donc je ne connais pas la distribution...
J'ai installé php avec le gestionnaire de paquets.

Les deux commandes donnent respectivement :
-rwxr-xr-x 1 DELBECQU UsersGrp 41 Jun 12 11:09 scriptRecupDonneesSurSatellite.php
et
-rwxr-xr-x 1 DELBECQU UsersGrp 113693 Apr 11 02:58 /bin/php
Donc normalement je suis bien sensée avoir les droits non ?
Modifié par Cherrygolo (12 Jun 2018 - 13:38)
Normalement oui , tu as les droits d'execution.

Enlève le shebang (1ère ligne avec commentaire et tente
php -f scriptRecupDonneesSurSatellite.php

avec uniquement dans scriptRecupDonneesSurSatellite.php
<?php
echo "Hello !/n";
?>


Si ce n'est pas toujours pas bon, tente
php --version
uname -a
whoami

Modifié par bazooka07 (12 Jun 2018 - 12:12)
Alors ça ne marche pas avec les modifications. Et pour les lignes de commandes:
- la 1ère ne fonctionne pas (croix rouge affichée)
- la 2e me donne : CYGWIN_NT-10.0-WOW NB01810245 2.8.2(0.313/5/3) 2017-07-12 20:36 i686 GNU/Linux
- la 3e me donne mon nom d'utilisateur
Tant que "php --version" ne marche pas tu ne pourras avancer.

Je ne connais pas MobaXterm. Donc, je ne sais pas comment il se paramètre.
Il contient un client ssh et un serveur X.

Peux-tu utiliser un client plus simple comme Putty :
https://putty.org/

Si cela ne va pas mieux, prépare toi à envoyer un mail à l'administrateur du serveur.
J'ai l'impression qu'il a réglé (chroot) pour que PHP ne puisse s'executer que derrière un serveur HTTP (Apache, Ngins, IIS, ..)

Pour avancer, tu peux créer un script PHP comme ceci pour éviter d'écrire une page HTML :
<?php
header('Content-Type: text/plain; charset=utf-8');
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
echo ("Bonjour le monde !\n");
?>

Uploade le sur le serveur web et ouvre le dans ton navigateur.
Modifié par bazooka07 (12 Jun 2018 - 14:06)
Cherrygolo a écrit :
Alors avec chmod 777 monscript.php , j'obtient le message d'erreur :
bash: ./scriptRecupDonneesSurSatellite.php: /bin: bad interpreter: Permission denied


Parce que tu as oublié un slash. Le message d'erreur est pourtant explicite je trouve : il cherche ton interpréteur sur /bin (à cause de l'espace à la place du slash) alors que c'est /bin/php

EDIT: Grosso modo, ta première version était correcte.
Modifié par Anymah (12 Jun 2018 - 14:12)
Alors quand j'essaie de me connecter à ma machine via putty avec mon nom d'utilisateur il refuse complètement...
Je vais devoir me renseigner auprès des gens qui s'occupent de ce serveur du coup..


Je n'ai rien oublié , on m'a conseillé cette écriture en fait... Et le problème c'est que la 1ère version ne fonctionne pas justement... ;_;
Cherrygolo a écrit :
Et le problème c'est que la 1ère version ne fonctionne pas justement...

Pas exactement. Au moins avec cette version il trouve correctement ton interpréteur et on sait aussi que ton code PHP fonctionne. Donc le problème se situe quelque part dans la configuration de la machine comme le dit Bazooka.
Cherrygolo a écrit :
Alors quand j'essaie de me connecter à ma machine via putty avec mon nom d'utilisateur il refuse complètement...
Je vais devoir me renseigner auprès des gens qui s'occupent de ce serveur du coup..

Pas de mot de passe ?
Il y a peut-être une clé ssh installée sur MobaXterm

Cherrygolo a écrit :

Je n'ai rien oublié , on m'a conseillé cette écriture en fait... Et le problème c'est que la 1ère version ne fonctionne pas justement... ;_;

Le 1er script était correct hormis ce "/bin/php" au lieu de "/usr/bin/php".
De toute manière "php --info" doit te donner une réponse correcte.

Pour info https://mobaxterm.mobatek.net/ est à Toulouse.
Si tu es dans l'urgence pour faire des tests, utilise le dernier script que je t'ai donné.
Je suis curieux de connaitre la réponse de l'admin du serveur.
Modifié par bazooka07 (12 Jun 2018 - 14:55)