❶ 監視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);
}
?>