Web アプリケーションを作成しています。機能の一部は、ユーザーが電子メールをインポートする cronjob を開始/停止できることに依存しています。
うまくいきません。
私が正しい軌道に乗っていることを確認するために、スターターとして、phpから「crontab -l」を作成して動作させ、それをWebブラウザーに出力したいだけです。
これが私のやり方です(handle_email_cronjob.php):
$output = shell_exec('crontab -l');
echo $output;
しかし、私が得るのは何もありません。( shell_exec('ls -l'); を実行すると、ディレクトリ内のファイル/ディレクトリのリストが表示されます)
猫エラーログ:
'/var/spool/cron' is not a directory, bailing out.
まあ、エラーログが何を言っても、それはディレクトリです。ls -Z /var/spool:
drwxr-xr-x. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 cron
SELinux がオンになっているので、それを変更したくありません。
ls -Z /var/spool/cron:
-rwxrwxrwx. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 apache
-rw-------. root root unconfined_u:object_r:cron_spool_t:s0 root
使用する必要があるのはApacheです。(cron_spool_t を apache に設定しようとしましたが、それでも機能しませんでした。)
ls -Z handle_email_cronjob.php:
-rwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_script_exec_t:s0 handle_email_cronjob.php
SELinuxに関連していると直感していますが、修正方法がわかりません。
何が問題で、どうすれば修正できますか? (または、これを行うためのより良いアプローチはありますか?)