人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

シェルスクリプトをPHPから実行できない

SSLのCSRを生成するシェルスクリプトをPHP(WEB)から実行するとなぜかCSRが生成されません
コンソール上から

sh hoge.sh

のようにして実行すると、csrが同じディレクトリ内に生成されます

もしやshコマンドはwwwユーザでは発行できない?
と思い、/etc/sudoersにwwwユーザをパスなしでsudoコマンドを使えるようにし

exec("sudo sh hoge.sh")

のようにPHPから実行してみましたがそれでもできず・・・

あと確認した内容としてはCSRのファイル生成先のディレクトリのパーミッション
(現在適当に777になっています)とシェルスクリプトのファイルの実行権限
(こちらは現在644となっています)を確認しています

ソースをお見せしていないのでわかりづらいと思いますが
検討がつく方がいらっしゃいましたらご指導お願い致します


●質問者: jayz
●カテゴリ:インターネット ウェブ制作
✍キーワード:777 CSR ETC hoge PHP
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● t_shiono
●60ポイント

どこまで正しく動作していることを確認していますか?

1.sh自体が起動されていない

2.shは起動されているが、指定したスクリプトが実行されていない

3.shで正しく指定したスクリプトが実行されているが、スクリプト中の一部の処理が正しく実行されない。

まずは、このあたりを確認してみてはいかがでしょうか?

1であれば、パーミッション、あるいは、セーフモードの関係でshが実行できるような環境になっていない

2,3であれば、パスの指定がおかしい、あるいは、パーミッションの問題があやしいきがします。


何かの参考になれば。

◎質問者からの返答

execコマンドで結果を受け取っているのですが

スクリプトの最後まで実行されているように見えます

exec($cmd, $op, $ret);

echo "

";

print_r($op);

echo "

";

---

Array

(

[0] => spawn openssl req -new -key www.hoge.jp.key -passin pass:1234 -out www.hoge.jp.csr

[1] => You are about to be asked to enter information that will be incorporated

[2] => into your certificate request.

[3] => What you are about to enter is what is called a Distinguished Name or a DN.

[4] => There are quite a few fields but you can leave some blank

[5] => For some fields there will be a default value,

[6] => If you enter '.', the field will be left blank.

[7] => -----

[8] => Country Name (2 letter code) [GB]:JP

[9] => State or Province Name (full name) [Berkshire]:Tokyo

[10] => Locality Name (eg, city) [Newbury]:Minato-ku

[11] => Organization Name (eg, company) [My Company Ltd]:hoge

[12] => Organizational Unit Name (eg, section) []:hoge group

[13] => Common Name (eg, your name or your server's hostname) []:www.hoge.jp

[14] => Email Address []:

[15] =>

[16] => Please enter the following 'extra' attributes

[17] => to be sent with your certificate request

[18] => A challenge password []:

[19] => An optional company name []:

)

---


2 ● b-wind
●10ポイント
exec("sudo sh hoge.sh < /dev/null");

にしてみるか、expect 越しにやらないといけないかも。

Manpage of EXPECT


3 ● zzz_1980
●10ポイント

カレントディレクトリが設定されていないか、

設定されているデータ書き込み用ディレクトリに書き込み権限がないのでは?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