包含linuxphp調試的詞條

本文目錄一覽:

如何使用Linux的Crontab定時執行PHP腳本的方法

鍵入 crontab

-e 編輯crontab服務文件

——————————————Ubuntu中的linux—————

安裝lynx包:apt-get isntall lynx

先寫ln.sh腳本:lynx

設置定時:crontab -e

0 1 * * * bash /var/www/test/ln.sh

————————————————————————-

分為兩種情況:

第一種情況:你的php腳本中沒有引入其他PHP文件,也就是說沒有include,require_once等命令的PHP文件

* */1 * * * /usr/local/php/bin/php

/var/www/html/wwwroot/web/script.php (每一小時執行一次script.php)

注意,這樣寫需要把PHP變成可執行的腳本文件。在命令行下,腳本所在目錄

chmod +x script.php

注意:你的script.php文件中一定要在開始處加上: #!/usr/local/php/bin/php -q

,下面是一個完整的script.php文件代碼

?php

#!/usr/local/php/bin/php -q

session_start();

define( “DB_PASSWORD”, “111111” ); // 伺服器登陸密碼

define( “DB_NAME”, “db_shopping” ); // 資料庫名稱

define( “DB_USER”, “root” ); // 伺服器登陸用戶

define( “DB_HOST”, “127.0.0.1” ); // 伺服器IP地址或名稱

define( “DB_PORT”, “3306” ); // 伺服器登陸埠號

define( “DB_CHARSET”, “utf8” ); // 資料庫默認語言

define( “DB_DEBUG”, false ); // 是否設置為調試模式

define( “DB_CLOSE”, false ); // 是否主動關閉資料庫連接

$con=mysql_connect(DB_HOST.”:”.DB_PORT,DB_USER,DB_PASSWORD);

mysql_query ( “SET character_set_connection = “.DB_CHARSET.”,

character_set_results = “.DB_CHARSET.”, character_set_client =

binary”);

if (!$con) die(“Mysql Error:”.mysql_error());

mysql_select_db(DB_NAME,$con);

//$dates=date()

$sqll=”insert into test(NAME,Sex,thisdate,state)

values(‘love’,’0′,’2011-08-11′,’1′)”;

$resl=mysql_query($sqll);

echo “成功…”;

?

/usr/local/php/bin/php的意思是:用/usr/local/php/bin/目錄中的php.exe文件來執行

/var/www/html/wwwroot/web/script.php

第二種情況:你的php腳本中有引入其他PHP文件,也就是說有用到include,require_once命令的PHP文件(先寫shell腳本)

上面的方法有一個問題:當script腳本中有include文件時,腳本根本找不對PHP的路徑,php將會在/bin/local/php目錄下找文件,當然找不到。

所以,遇見這種情況,按照下面的方法做:

在終端上輸入如下命令得到sh 和 lynx 程序的路徑:

whereis sh

whereis lynx

or

which sh

which lynx

隨便輸入一個,其中便會返回你要的路徑。如果你的系統里沒有lynx,試試links,w3m,或者

links2,這些是其它的文本模型瀏覽器。這些瀏覽器將會運行你的腳本。

然後你需要創建一個sh文件,用它來調用php文件,通過lynx。假設你的伺服器已經安裝了lynx,sh路徑為

/bin/sh,lynx路徑為 /usr/local/bin/lynx

#!/bin/sh

/usr/local/bin/lynx -source

注意感嘆號

把這個腳本保存為cron-lynx.sh

保存到一個你找得到的地方,比如:

你可以把它放在網站根目錄。

然後再創建一個script.php的文件。當cron運行的時候,將會通過lynx來調用它。這個文件可以通過瀏覽器來訪問。

然後編輯主機的crontab,像下面這樣。

*/1 * * * * root /bin/sh

/usr/www/yourdirectory/sh_scripts/cron-lynx.sh

在/bin/sh 和 /usr 間有空格。就這樣就設好了,還有一點要注意的是,你的sh文件和php文件都正確無誤。

===================================================================================

linux下的crontab服務:

1、crontab 是用來讓使用者在固定時間或固定間隔執行程序之用

在linux平台上如果需要實現任務調度功能可以編寫cron腳本來實現。

以某一頻率執行任務

linux預設會啟動crond進程,crond進程不需要用戶啟動、關閉。

