می خوام بدونم می شه روی VPS اینکارو کرد؟
فقط روی vps میشه این کار را کرد.
سیستم مورد نیاز daemon چیه؟
روی همه توزیع های لینوکسی میشه ولی من روی ubuntu انجام دادم.
درمورد اینکه از اول شروع کنه متاسفانه همین خیلی مسئله بزرگیه.
به شرطی ریست میشه که یا برنامه شما exception بخوره و terminate بشه یا کلا سیستم عامل ریست بشه ! برق بره و از این حرفا در غیر این صورت تا ابد به کارش ادامه.
ببینید توی این حالا شما برنامتون اصلا کاری با web server نداره ! شما اسکریپت php را مینویسین و اجراش میکنین ، حالا تا زمانی که برنامه قطع نشه به کارش ادامه میده ! مثلا اینطوری اسکریپت php با process id معتبر اجرا میشه و تا زمانی که قطع نشه به کارش ادامه میده :
nohup php script.php &
برای نوشتن یک daemon هم اینطوری عمل کنین :
یک فایل توی etc/init/ میسازی به نام phpdaemon.conf و توی مینویسی :
description "My PHP Daemon"
author "Unique"
start on startup
stop on shutdown
respawn
respawn limit 20 5
script
[ $(exec /usr/bin/php -f /path/to/your/script.php) = 'ERROR' ] && ( stop; exit 1; )
end script
حالا به راحتی میتونی روشن و خاموشش کنی :
sudo service phpdaemon start
sudo service phpdaemon stop
یا حتی وضعیتشو ببینی :
sudo service phpdaemon status
ما باز هم میگم بی خیال php شو ! php برای این کار ها بهینه نیست و python و java و از همه بهتر node.js بهترین انتخاب هستند. همین کار را با اونها انجام بده. من به همین روش یک socket server نوشتم و توی پروژه ام استفاده کردم و به خوبی جواب میده.
راستی من این روش را توی stackoverflow یاد گرفتم این هم لینکش.
(به این میگن رعایت حق کپی رایت)
اصلش هم مال وبلاگ یک برنامه نویس node.js هست ، اینم لینکش.