本文目錄一覽:
- 1、如何使用Linux的Crontab執行PHP腳本
- 2、如何用php作Linux自動執行腳本
- 3、linux下使用crontab實現定時PHP計劃任務失敗的原因分析
- 4、如何使用Ubuntu中的Crontab定時執行PHP文件
- 5、如何使用Linux的Crontab定時執行PHP腳本的方法
- 6、php定時執行任務怎麼寫?
如何使用Linux的Crontab執行PHP腳本
就像在Crontab中調用普通的shell腳本一樣(具體Crontab用法),使用PHP程序來調用PHP腳本。
每一小時執行myscript.php如下: 後盾網有許多人也可以幫忙你解決問題
如何用php作Linux自動執行腳本
Linux中crontab是實現定時執行的指令,利用這個指令我們就可以定時執行某一個php文件,從而實現用PHP做Linux自動執行腳本。
如何用PHP作Linux自動執行腳本?
在安裝PHP的時候,會產生一個可執行文件,文件名為php.將它 copy 到 /usr/local/bin 下.在終端方式執行php程序:
php -q onlinnum.php
PHP 原本是應用在網頁應用的﹐因此它會送出 HTML 的HEADER﹐但是在此我們是要將 PHP 用作 Shell Script﹐”-q” 就是表示不要送 出 HEADER 的意思.你可以試試看不加上 -q 的顯示結果。此時你已經可以在終端方式下執行PHP 代碼了。 linux命令:cron daemon
這是一個系統中常駐的服務,功能在於執行例行性的工作,如每天一次或每月一 次檢查磁盤。cron daemon 會在每分鐘檢查一次排定的工作表(crontab),看看是否有要執行的指令,所有的輸出會以mail寄給用戶。
設置 crontab
命令:crontab -e
該命令呼叫vi編輯器來編輯執行的清單。例如
0 0 1,15 * * fsck /home
1 * * * * /home/myhome/printhello
每一行代表一項排定的工作,在指令前為排定的時間,總共有5個欄位,以空格間隔,由左到右依序如下:
————————–
分鐘 從00到 99
點鐘 從0到 24
日 從01到31
月 從01到12
星期 從01到07,代表星期一到星期日
*號表示”每” ,如每天執行,就在第三欄填*號
————————–
所以上例的兩項工作是:
每月1號和15號檢查/home 磁盤
每小時的第一分執行 /home/myhome/printhello 這個文件
查看crontab:crontab -l
刪除crontab:crontab -r
我們就知道該怎麼利用PHP和crontab命令作Linux自動執行腳本了。
還需要注意什麼問題?
如果php中有使用數據庫,如oracle等,執行腳本中還需export Oracle的環境設置。因為cron下的腳本執行的用戶都是在沒登陸狀態下執行的,少了很多系統里設置的環境變量的值,在連接數據庫的時候會出問題。
linux下使用crontab實現定時PHP計劃任務失敗的原因分析
很多人在linux下使用crontab實現PHP執行定時任務卻未能成功,不能生成緩存。本文就linux下使用crontab實現定時PHP計劃任務失敗的原因做一分析。
一般我們linux定時執行php代碼例如:
*/5
*
*
*
*
/usr/local/php/bin/php
/home/wwwroot/1.php
其實這樣是可以執行php代碼的。
但是為什麼很多朋友在1.php寫的生成一個緩存文件沒有生成呢?
這個要涉及到crontab執行php的相對路徑問題.
注意在執行文件中,有包含文件的,如:
include_once’./mysql.php’;
當php代碼中,用的是相對路徑時,只有進入到那個目錄下,
然後執行/usr/local/php/bin/php
/home/wwwroot/1.php
才能引用mysql.php生效。
解決方法如下:
*/10
*
*
*
*
cd
/home/wwwroot
/usr/local/php/bin/php
/home/wwwroot/1.php
同時也這樣緩存才能生成在
/home/wwwroot。此處需要特別注意!
這是大部分寫的所謂linux定時執行php沒有提到的,也最容易產生誤區的。
當然方法還有很多,還可以設置環境變量之類的。這個只是一個簡單的方法。
如何使用Ubuntu中的Crontab定時執行PHP文件
先確認自己在LINUX Ubuntu 服務器上php的安裝模式,以CGI 模塊還是Apache模塊方式安裝? 如果不確定php安裝模式,可以使用 phpinfo() 函數查看:將?php phpinfo(); ? 寫在php文件中上傳到網站服務器,訪問該頁面,就在頁面頂部我們找到“Server API”,如果類似“Apache 2.0 Handler”,那麼就是apache模塊;否則php是CGI 模式(shell 命令行模式)。這兩種不同的php安裝模式,正對應於前面介紹的ubuntu crontab 定時執行php的兩種解決方法。
CGI 編譯
如果Server API是cgi,那麼在需要cron執行的php腳本的第一行額外加入一段代碼#!/usr/bin/php -q(類似PERL語法),指定服務器中php可執行程序的位置,具體步驟如下:
1. 確認Ubuntu系統已經安裝了php5-cli模塊,安裝命令:apt-get install php5-cli。在目錄 /usr/bin/php下生成 php可執行程序。
2. 編輯待定時執行的php腳本文件crontab.php,如:
#!/usr/bin/php -q
?php
$file = “/var/www/”.date(‘H’).’_’.date(‘i’).’_’.date(‘s’).’.txt’;
file_put_contents($file,date(‘Y-m-d’));
?
3. 編輯 crontab 任務:
打開終端,輸入命令:crontab -e,
Select an editor. To change later, run ‘select-editor’.
1. /bin/ed
2. /bin/nano —- easiest
3. /usr/bin/vim.tiny
選擇一個Ubuntu編輯器後,編輯/tmp/crontab.AuN7IQ/crontab 文件:
# m h dom mon dow command
在下面添加定時執行命令:
* * * * * php /path/to/your/cron.php
5個星號分別代表定時指定每分、小時、日、月、周。如每天的下午7點執行crontab.php,命令為:
* 19 * * * php /var/www/cron/crontab.php
然後按Ctrl+O保存,Ctrl+X退出。
4. 執行以下Crontab命令行
Shell crontab crontab
確認crontab.php的權限為可執行(”chmod 755 /var/www/cron/crontab.php”)。
Apache 模塊
如果php安裝是以 apache 模式運行的,那麼在要在ubuntu服務器定時執行的php腳本開頭就不用加 #!/usr/bin/php -q 這一行。php腳本在ubuntu 通過crontab的定時執行通過Lynx瀏覽器的自動訪問來完成。
1. Lynx瀏覽器安裝。
Lynx瀏覽器是一款輕便的web瀏覽器,使用於大部分Unix 和Linux系統環境。安裝命令:sudo apt-get install lynx。
2. 編輯cron任務,命令crontab -e
如何使用Linux的Crontab定時執行PHP腳本的方法
#第一查看php的bin路徑在哪裡
[root@localhost study]# whereis php
php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib/php /usr/include/php /usr/share/php /opt/lampp/bin/php /usr/share/man/man1/php.1.gz
#編輯計劃任務
[root@localhost study]# crontab -e
* * * * * /usr/bin/php /test/index.php 21 /test/satei_bank.txt
#其中那五個*表示的是[分時日月周]
php定時執行任務怎麼寫?
藉助crontab來編寫;
編寫定時執行腳本(單獨的一個php文件,或者某個方法);
配置crontab,指定執行路徑地址;
啟動crontab服務即可。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/196055.html