2017-07-05 20 views
0

PHPを使用してbashファイルを実行するのに問題があります。PHPでDebian Bashスクリプトを実行

PHPファイル:

chdir('/var/www/PATH/inc/bash/'); 
exec('./status.sh argument, $output); 

バッシュファイル:

#!/bin/bash 
echo 'test' >> /var/www/PATH/inc/bashOutput/test.txt 

PHPファイル(LS -al handler.func.php):

-rw-r--r-- 1 root root 461 Jul 5 11:35 handler.func.php 

-alバッシュファイル(LS status.sh):

-rwxr-xr-x 1 root root 255 Jul 5 11:39 status.sh 

スクリプトはSSHでrootを使用して動作しています。

私はLinuxでプロではありません。 しかし、ファイル所有者には問題があると思います。

しかし私は過去に「chown」でいくつかの損害を出しています。それが本当に問題であれば、私は経験豊かな人々からいくつかの指導を好むでしょう。

ご協力ありがとうございます。 Konorr。

+0

ブラウザでそのスクリプトにアクセスしたときの正確なエラーは何ですか? –

+0

execコマンドの2番目の引用符を忘れた –

+0

タイトルに_solved_を追加しないでください。代わりに答えを受け入れる。これは他の人に質問が解決されたことを伝えます。ありがとうございました。 – Bugs

答えて

0

Script is working using through root with SSH.問題があります。 Webリクエストを介して実行されるPHPスクリプトは、通常、ユーザwww-dataとして実行されます。いずれにせよセキュリティホール内の<?php exec('./status.sh argument, $output);?>。ほとんどのサーバー管理者はこれを無効にします。

あなたの別のオプションは、sudoをexec関数exec('sudo bash /var/www/PATH/inc/bash/status.sh')に入れることです。スクリプトを絶対パスで実行するのと同時にbash /var/www/PATH/inc/bash/status.sh

スクリプトでcronを実行できないのはなぜですか?

0

お返事ありがとうございますが、残念ながらそれは私のために働いていませんでした。

ファイル所有者に関する詳細を検索します。私は、EXEC関数からsudoを取り除くまでそれはまだ働いていなかった

chown -R www-data:www-data /var/www/PATH 
usermod -a -G www-data user 
chgrp -R www-data /var/www/PATH 
chmod 2750 /var/www/PATH 
chmod 2750 /var/www/PATH/inc/bash 

は、私はこれらの変更で行われたいくつかの変更

をしました。 私の問題はすでに解決されています。

私はこの記事に従っ:あなたの時間のために、それは他の誰かを助けることができる期待してwww-data permissions?

感謝を。

+0

猶予期間が満了して十分なポイントを収集した後で、あなた自身の回答を「受け入れる」ことを確認してください。*解決済み*として適切にマークされています。 –

関連する問題