1 votes

Comment appeler un PHP depuis un autre serveur ?

Comment appeler un PHP depuis un autre serveur en utilisant Shell Shell ? J'ai un PHP et Shell Shell, les 2 fichiers sont stockés dans un serveur différent.

J'ai ce script :

#!/bin/bash

php "http://example.com/csv_import.php"

Mais lorsque je lance cette commande manuellement, j'obtiens une erreur : Could not open input

Comment appeler correctement un PHP en utilisant Shell Shell ?

1voto

Tore A. Points 571

Où voulez-vous exécuter le script de PHP ? Si c'est sur l'autre serveur, il vous suffit de cliquer sur l'URL appropriée :

curl "http://example.com/csv_import.php"

Ou, si cela nécessite une requête POST,

curl -XPOST "http://example.com/csv_import.php"

C'est assez simple.


Cependant, si vous voulez télécharger un script PHP et l'exécuter sur ce serveur, vous êtes dans une situation un peu plus délicate. Tout d'abord, vous devez vous assurer que le serveur distant envoie l'adresse réelle de l'utilisateur. script au lieu d'exécuter le script et d'envoyer le résultat, comme ce serait le cas normalement (ou, peut-être, vous avez un script qui, lorsqu'il est traité, produit un autre script). Généralement, vous pouvez faire cela en désactivant l'analyse PHP dans votre serveur web, ou en changeant l'extension du fichier en quelque chose de non standard (probablement simplement .txt ).

Maintenant, vous voulez télécharger ce script et le passer avec l'exécutable PHP sur votre machine locale. Tout d'abord, vérifiez que cela fonctionne, en exécutant la commande curl ci-dessus et vérifier que la sortie est, en fait, le script PHP lui-même. Si vous y êtes parvenu, alors quelque chose de simple comme

curl "http://example.com/csv_import.php.txt" | php

devrait faire l'affaire.

La partie la plus délicate est à l'autre bout.

Si vous ne pouvez pas désactiver l'analyse de PHP à l'autre bout, vous pouvez peut-être récupérer le fichier PHP d'une autre manière, comme par exemple scp o rsync puis l'exécuter localement.

0voto

Tero Kilkanen Points 32968

Vous utilisez un client HTTP en ligne de commande comme curl o wget pour effectuer la requête HTTP.

-1voto

Oleh Yatskiv Points 44

Vous pouvez essayer

#!/usr/local/bin/php

Par exemple, le premier argument de php, s'il ne ressemble pas à une option, est le nom du fichier PHP à exécuter, et -q est réservé aux CGI.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X