本文目錄一覽:
請問php如何實現實時監控文件.
在服務端建立一個根據需要進行循環的PHP腳本就可以。
猜測一下,您的第二個問題,是不是想進行相關檢測以避免重複觸發這個腳本。
實際上,不建議由用戶行為觸發這個腳本,無論是服務端代碼,還是客戶端的異步Ajax。
如果要用PHP腳本進行不停的循環監控,請聯繫運維人員,服務器啟動,即在服務端開始運行這個腳本,他們會向您提供解決方案的。
真正的建議是,如果有任何可能,都不要使用PHP腳本利用循環代碼進行服務端的監控。
不得不承認,這個方面PHP的穩定性還差一些,Java或許可以這麼做,PHP就比較痛苦了。
比較可能的辦法是請運維人員幫忙,通報監控邏輯,然後請他安裝各種觸發條件調用相應的PHP代碼。
如果堅持使用PHP腳本進行相關工作,有兩個建議給您:
儘快釋放資源,無論腳本使用了什麼資源,包括文件、內存、數據庫等等,都儘快釋放,這種地方可萬萬不能偷懶,否則就是自虐了。
在這個腳本中進行獨立的手工日誌輸出,任何一層循環的入口都要進行記錄,這樣在監控失敗的時候才有辦法查找問題。
php腳本程序主要由哪幾個部分組成?
運行PHP腳本程序,必須藉助PHP預處理器、WEB服務器和WEB瀏覽器,必要時還需藉助數據庫服務器。
1.WEB瀏覽器
也叫網頁瀏覽器,簡稱瀏覽器。常見的瀏覽器有微軟的Internet Explorer(IE)瀏覽器、Mozilla的Firefox瀏覽器等。
2.PHP預處理器
PHP Preprocessor的功能是將PHP程序中的代碼解釋為文本信息,這些文本信息中可以包含HTML代碼。
3.WEB服務器
WEB Server也稱為WWW(World Wide Web)服務器,功能是解析HTTP。當WEB服務器接收到瀏覽器的一個HTTP動態請求時,Web服務器會調用與請求對應的程序,程序經PHP預處理器解釋執行後,WEB服務器向瀏覽器返回HTTP響應,該響應通常是一個HTML頁面。瀏覽器收到該HTTP響應後,將執行結果顯示在瀏覽器上。
常見的WEB服務器有微軟的Internet Information Server(IIS)服務器、IBM的WebSphere服務器、開源的Apache服務器等。IIS中文全稱是互聯網信息服務器。
WEB瀏覽器請求的是靜態頁面,只需要WEB服務器響應該請求;如果瀏覽器請求的是動態頁面(php代碼),此時WEB服務器會委託PHP預處理器將動態頁面解釋為HTML靜態頁面,再有WEB服務器返回給瀏覽器顯示。
4.數據庫服務器
Database Server是一套為應用程序提供數據管理的服務軟件,服務包含數據的添加、修改、刪除、事務管理、索引服務、高速緩存、查詢優化、安全及存儲控制等。
常見的數據庫服務器有甲骨文的Oracle、微軟的SQL Server、IBM的DB2、SAP的Sybase以及SUN公司的MySQL等。
如何將我的php腳本以守護進程的方式一直運行
用一個簡單可靠的Shell腳本來守護一個可能會突發退出的PHP服務
/etc/rc.local 里加入開機啟動命令:
nohup /path/to/swoole.sh /path/to/swoole.sh.log 21
swoole.sh 內容如下:
#!/bin/sh
PREFIX=/home/eechen
INTERVAL=1
nohup php ${PREFIX}/swoole.php ${PREFIX}/swoole.log 21 echo $! ${PREFIX}/swoole.pid
while [ 1 ]; do
if [ ! -d /proc/`cat ${PREFIX}/swoole.pid` ]; then
nohup php ${PREFIX}/swoole.php ${PREFIX}/swoole.log 21 echo $! ${PREFIX}/swoole.pid
echo 'NEW_PID:'`cat ${PREFIX}/swoole.pid date '+%Y-%m-%d %H:%M:%S'`
fi
sleep ${INTERVAL}
done
如何判斷一個php腳本是否正在執行
你可以在php文件最後輸出一個東西么,因為程序一般都是順序執行的。你可以在程序的最後輸出一個標記,如果這個標記出現了就可以再執行了,如果還沒有標記,說明還在執行。
PHP腳本程序主要由哪幾部分組成?
視圖部分,顯示錶單的界面
模型部分,存儲表單提交的數據
控制部分,接收表單數據,進行相關處理。
mvc結構,主要是將顯示,業務邏輯處理,數據持久化進行分離,php主要做的就是接收數據,處理數據,保存數據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/312950.html