OSX 10.6.7を実行していて、ssh経由でリモートのMySQLサーバに接続しようとしています。現在、次のコマンドを問題なく実行しています。MySQLをSSH経由でローカルポートにバインドする - Mac OSXのPHP shell_exec()でなく、コンソールで動作する
ssh -i /Users/xxxx/key.pem [email protected] -L 53306:localhost:3306 -f sleep 60 >> logfile
mysql -u user -p -h 127.0.0.1 -P 53306
パスワードで認証した後、正常に動作します。 (長いので、それは当然のスリープタイムアウト、前だと。)
私はこのPHPスクリプトを実行すると、しかし...
$shell = shell_exec("ssh -i /Users/xxxx/key1.pem [email protected] -L 53306:localhost:3306 -f sleep 60 >> logfile");
$mysqli = mysqli_connect('127.0.0.1', 'user', 'password', 'database', 53306);
私は接続を拒否します。 shell_exec()を省略すると、同じエラーが発生します。 $ shellをエコーすると何も出力されません。
key1.pemにはchmod 400の権限があり、key.pemのコピーで、chown _wwwを実行しました。私はkey.pemまたはkey1.pemを使用しようとすると同じエラーが発生します。私は運がないと440の許可も試みました。
ありがとうございました。これは私をナットにしている。
私はコンソールから実行すると、スクリプトが実行されているようです。それは別のユーザーの下で実行されていますか?アクセス権の問題のためにsshが起動していない可能性があります。システム($ cmd、$ return)を使用して戻り値が何かを与えているかどうかを調べてみてください。 – Rahly