SSLのCSRを生成するシェルスクリプトをPHP(WEB)から実行するとなぜかCSRが生成されません
コンソール上から
sh hoge.sh
のようにして実行すると、csrが同じディレクトリ内に生成されます
もしやshコマンドはwwwユーザでは発行できない?
と思い、/etc/sudoersにwwwユーザをパスなしでsudoコマンドを使えるようにし
exec("sudo sh hoge.sh")
のようにPHPから実行してみましたがそれでもできず・・・
あと確認した内容としてはCSRのファイル生成先のディレクトリのパーミッション
(現在適当に777になっています)とシェルスクリプトのファイルの実行権限
(こちらは現在644となっています)を確認しています
ソースをお見せしていないのでわかりづらいと思いますが
検討がつく方がいらっしゃいましたらご指導お願い致します
どこまで正しく動作していることを確認していますか?
1.sh自体が起動されていない
2.shは起動されているが、指定したスクリプトが実行されていない
3.shで正しく指定したスクリプトが実行されているが、スクリプト中の一部の処理が正しく実行されない。
まずは、このあたりを確認してみてはいかがでしょうか?
1であれば、パーミッション、あるいは、セーフモードの関係でshが実行できるような環境になっていない
2,3であれば、パスの指定がおかしい、あるいは、パーミッションの問題があやしいきがします。
何かの参考になれば。
execコマンドで結果を受け取っているのですが
スクリプトの最後まで実行されているように見えます
exec($cmd, $op, $ret);
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 []:
)
---