php執行shell
『壹』 php去執行shell命令,exec('tail -f xxx.log > 1.log'), 但是執行完了,沒有生成對應的1.log
不是不行,是php執行這個命令的許可權不夠。你直接在linux執行是以登陸賬號的身份去執行,php是以apache的身份去執行,可以打開/var/log/httpd/error.log錯誤日誌看看www.hi-docs.com/linux.html
『貳』 請教知道的老師,php執行這個shell_exec安全嗎
安全不安全取決於 ffmpeg,如果它帶毒或木馬,那就不安全,畢竟你調用它把控制權交給了它。
『叄』 想讓PHP執行shell腳本,如何安裝apache和PHP
一、安裝PHP
-------------------------------------------------------
第1步:下載
下載PHP安裝程序,並解壓縮。(下載頁面為http://www.php.net/ downloads.php,下載地址為http://www.php.net/get/php-5.2.1-Win32.zip/from/a/mirror)當前最新版本是php-5.2.1。
第2步:安裝
把下載下來的PHP安裝包解壓到你的C盤根目錄(這里選擇C根目錄盤是為了以後修改調試方便用,你也可以選擇不同的目錄),解壓後應該能得到一個類似於"php-5.1.2-Win32"的目錄,把目錄名稱改成"PHP"。
第3步:添加php.ini到系統目錄
打開剛才解壓後生成的PHP目錄,找到PHP配置文件「php.ini-dist」,把它改名為「php.ini」,然後復制到系統目錄中。如果操作系統安裝在C盤,那麼系統目錄在 Windows XP下就是"C:\windows",在Windows 2000下是"C:\winnt")。
第4步:設置環境變數
設置以下環境變數:PHP_HOME=C:\PHP;C:\PHP\ext,保存退出後。
第5步:修改PHP配置文件
修改php.ini中的register_globals=on,這樣在取得請求表單時可以直接使用表單名稱$name,而不用使用$_REQUEST["name"]。
二、配置Apache支持PHP
-------------------------------------------------------
第1步:打開Apache 2 的配置文件
打開Apache 2的配置文件「http.conf」,可以通過「開始->程序->Apache->configure Apache server->edit the Apache httpd.conf configuration file」打開該配置文件。默認情況下,該文件存放在C:\Program Files\Apache Group\Apache2\conf\httpd.conf,我們也可以通過「我的電腦」直接打開該文件進行編輯。
第2步:配置Apache載入PHP模塊
在「http.conf」文件中找到LoadMole字樣的信息,然後在LoadMole段信息的最下方添加一行信息:
LoadMole php5_mole C:/PHP/php5apache2_2.dll
這里要解釋一下,「php5_mole」是模塊的名稱,後面跟的路徑則隨PHP安裝目錄而變,這三個字串之間是用空格分隔的。
第3步:使Apache解析PHP文件
接下來再查找addtype字樣的信息,在addtype信息段的最下方添加如下幾行信息:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5
這時就可以在Apache下的htdocs目錄中創建一個php測試文件:
<?
phpinfo();
?>
三、配置PHP支持Mysql
-------------------------------------------------------
第1步:設置 php.ini中的extension_dir = "C:/php/ext"。
第2步:將「C:\PHP\libmysql.dll」復制到「C:\WINDOWS\system32」。
第3步:將「C:\PHP\ext\php_mysql.dll」復制到「C:\WINDOWS\system32」。
第4步:修改C:\WINDOWS\下的php.ini文件,去掉extension=php_mysql.dll之前的「;」。
這樣在PHP的程序里就可以使用MySQL擴展庫的函數了,即PHP+MySQL的應用程序才能夠正常運行。
『肆』 如何通過php頁面執行shell腳本
exec裡面,a.bash前面有sh這個bin文件么,就把bin文件路勁加在a.sh前。try下
『伍』 PHP 使用curl 執行遠程伺服器的一個shell腳本
可以啊,curl可以,http也可以啊
首先
假如遠程伺服器有這些文件php腳本和shell腳本(分析數據的腳本)是在目標伺服器上
a.php
data.php
data.sh
然後在a腳本裡面運行shell命令,exec("cd~/php/&&php./data.php&");
這樣php就會運行data.php可以在data.php裡面在運行sh腳本
或者直接在a.php裡面運行sh腳本
然後把計算好的數據存入資料庫
這樣你就可以用http或者curl去激活a.php.然後分析數據的腳本也就運行了
大概了解沒?
大哥你看明白沒啊 是要給遠程發送shell命令不是本地執行好吧?
遠程動態輸入命令?貌似不太安全啊~!
可以這樣。a.php?cmd=cd~/&&shdata.sh
然後a.php裡面這樣寫
exec("{$_GET["cmd"]}");
太危險,相當不推薦
可以做好命令,然後去執行
a.php?cmd=a
然後a.php裡面這樣寫
switch($_GET["cmd"]}){
case"a":
exec("cd~/php/&&php./data.php&");
break;
case"b":
exec("cd~/php/&&php./xxxx.php&");
break;
}
『陸』 如何在PHP WEB頁面點擊鏈接執行SHELL腳本
是沒有生成文件還是生成了文件不能下載。
如果是生成了文件不能下載。/usr/local/bin/php /www/xxxx/exllfile.php
生成exl文件後,有設置header與echo 文件內容嗎
例如生成的文件名是1.xls。
因為是需要通知瀏覽器下載的,需要設置header。
header('content-type:application/octet-stream');
header('content-disposition:attachment;filename=1.xls');
header('content-length:'.filesize('1.xls'));
readfile('1.xls');
『柒』 linux 中php執行shell_exec函數
shell_exec("/usr/local/bin/pdf2swf /home/xiazai/03.pdf -o /home/xiazai/1.swf; /usr/local/bin/jpeg2swf /home/xiazai/2.jpg -o /home/xiazai/2.swf ");
每條命令後加上分號
『捌』 我想用php執行shell語句:sudo curl --request POST --data-
PHP中有這種函數可以執行shell的函數,如system(), exec(), shell_exec()等等,給你個鏈接,你可以自己去看 http://php.net/manual/zh/function.system.php
至於curl , http://php.net/manual/zh/book.curl.php
『玖』 php執行shell腳本,為什麼執行不了
直接執行shell腳本沒有許可權問題,因為一般你也是root登陸的。但是使用php執行就會存在。這里你要先確定使用shell腳本操作的文件或者文件夾是否開啟777許可權