導航:首頁 > 編程語言 > php顯示shell

php顯示shell

發布時間:2023-09-25 22:33:12

A. 如何讓php執行shell

php給我們提供了system(),exec(),passthru()這三個函數來調用外部的命令.
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼

例子:system("/usr/local/bin/webalizer/webalizer");

B. 問一下,安裝php擴展,php-shell的具體是怎麼實現php連接遠程主機並操作了謝謝

一樓真是天真,直接復制粘貼我的原提問答案,都說了,那不是我使用的方法。
我親自來回答你吧~
過程略有些繁瑣,涉及安裝到許多東西。但裝好了可以自由使用遠程連接。
安裝部分:
檢查:
1 vi /etc/ssh/sshd_config
PasswordAuthentication yes //保證這行內容是yes
2 關閉selinux

安裝
1 yum -y install php-devel
2編譯安裝libssh2-1.2.8.tar.gz.gz ,教程網上找,直接解壓編譯即可
3yum -y install php-pear
4 pecl install -f ssh2
5 vi /etc/php.ini
添加一行:extension=ssh2.so
6重啟apache
安裝的詳細部分,可以網上度娘或谷姐

實現部分,其實是,安裝了這個擴展就可以使用Php遠程連接的自有函數了,舉個例子你就明白
logtest.php:
<?php
$connection = ssh2_connect("192.168.1.77",22);
if (ssh2_auth_password($connection,"root","000000")) {
echo "Authentication Successful!\n";
} else {
die('Authentication Failed...');
}
?>
ssh2_connect函數寫入目的主機的ip和埠,ssh2_auth_password輸入主機用戶名和密碼

下面是使用舉例:
<?php
if($ssh = ssh2_connect('192.168.1.77', 22)) {
if(ssh2_auth_password($ssh, 'root', '000000')) {
$stream = ssh2_exec($ssh, 'df -h | cut -c 40-42');
stream_set_blocking($stream, true);
$data = '';
while($buffer = fread($stream, 4096)) {
$data .= $buffer;
}
fclose($stream);
echo $data; // 返回的信息
}
}
?>
以上函數,向目的主機發送shell命令:df -h | cut -c 40-42
返回了需要的信息。

希望能幫到你

C. 如何將PHP作為Shell腳本語言使用

我們都知道,PHP是一種非常好的動態網頁開發語言(速度飛快,開發周期短……)。但是只有很少數的人意識到PHP也可以很好的作為編寫Shell腳本的語言,當PHP作為編寫Shell腳本的語言時,他並沒有Perl或者Bash那麼強大,但是他卻有著很好的優勢,特別是對於我這種熟悉PHP但是不怎麼熟悉Perl的人。
要使用PHP作為Shell腳本語言,你必須將PHP作為二進制的CGI編譯,而不是Apache模式;編譯成為二進制CGI模式運行的PHP有一些安全性的問題,關於解決的方法可以參見PHP手冊(http://www.php.net)。
一開始你可能會對於編寫Shell腳本感到不適應,但是會慢慢好起來的:將PHP作為一般的動態網頁編寫語言和作為Shell腳本語言的唯一不同就在於一個Shell腳本需要在第一行生命解釋本腳本的程序路徑:
#!/usr/local/bin/php -q
我們在PHP執行文件後面加入了參數「-1」,這樣子PHP就不會輸出HTTP Header(如果仍需要作為Web的動態網頁,那麼你需要自己使用header函數輸出HTTP Header)。當然,在Shell腳本的裡面你還是需要使用PHP的開始和結束標記:

現在讓我們看一個例子,以便於更好的了解用PHP作為Shell腳本語言的使用:
#!/usr/local/bin/php -q
print("Hello, world!\n");
?>
上面這個程序會簡單的輸出「Hello, world!」到顯示器上。
一、傳遞Shell腳本運行參數給PHP:
作為一個Shell腳本,經常會在運行程序時候加入一些參數,PHP作為Shell腳本時有一個內嵌的數組「$argv」,使用「$argv」數組可以很方便的讀取Shell腳本運行時候的參數(「$argv[1]」對應的是第一個參數,「$argv[2]」對應的是第二個參數,依此類推)。比如下面這個程序:
#!/usr/local/bin/php -q
$first_name = $argv[1];
$last_name = $argv[2];
printf("Hello, %s %s! How are you today?\n", $first_name, $last_name);
?> 具體詳細的你可以向我一樣在後盾人多看看就明白了,希望能幫到你,努力(๑>؂<๑)

D. php 無法執行shell腳本最有效的方法

要確定的燃此是,不是腳本本身的問題,文件目錄許可權之類的都好了的

1、首先看你的nginx用戶叫啥名字  lsof -i:80

2、執行敬磨visudo命令

3、給www用戶添加root許可權並且不需要皮稿迅密碼

這樣就可以訪問了,這個只是解決無許可權訪問的問題,必須加sudo。

閱讀全文

與php顯示shell相關的資料

熱點內容
linux非阻塞c非阻塞 瀏覽:219
可愛的程序員花絮 瀏覽:762
php網路驗證系統 瀏覽:914
iphone7p相冊怎能加密 瀏覽:177
flutterbuild文件夾 瀏覽:942
織夢分類信息源碼 瀏覽:357
大批程序員失業 瀏覽:812
python表白代碼發微信 瀏覽:901
大師帶你入門python 瀏覽:389
小程序示例源碼 瀏覽:844
python批量自動填寫網頁 瀏覽:787
aws新加坡雲伺服器付費 瀏覽:655
牛股鋪捉器指標源碼 瀏覽:448
城市伺服器在什麼地方 瀏覽:768
朱紹侯中國古代史pdf 瀏覽:115
伺服器競爭優勢怎麼寫 瀏覽:901
銀聯各app綁卡有獎在哪裡 瀏覽:930
什麼是伺服器與主機 瀏覽:758
單片機與計算機通信 瀏覽:457
恩智浦單片機 瀏覽:414