※ ChatGPTを利用し、要約された質問です(原文:PHPでrsyncを実行したい)
PHPでrsyncを実行する方法とは?
このQ&Aのポイント
PHPでrsyncを実行する方法についての質問です。cronでの実行やWEBからの実行についても調査しましたがうまくいきません。どのように設定すればよいでしょうか?
rsyncをフルパスで指定したり、phpの所有者やオーナーをapacheに変更したりしてみましたが効果がありませんでした。suPHPを導入してみましたがうまくいきません。参考になる事例や解決方法を教えていただけないでしょうか?
CentOS5.3の環境でPHPでrsyncを実行したいです。現在、cronやWEBからの実行がうまくいきません。ソースコードや設定に問題があるのか、それとも他の要因が考えられるのか教えてください。
初めて質問します。
rsyncについての質問です。
通常は、cronで実行し緊急の際にWEBから実行できればと思い
次のようなソースを書いて実行してみました
[synctest.php]
-----------------------------------
<?php
echo "SYNC START\r\n";
system('/usr/bin/rsync -avz --delete /usr/local/apache2/htdocs [送信先IP]:/usr/local/apache2');
echo "SYNC END\r\n";
?>
-----------------------------------
これをコンソール上から実行した場合問題なく動作します
#>php synctest.php
ソースをapacheの公開ディレクトリに配置し、ブラウザから実行した場合は全く動きません
いろいろなサイトを調査し、rsyncをフルパスで指定したり
phpの所有者やオーナーをapacheに変更したりしてみましたが変化がありません
suPHPを導入すればうまくいくという情報を元に導入してみましたが設定がおかしいのかうまくいきません
しかも従来のPHPが動作しなくなってしまいこちらは断念しました
なにか参考例でも結構です
事例のようなものがありましたらご教示いただけませんでしょうか?
よろしくお願いします
---------------------------------
[主な環境:rootでログインし作業しています]
CentOS5.3
httpd-devel-2.2.13-jason.3
httpd-2.2.13-jason.3
php-mysql-5.2.11-jason.1
php-devel-5.2.11-jason.1
php-common-5.2.11-jason.1
php-pdo-5.2.11-jason.1
php-ncurses-5.2.11-jason.1
php-cli-5.2.11-jason.1
php-xml-5.2.11-jason.1
php-mbstring-5.2.11-jason.1
php-5.2.11-jason.1
php-gd-5.2.11-jason.1
php-mysql-5.2.11-jason.1
mysql-5.0.77-3.el5
mysql-server-5.0.77-3.el5
お礼
回答ありがとうございます sudoというものを知らなかったので検索し いろいろと試行錯誤してみたところうまくいきました 参考までに作業内容を追記しておきます ********************************************************* コンソールからvisudoを実行 次のように編集 #Defaults requiretty ↑#をつける apache ALL = (ALL) NOPASSWD:/usr/bin/rsync ↑追記 保存終了 PHPスクリプトを次のように記述 ------------------------------------- <?php echo "START<BR />\r\n"; system('sudo /usr/bin/rsync -avz --delete /usr/local/apache2/htdocs [送信先IP]:/usr/local/apache2'); echo "END<BR />\r\n"; ?> ------------------------------------- **********************************************************