crond進程負責讀取調度任務並執行,用戶只需要將相應的調度腳本寫入cron的調度配置文件中。

cron的調度文件有以下幾個:

1.

crontab

2.

cron.d

3.

cron.daily

4.

cron.hourly

5.

cron.monthly

6.

cron.weekly

如果用的任務不是以hourly monthly weekly方式執行,則可以將相應的crontab寫入到crontab

或cron.d目錄中。

示例:

每隔一分鐘執行一次腳本 /opt/bin/test-cron.sh

可以在cron.d新建腳本 echo-date.sh

內容為

*/1 * * * * root /opt/bin/test-cron.sh

2、cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業。由於Cron

是Linux的內置服務,如果它不自動起來,可以用以下的方法啟動、關閉這個服務:

/sbin/service crond start //啟動服務

/sbin/service crond stop //關閉服務

/sbin/service crond restart //重啟服務

/sbin/service crond reload //重新載入配置

你也可以將這個服務在系統啟動的時候自動啟動:

在/etc/rc.d/rc.local這個腳本的末尾加上:

/sbin/service crond start

現在Cron這個服務已經在進程裡面了,我們就可以用這個服務了

查看服務是否已經運行用 ps -ax | grep cron

3、crontab命令

查看該用戶下的crontab服務是否創建成功, 用 crontab -l

命令

命令 which php 查看linux下安裝的php的路徑

cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:

crontab -u

//設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數

crontab -l //列出某個用戶cron服務的詳細內容

crontab -r //刪除沒個用戶的cron服務

crontab -e //編輯某個用戶的cron服務

比如說root查看自己的cron設置:crontab -u root -l

再例如,root想刪除fred的cron設置:crontab -u fred -r

在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e

進入vi編輯模式,編輯的內容一定要符合下面的格式:*/1 * * * * ls

/tmp/ls.txt

任務調度的crond常駐命令crond

是linux用來定期執行程序的命令。當安裝完成操作系統之後,默認便會啟動此

任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。

crontab命令選項:

-u指定一個用戶

-l列出某個用戶的任務計劃

-r刪除某個用戶的任務

-e編輯某個用戶的任務

4、cron文件語法:

小時

星期

命令

0-59

0-23

1-31

1-12

0-6

command

(取值範圍,0表示周日一般一行對應一個任務)

記住幾個特殊符號的含義:

「*」代表取值範圍內的數字,

「/」代表」每」,

「-」代表從某個數字到某個數字,

「,」分開幾個離散的數字

5、任務調度設置文件的寫法

可用crontab

-e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件

具體格式如下:

Minute Hour Day Month Dayofweek

command

分鐘

小時

天每星期

命令

每個欄位代表的含義如下:

Minute

每個小時的第幾分鐘執行該任務

Hour

每天的第幾個小時執行該任務

Day

每月的第幾天執行該任務

Month

每年的第幾個月執行該任務

DayOfWeek

每周的第幾天執行該任務

Command

指定要執行的程序

在這些欄位里,除了「Command」是每次都必須指定的欄位以外,其它欄位皆為可選

欄位,可視需要決定。對於不指定的欄位,要用「*」來填補其位置。

舉例如下:

5

*

*

*

*

ls

指定每小時的第5分鐘執行一次ls命令

30

5

*

*

*

ls

指定每天的 5:30 執行ls命令

30

7

8

*

*

ls

指定每月8號的7:30分執行ls命令

30

5

8

6

*

ls

指定每年的6月8日5:30執行ls命令

30

6

*

*

ls

指定每星期日的6:30執行ls命令[註:0表示星期天,1表示星期1,

以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]

30

3

10,20

*

*

ls

每月10號及20號的3:30執行ls命令[註:「,」用來連接多個不連續的時段]

25

8-11

*

*

*

ls

每天8-11點的第25分鐘執行ls命令[註:「-」用來連接連續的時段]

*/15

*

*

*

*

ls

每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]

30

6

*/10

*

*

ls

每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls 命令。 ]

每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件

50

7

*

*

*

root

run-parts

/etc/cron.daily [

註:run-parts參數表示,執行後面目錄中的所有可執行文件。 ]

6、 新增調度任務

新增調度任務可用兩種方法:

1)、在命令行輸入: crontab -e 然後添加相應的任務,wq存檔退出。

