在 Linux 下執行 php 腳本時通常是可以使用以下命令:
1
#/usr/local/php/bin/php test.php
為簡化輸入可把此php執行程序 到系統命令目錄下:
1
#cp /usr/local/php/bin/php /usr/sbin/
驗證:輸入以下命令,如正確獲取 php 版本,說明操作成功。
1
#php -v
這樣,以後再執行PHP腳本時可直接採用以下輸入方式即可。
1
#php a.php
2. 怎麼在linux運行php文件
1、打開我們的linux命令行,准備好。
2、找到php的安裝目錄,主要是找到linux環境下,php可執行文件的目錄。如圖所示。筆者的目錄為/opt/lampp/bin/php,將此目錄記下,備用。
3、找到要運行的php文件所在的目錄,隨便寫點php代碼就可以,在此筆者已經准備好。/opt/lampp/htdocs/wechat/xjtest-web_browser/pcntl_test.php,將此目錄記下,接下來就要正式開始運行了。
4、打開剛剛第一步打開的linux命令行,輸入/opt/lampp/bin/php /opt/lampp/htdocs/wechat/xjtest-web_browser/pcntl_test.php(即依次輸入剛剛的兩個目錄)注意兩個目錄中間有空格。
5、按下回車,可以看到,php文件已經正確執行了。
3. php上如何運行linux命令
你想問得是php如何執行shell命令把?
可以用system(),exec(),passthru()這三個函數實現
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system("ls -al");
【使用之前要在php.ini中把safe_mode關閉】
4. php如何實現隨意執行linux命令(任意讀寫,刪除等)
顯然,你要靠php操作其范圍外的文件或目錄是不可能的,這是因為php的運行身份是apache,因此沒辦法操作root許可權的文件或目錄。 我們採取的辦法是,用VC寫個服務,該服務的運行身份是root,也就是給其最大許可權,php調用該服務做操作。
當然還有另外的辦法,這是我的猜測,你不妨試看看,
1、把php的運行用戶改為root,這樣可能會存在一定的風險。
2、在apache裡面指定可以對某個root許可權的文件或目錄做操作,該辦法沒試驗過。如果你能試驗成功的話,希望反饋一下哦。
5. linux命令怎麼運行php文件
在安裝完PHP和Apache2後,我們需要安裝PHP命令行解釋器。
# apt-get install php5-cli [Debian 及類似系統]
# yum install php-cli [CentOS 及類似系統]
接下來我們通常要做的是,在/var/www/html(這是 Apache2 在大多數發行版中的工作目錄)這個位置創建一個內容為 <?php phpinfo(); ?>,名為 infophp.php 的文件來測試(PHP是否安裝正確),執行以下命令即可。
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
然後,將瀏覽器訪問 http://127.0.0.1/infophp.php ,這將會在網路瀏覽器中打開該文件。
不需要任何瀏覽器,在Linux終端中也可以獲得相同的結果。在Linux命令行中執行/var/www/html/infophp.php,如:
# php -f /var/www/html/infophp.php
由於輸出結果太大,我們可以通過管道將上述輸出結果輸送給 less 命令,這樣就可以一次輸出一屏了,命令如下:
# php -f /var/www/html/infophp.php | less
檢查所有PHP信息
這里,『-f『選項解析並執行命令後跟隨的文件。
6. 如何通過PHP執行linux命令
你想問得是php如何執行shell命令把?
可以用system(),exec(),passthru()這三個函數實現
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system("ls -al");
【使用之前要在php.ini中把safe_mode關閉】
7. PHP執行linux系統命令的常用函數使用說明
system函數
說明:執行外部程序並顯示輸出資料。
語法:string
system(string
command,
int
[return_var]);
返回值:
字元串
詳細介紹:
本函數就像是
C
語中的函數
system(),用來執行指令,並輸出結果。若是
return_var
參數存在,則執行
command
之後的狀態會填入
return_var
中。同樣值得注意的是若需要處理用戶輸入的資料,而又要防止用戶耍花招破解系統,則可以使用
EscapeShellCmd()。若
PHP
以模塊式的執行,本函數會在每一行輸出後自動更新
Web
伺服器的輸出緩沖暫存區。若需要完整的返回字元串,且不想經過不必要的其它中間的輸出界面,可以使用
PassThru()。
實例代碼:
復制代碼
代碼如下:
<
?php
$last_line
=
system('ls',
$retval);
echo
'Last
line
of
the
output:
'
.
$last_line;
echo
'<hr
/>Return
value:
'
.
$retval;
?>
exec函數
說明:執行外部程序。
語法:string
exec(string
command,
string
[array],
int
[return_var]);
返回值:
字元串
詳細介紹:
本函數執行輸入
command
的外部程序或外部指令。它的返回字元串只是外部程序執行後返回的最後一行;若需要完整的返回字元串,可以使用
PassThru()
這個函數。
要是參數
array
存在,command
會將
array
加到參數中執行,若不欲
array
被處理,可以在執行
exec()
之前呼叫
unset()。若是
return_var
跟
array
二個參數都存在,則執行
command
之後的狀態會填入
return_var
中。
值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用
EscapeShellCmd()。
實例代碼:
復制代碼
代碼如下:
<
?php
echo
exec('whoami');
?>
popen函數
說明:打開文件。
語法:int
popen(string
command,
string
mode);
返回值:
整數
詳細介紹:
本函數執行指令開檔,而該文件是用管道方式處理的文件。用本函數打開的文件只能是單向的
(只能讀或只能寫),而且一定要用
pclose()
關閉。在文件操作上可使用
fgets()、fgetss()
與
fputs()。若是開檔發生錯誤,返回
false
值。
實例代碼:
復制代碼
代碼如下:
<
?
$fp
=
popen("/bin/ls","r"
);
?>
PHP監控linux伺服器負載
在實際項目的應用中,我們由於各種條件的現實,利用PHP來實現伺服器負載監控將是一種更為靈活的方式。
由於Web
Server以及PHP的實現方式所限,我們在現實環境中很難利用PHP去調用一些Linux中需要root許可權才能執行的程序,對此,我從網上找到另外一種方式來繞開這個限制。首先先寫個c程序中轉調用系統命令,然後用PHP去執行此c程序。
c程序
首先寫個c文件,比如/usr/local/ismole/w.c
復制代碼
代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<systypes.h>
#include<unistd.h>
int
main()
{
uid_t
uid
,euid;
//note
獲得當前的uid
uid
=
getuid();
//note
獲得當前euid
euid
=
geteuid();
//note
交換這兩個id
if(setreuid(euid,
uid))
perror("setreuid");
//note
執行將要執行linux系統命令
system("/usr/bin/w");
return0;
}
編譯該文件gcc
-o
w
-Wall
w.c,這時會在當前目錄下生成程序w。改變此程序的屬主chmod
u+s
./w。
PHP執行
文件內容如下,放在web目錄下,訪問就會輸出當前的伺服器負載情況。
復制代碼
代碼如下:
<?php
/*
More
&
Original
PHP
Framwork
Copyright
(c)
2007
-
2008
IsMole
Inc.
$Id:
serverMonitor.php
408
2008-12-02
08:07:40Z
kimi
$
*/
//note
key的驗證過程
if($key
!=
$authkey)
{
//
exit('key
error);
}
$last_line
=
exec('/usr/local/ismole/w',
$retval);
$returnArray
=
explode("load
average:
",
$retval[0]);
$returnString
=
$returnArray[1];
echo
$returnString;
按照上面的實例,我們可以用PHP來做任何我們想執行的Linux系統命令,SVN更新,伺服器監控,備份,恢復,日常維護等等。
8. PHP怎麼調用Linux命令終端
首先先要給大家介紹PHP執行linux系統命令的幾個基本函數。
system函數
說明:執行外部程序並顯示輸出資料。
語法:string system(string command, int [return_var]);
返回值: 字元串
詳細介紹:
本函數就像是 C 語中的函數 system(),用來執行指令,並輸出結果。若是 return_var 參數存在,則執行 command 之後的狀態會填入 return_var 中。同樣值得注意的是若需要處理用戶輸入的資料,而又要防止用戶耍花招破解系統,則可以使用 EscapeShellCmd()。若 PHP 以模塊式的執行,本函數會在每一行輸出後自動更新 Web 伺服器的輸出緩沖暫存區。若需要完整的返回字元串,且不想經過不必要的其它中間的輸出界面,可以使用 PassThru()。
實例代碼:
< ?php
$last_line = system('ls', $retval);
echo 'Last line of the output: ' . $last_line;
echo '<hr/>Return value: ' . $retval;
?>
exec函數
說明:執行外部程序。
語法:string exec(string command, string [array], int [return_var]);
返回值: 字元串
詳細介紹:
本函數執行輸入 command 的外部程序或外部指令。它的返回字元串只是外部程序執行後返回的最後一行;若需要完整的返回字元串,可以使用 PassThru() 這個函數。
要是參數 array 存在,command 會將 array 加到參數中執行,若不欲 array 被處理,可以在執行 exec() 之前呼叫 unset()。若是 return_var 跟 array 二個參數都存在,則執行 command 之後的狀態會填入 return_var 中。
值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。
實例代碼:
< ?php
echo exec('whoami');
?>
popen函數
說明:打開文件。
語法:int popen(string command, string mode);
返回值: 整數
詳細介紹:
本函數執行指令開檔,而該文件是用管道方式處理的文件。用本函數打開的文件只能是單向的 (只能讀或只能寫),而且一定要用 pclose() 關閉。在文件操作上可使用 fgets()、fgetss() 與 fputs()。若是開檔發生錯誤,返回 false 值。
實例代碼:
< ?
$fp = popen( "/bin/ls", "r" );
?>
通過上述函數,PHP可以執行linux系統的shell命令。
9. 如何通過Linux命令行使用和運行PHP腳本
1.用php -q 文件名.php 方式把php程序當shell程序來用,
2.用php -s把自己的php程序顯示有語法高亮色彩的html源文件。這樣是不是很省心?
3.利用php的odbc功能可以在shell命令中對資料庫進行操作。
#0 6 * * * /usr/local/bin/php /home/web/do/index.php
4.查看擴展庫
/usr/local/php/bin/php -m
5.檢查php.ini配置是否正確
/usr/local/php/bin/php -v
6.讓php運行指定文件
php my_script.php
php -f my_script.php
7.在命令行直接運行 PHP 代碼。
php -r 『print_r(get_defined_constants());』
php -r 『phpinfo();』
8.用該參數,您可以指定一個放置 php.ini 文件的目錄,或者直接指定一個自定義的 INI 文件
php -c /custom/directory/custom-file.ini my_script.php
9.顯示除去了注釋和空格的源代碼。
php -w a.php
10.php -i
該命令行參數會調用 phpinfo() 函數,並列印出結果。
10. linux怎麼查看php啟動命令
啟動php-fpm。
/usr/local/php5/sbin/php-fpm /usr/local/php5/為php-fpm的安裝地址。
/usr/local/php-5.6.3/sbin/php-fpm -R # 如果報錯顯示不能用root用戶啟動,則可以考慮使用 -R命令。
查看是否啟動成功:
netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
或者使用如下命令,查看是否9000埠被php-fpm佔用:
netstat -tunpl | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2124/php-fpm。