(おそらくこれはstackoverflowに属しますが、直接実行するとコードが機能するため、実際にはプログラミングの問題ではありません。移動する必要がある場合は問題ありません。)
スケジュールに基づいて実行する必要があるPHPファイル(SOAP経由でNational Weather Service Webサービスを利用する場合)があります。 Webminでcronジョブを設定しようとしています。 [コマンド]フィールドでファイルへの絶対パスを使用すると、実行時に奇妙なエラーが発生します。
/var/www/html/mysite.com/test/ndfdXMLclient.php: line 1: ?php: No such file or directory
/var/www/html/mysite.com/test/ndfdXMLclient.php: line 2: //: is a directory
/var/www/html/mysite.com/test/ndfdXMLclient.php: line 3: //DOCUMENTATION: No such file or directory
/var/www/html/mysite.com/test/ndfdXMLclient.php: line 4: //: is a directory
/var/www/html/mysite.com/test/ndfdXMLclient.php: line 5: syntax error near unexpected token `"running client code",'
/var/www/html/mysite.com/test/ndfdXMLclient.php: line 5: `error_log("running client code", 1, "[email protected]");'
これらの5行のファイル内の実際のコードは次のようになります。
<?php
// ***************************************************************************
//DOCUMENTATION FROM WEATHER.GOV ALL STORED IN xmlClientComments.txt
// ***************************************************************************
error_log("running client code", 1, "[email protected]");
ブラウザで直接実行すると、コードは完全に正常に実行されますが、webminがコードとして認識しないのはなぜですか? (コマンドフィールドに実際のURLを入力すると、同じことが起こります- http://mysite.com/test/ndfdXMLclient.php 。)
以前、webminで作業したことはありません。ホストのほとんどのcronコントロールパネルでは、cronジョブでこのようなPHPファイルを問題なく実行できます。 webminにphpを実際のphpとして読み込ませる方法はありますか?
おそらくスクリプトの先頭にhashbangを追加して、スクリプトが歳差運動するためにサーバーがPHPを見つける場所を知る必要があるでしょう。
PHP実行可能ファイルへのパスがサーバーに対して正しいことを確認してください。
#!/usr/bin/php -q
<?php
// ***************************************************************************
//DOCUMENTATION FROM WEATHER.GOV ALL STORED IN xmlClientComments.txt
// ***************************************************************************
error_log("running client code", 1, "[email protected]");