2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。

7、 查看調度任務

crontab -l //列出當前的所有調度任務

crontab -l -u jp

//列出用戶jp的所有調度任務

8、 刪除任務調度工作

crontab -r //刪除所有任務調度工作

9、 任務調度執行結果的轉向

例1:每天5:30執行ls命令,並把結果輸出到/jp/test文件中

30 5 * * * ls /jp/test

21

註:21 表示執行結果及錯誤信息。

編輯/etc/crontab 文件配置cron

cron服務每分鐘不僅要讀一次/var/spool/cron內的所有文件,還需要讀一次

/etc/crontab,因此我們配置這個文件也能運用cron服務做一些事情。

用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統的任務。此文件的文件格式是:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root //如果出現錯誤,或者有數據輸出,數據作為郵件發給這個帳號

HOME=/ //使用者運行的路徑,這裡是根目錄

# run-parts

01

*

*

*

*

root run-parts

/etc/cron.hourly

//每小時執行/etc/cron.hourly內的腳本

  02

4

*

*

*

root run-parts

/etc/cron.daily

//每天執行/etc/cron.daily內的腳本

22

4

*

*

root run-parts

/etc/cron.weekly

//每星期執行 /etc/cron.weekly內的腳本

42

4

1

*

*

root run-parts

/etc/cron.monthly

//每月去執行/etc/cron.monthly內的腳本

  大家注意」run-parts」這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是文件夾名了

例如:

1) 在命令行輸入: crontab -e 然後添加相應的任務,wq存檔退出。

2)直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務

11 2 21 10 * rm -rf /mnt/fb

如何在linux下調試PHP

你的代碼最好寫成下面形式

htmlhead/head

body

?php

echo “hello world!\n”;!-最好加個空格,編程序要有好習慣–

?

/body/html

不出結果的原因應該是因為php文件需要URL連接,應該查看你的文件放置的位置是否正確

linux下怎麼測試php

安裝apache,啟動服務,把文件放入到/var/www目錄下,用瀏覽器開始調試吧

linux下怎麼打開php調試模式

你用phpinfo()函數

看一下你的php.ini存的位置,然後找開編輯一下

就行了

別忘了重啟apache

答題不易,互相理解,您的採納是我前進的動力,

如果我的回答沒能幫助您,請繼續追問。您也可以向我們團隊發出請求,會有更專業的人來為您解答!

您的追問、採納,是我前進的動力,祝天天開心。

怎麼在linux伺服器上配置php環境

建議多使用百度搜索,網上這樣的帖子特別多。

Linux的分支比較大,不過常使用的也就Centos和Ubuntu。下面我貼出來在Centos上面搭建php環境的方法,命令有所不同,不過差異不大。

安裝apache:

yum install httpd httpd-devel

啟動apache:

/etc/init.d/httpd start

此時輸入伺服器的IP地址,應該看到apache的服務頁面,埠不用輸,apache默認就是使用80埠

安裝mysql:

yum install mysql mysql-server

啟動mysql:

/etc/init.d/mysqld start

安裝php

yum install php php-devel

重啟apache使php生效

/etc/init.d/httpd restart

此時可以在目錄:/var/www/html/下建立一個PHP文件

代碼:

?php phpinfo(); ?

然後訪問這個文件,就能看到PHP的一些信息,php.ini配置文件的路徑可以在這個頁面上看到

安裝php的擴展

yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc

安裝完擴展之後需要再次重啟apache

/etc/init.d/httpd restart

測試mysql是否鏈接成功的php代碼

?php

$con = mysql_connect(“10.0.@.@@”,”@@”,”@@”);

if (!$con)

{

die(‘Could not connect: ‘ . mysql_error());

}

mysql_select_db(“mydb”, $con);

$result = mysql_query(“SELECT * FROM sys_user”);

while($row = mysql_fetch_array($result))

{

echo $row[‘UserName’] . ” ” . $row[‘PassWord’] . ” ” . $row[‘id’];

echo “br /”;

}

mysql_close($con);

?

可以把上面的代碼傳入目錄/var/www/html/

就可以看到執行情況

原創文章,作者:UNFC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146797.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UNFC的頭像UNFC
上一篇 2024-10-31 15:32
下一篇 2024-10-31 15:32

相關推薦

發表回復

登錄後才能評論