• ベストアンサー

コマンドラインからプログラムが実行できません

Windows上でエディタで書いたプログラム(echo.phpとします)をSSHを使ってサーバ(RedHatLinux)にアップロードし、それをサーバ上でコマンドラインから実行させたいのですが、うまくいきません。具体的には、コンソール画面に /usr/loca/bin/php /home/(省略)/echo.php と打ち込んだのですが、実行されずにコマンドプロンプトが表示されます。 nkfコマンドで文字コードをEUCに、改行コードをLFにしてみたり、 ファイルのパーミッションを777にしてみたりしたのですが、ダメでした。 エラーメッセージが出ないため、これ以上の対処の仕方がわからず困っています。原因と解決策を教えていただきたいです。 なお、#/usr/local/bin/php -v でcli版のPHP実行ファイルであることは確認しています。また、echo.phpの一行目に#!/usr/local/bin/phpと記述しスクリプト単体で実行させてもダメでした。 phpの-aオプションも試しましたがIntaractive mode enabledと表示された後にコマンドプロンプトが表示され、利用できません。 *echo.phpの中身 <?php echo "Hello\n"; ?>

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.4

--no-php-ini オプションをつけるとどうですか? それでも駄目なら、 /usr/local/bin/php --no-php-ini -r "echo 123;" とかは?

elental222
質問者

お礼

返信が送れて申し訳ありません。 教えていただいたように-nオプションをつけることで無事実行させることができました。 本当にありがとうございます! -nをつけることで何故実行できたのかを調べてみようと思います。

その他の回答 (3)

  • mpx
  • ベストアンサー率71% (149/209)
回答No.3

>> *echo.phpの中身 >> <?php >> echo "Hello\n"; >> ?> 1. ファイル(echo.php)に下記1行目を追加して、 #!/usr/local/bin/php <?php echo "Hello\n"; ?> 2.そのファイル(echo.php)に実行権限(755)を与えて 3.下記を実行 $ ./echo.php

elental222
質問者

お礼

回答ありがとうございます。 教えていただいた方法はすでに試してみたのですが結果は同じでした。 別の方法で解決いたしました。 ご意見ありがとうございました。

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

#1さん 確かに通常使わないですが、できなくはないですよ。 ↓ PHP編 - Webアプリ開発定番言語をあえてコマンドラインで実行する http://journal.mycom.co.jp/column/helloworld/019/index.html 以前、シェルスクリプトの中でアレコレするのにPHPを便利に使った事もあります。 で、今回の件ですが、上記のリンクにある、 「コマンドラインから直接実行」 「変則的なPHPスクリプト」 だったら実行できますか? また、PHPにパスを通して(と言うか普通通っていると思いますが)、 cd /home/(省略)/ php echo.php でもダメでしょうか?

elental222
質問者

お礼

回答ありがとうございます。 貼っていただいたリンク先の「コマンドラインから直接実行」と 「変則的なPHPスクリプト」を試してみたところ、実行することができました。 ただ、じっさいにはcronを使って数十行程度のPHPスクリプトを実行させたいと思っていますので、 この方法だと少し厳しいかな、と思います。 この問題は-nオプションをつけることで解決しましたが、参考になる意見をありがとうございました。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>Windows上でエディタで書いたプログラム(echo.phpとします)をSSHを使ってサーバ(RedHatLinux)にアップロードし、それをサーバ上でコマンドラインから実行させたいのですが、うまくいきません。 PHPは元々がホームページで動的な表示をさせる「だけ」のために作られました。質問者さんのような使い方は想定していませんし、通常はできません。

elental222
質問者

お礼

回答ありがとうございます。 他の方の回答により、解決することができました。

関連するQ&A