プロが教える店舗&オフィスのセキュリティ対策術

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";
?>

A 回答 (4件)

>>Windows上でエディタで書いたプログラム(echo.phpとします)をSSHを使ってサーバ(RedHatLinux)にアップロードし、それをサーバ上でコマンドラインから実行させたいのですが、うまくいきません。



PHPは元々がホームページで動的な表示をさせる「だけ」のために作られました。質問者さんのような使い方は想定していませんし、通常はできません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/06/15 14:32

#1さん


確かに通常使わないですが、できなくはないですよ。

PHP編 - Webアプリ開発定番言語をあえてコマンドラインで実行する
http://journal.mycom.co.jp/column/helloworld/019 …

以前、シェルスクリプトの中でアレコレするのにPHPを便利に使った事もあります。

で、今回の件ですが、上記のリンクにある、
「コマンドラインから直接実行」
「変則的なPHPスクリプト」
だったら実行できますか?

また、PHPにパスを通して(と言うか普通通っていると思いますが)、
cd /home/(省略)/
php echo.php
でもダメでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2009/06/15 14:27

>> *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
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/06/15 14:24

--no-php-ini オプションをつけるとどうですか?



それでも駄目なら、
/usr/local/bin/php --no-php-ini -r "echo 123;"
とかは?
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/06/15 14:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!