アプリ版:「スタンプのみでお礼する」機能のリリースについて

init.dでapacheユーザ起動したいです。
「/etc/init.d/appCheckmain」ファイルででは

su -l apache -c "/usr/bin/php /var/www/html/fy1/mainProg/Check_Main.php > /dev/null &"

がapacheは使えません的なエラーが出ます。
具体的なやり方を教えてもらえればと思います。

A 回答 (1件)

>apacheは使えません的なエラーが出ます。


エラーメッセージは正確に書きましょう。
エラーの原因は、ログインシェルが、/sbin/nologin になっているためでしょう。chshで、/bin/bash などに変更してください。
# chsh apache

nologinでなくすことによる悪影響が何かあるかもしれません。


より一般的なやり方としては、apacheでログインできないデフォルトの状態に戻して、Cでラッパーを書くのでしょうか。
下記をrootで実行すれば、phpはapacheで実行されます。

#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>

main(){
if(setuid(apacheのUIDを整数で指定)){
perror("setuid");
exit(1);
}
system("exec /usr/bin/php /var/www/html/fy1/mainProg/Check_Main.php > /dev/null &");
}
    • good
    • 0
この回答へのお礼

丁寧にありがとうございます。
エラーは確かにちゃんと記載すべきでした。
なるほど、すごいです。勉強になりました。ありがとうございましたm(__)m

お礼日時:2015/11/01 09:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!