我的网站,有时候会因为某些情况导致PHP、Nginx或者Mysql异常。虽然不是经常发生,一个月1次都很烦,因为异常往往会没发现而导致网站长时间异常。
于是,我花了一点时间,写了个自动恢复,因为我只有mysql、php和nginx环境,所以比较简单,你也可以类比我这个脚本,写其他环境的判断,我的脚本包含PHP和bash,也不难。
PHP代码:
<?php$act = $_REQUEST['act'];if($act == "site"){//检测网站
echo "ok";}elseif($act == "mysql"){//检测数据库$link = mysqli_connect('localhost','mysqluser','mysqlpasswd');if (!$link) {
die('Could not connect to MySQL: ' . mysqli_error());}else{
echo 'ok';
mysqli_close($link);}}
bash代码:
site=`curl -s https://www.vience.cn/isok.php?act=site`;if [[ $site == 'ok' ]] ;then echo
else
bash /www/server/panel/script/rememory.sh
service php-fpm-74 restart /etc/init.d/nginx start
exit
fi
mysql=`curl -s https://www.vience.cn/isok.php?act=mysql`;if [[ $mysql == 'ok' ]] ;then echo
else
bash /www/server/panel/script/rememory.sh
/etc/init.d/mysqld start
exit
fi
食用说明:
1、将PHP放到你的网站,修改mysqluser和mysqlpasswd分别为你网站的数据库账户和密码;
2、将bash放到你的宝塔计划任务,3分钟执行一次,修改里面的https://www.vience.cn/isok.php为你的PHP地址;
3、将bash代码中的service php-fpm-74 restart修改为你网站的PHP版本,这里我用的是7.4版本的。