❶ 监视php站点代码是否被人改动过。使代码被更改时让我知道。有什么方法
楼主,如果你的网站只是你个人管理,并且你的IP是固定的【一段时间内】,那么你可以通过限制IP来确定文件的访问权限。
如果php脚本截获了一个与你预先设定的IP不符的地址,那么就应该立刻发邮件提醒你,截获该IP的PHP文件名称,或者通过写网站运行日志的方式,将可疑行为记录到文本文件中
以上方法可以用于后台php文件的安全防范;
前台呢?
不太好处理,看到楼主的问题,应该是服务器被攻破了,那么更好的办法应该是从服务器安全方面入手,比如限制文件的读写权限等
❷ 请问php如何实现实时监控文件.
在服务端建立一个根据需要进行循环的PHP脚本就可以。
猜测一下,您的第二个问题,是不是想进行相关检测以避免重复触发这个脚本。
实际上,不建议由用户行为触发这个脚本,无论是服务端代码,还是客户端的异步Ajax。
如果要用PHP脚本进行不停的循环监控,请联系运维人员,服务器启动,即在服务端开始运行这个脚本,他们会向您提供解决方案的。
真正的建议是,如果有任何可能,都不要使用PHP脚本利用循环代码进行服务端的监控。
不得不承认,这个方面PHP的稳定性还差一些,java或许可以这么做,PHP就比较痛苦了。
比较可能的办法是请运维人员帮忙,通报监控逻辑,然后请他安装各种触发条件调用相应的PHP代码。
如果坚持使用PHP脚本进行相关工作,有两个建议给您:
尽快释放资源,无论脚本使用了什么资源,包括文件、内存、数据库等等,都尽快释放,这种地方可万万不能偷懒,否则就是自虐了。
在这个脚本中进行独立的手工日志输出,任何一层循环的入口都要进行记录,这样在监控失败的时候才有办法查找问题。
❸ 如何使用监控宝监控php-fpm状态
在开始之前,请确保已经开启php-fpm的status。
一、创建收集数据脚本
新建脚本/home/sh/monitor_fpm.sh,并添加到cronjob,每五分钟运行一次。脚本代码为:
fpm_status=$(curl -s http://www.centos.bz/fpm_status)
start_since_now=$(echo "$fpm_status" | awk -F':' '/start since/{gsub(/ /,"",$2);print $2}')
listen_queue=$(echo "$fpm_status" | awk -F':' '/^listen queue:/{gsub(/ /,"",$2);print $2}')
idle_processes=$(echo "$fpm_status" | awk -F':' '/idle processes/{gsub(/ /,"",$2);print $2}')
active_processes=$(echo "$fpm_status" | awk -F':' '/^active processes:/{gsub(/ /,"",$2);print $2}')
total_processes=$(echo "$fpm_status" | awk -F':' '/total processes/{gsub(/ /,"",$2);print $2}')
accepted_conn_now=$(echo "$fpm_status" | awk -F':' '/accepted conn/{gsub(/ /,"",$2);print $2}')
max_listen_queue=$(echo "$fpm_status" | awk -F':' '/max listen queue/{gsub(/ /,"",$2);print $2}')
max_active_processes=$(echo "$fpm_status" | awk -F':' '/max active processes/{gsub(/ /,"",$2);print $2}')
max_children_reached=$(echo "$fpm_status" | awk -F':' '/max children reached/{gsub(/ /,"",$2);print $2}')
if [ -f "/tmp/accepted_conn78" ];then
accepted_conn_pre=$(cat /tmp/accepted_conn78)
((accepted_conn_inc=$accepted_conn_now - $accepted_conn_pre))
[[ $accepted_conn_inc -lt 0 ]] && accepted_conn_inc=0
else
accepted_conn_inc=0
fi
echo $accepted_conn_now > /tmp/accepted_conn78
if [ -f "/tmp/start_since78" ];then
start_since_pre=$(cat /tmp/start_since78)
((start_since_inc=$start_since_now - $start_since_pre))
[[ $start_since_inc -lt 0 ]] && per_request=0 || ((per_request=$accepted_conn_inc/$start_since_inc))
else
per_request=0
fi
echo $start_since_now > /tmp/start_since78
echo "<pre>
accepted_conn:$accepted_conn_inc
listen_queue:$listen_queue
idle_processes:$idle_processes
active_processes:$active_processes
total_processes:$total_processes
per_request:$per_request
max_listen_queue:$max_listen_queue
max_active_processes:$max_active_processes
max_children_reached:$max_children_reached
</pre>" > /home/www.centos.bz/web/php_status.html
二、到监控宝添加自定义监控
1、点击网站头部的创建监控项目,拉到底部,选择创建自定义监控,再点击创建自定义监控规则,
2、基本信息填写
1
3、规则指标添加
2
3、添加php请求图
3
4、添加php进程图
4
5、添加php最大值图
5
6、点击完成,输入监控fpm的页面
6
完成了以上步骤之后,过一段时间就可以看到php-fpm的状态统计信息了。
❹ 网页中如何做“视频监控”设备的开发对接 PHP或Java版视频监控系统二次开发
不需要做开发,一般监控视频设备可以设置一个播放地址, 可能是 HLS/M3U8/FLV等直播地址,在网页里只需要读取和播放,当然这个播放地址在监控器里一般会有设置密码查看,所以就算知道视频地址还要知道密码才能查看,还是很安全的。
所以监控视频设备要在外网查看,那连接的网线需要有外网能力。
❺ 用正则实现PHP监控网站某一段HTML的变化源代码..
请说明你要监测的网站是你自己开发的还是别人的?意思是说:你能否完全控制还是只能通过url地址访问??如果你能完全控制,则可以在网站代码里进行。如果该网站你只能通过url地址来访问,则只能通过你自己写程序通过指定url不断去请求,将返回的内容做对比。不同则做你想做的。你要具体的代码,不好意思,给不了。只能通过思路自己去实现。
❻ (php)网站监控引用网页,时间最快只能1分钟,现在想做一个循环,用秒做单位,怎么办
sleep在阿里服务器没有用吗?这就不太清楚了,换个方式你可以取现行时间和上次执行时间做对比啊,现行时间大于上次执行时间n秒后执行就不就可以了。
❼ 我用php socket监听客户端,但是那个页面在一直刷新,怎样把它隐藏或者后台运行
3种方法:
1、AJAX
AJAX与后台进行交互,可以实现静态刷新
2、IFrame
在页面内置IFrame,这个不用多说了
3、使用php的ignore_user_abort();使用这个需要注意的是不要让程序超时,PHP默认是30秒,所以值得把set_time_limit()填写较大的值。
❽ 用PHP开发的手机网页程序怎么直接实时播放监控
PHP 编写的是没有问题的,javascript,怕有的浏览器不支持JS,曾经遇到过,不支持的,后来一些特效就去掉了,。
❾ 如何利用PHP监控网站运行状态
那就自动刷新了 一可以网页的自动刷新功能 在网页的开头写代码 refresh表示刷新 content=3表示间隔3秒刷新一次 url表示刷新后跳转的页面,如果是本页面,就写本页面的网址 再就是要用到ajax,这个我不太懂,所以就不说了
❿ php 如何实现批量监测网页中的某一内容是否发生变化
<?php
header("content-type:text/html;charset=utf-8");
$fileurl="url2.txt";
$gdomain=@file_get_contents($fileurl,r);//获取文件url2.txt内容
$gdomain=split(" ",$gdomain);
set_time_limit(0);
ob_end_flush();//关闭缓存
foreach($gdomainas$key=>$domain){
$url="http://".$domain;
$fp=@fopen($url,r)ordie("超时,或网络无法连接!");
$gcont=@file_get_contents($url);
$pattern1='<title>(.*)</title>';
@preg_match_all($pattern1,$gcont,$rg);
//保存到本地
$of=fopen('temp.txt','a');//创建并打开temp.txt
if($of){
if(!empty($rg[1])){
//
//对比两个文本内容是否一致实现
//
//
echo"<ahref='$url'>$domain</a>当前标题:".$rg[1]."<br/>";
fwrite($of,$rg[1]);
}else{
echo"<ahref='$url'>$domain</a>标题不存在!<br/>";
fwrite($of,"null ");//标记为null
}
}
fclose($of);
flush();
sleep(3);
}
?>