A. php 執行不了shell腳本
這個問題個人覺得似乎和代碼的運行環境有關。
因為您的環境是freebsd。他是分用戶許可權的。
你在終端php執行shell腳本時,用的是相應用戶的配置環境和讀取執行許可權。若在網頁上,那麼默認是apache用戶來執行。那麼若有些命令的許可權是744或有些目錄是rwx------,那麼可能就會有問題。
最好,能把腳本貼出來,好供大家分析。
B. php 執行 shell 命令,許可權不足,怎麼辦
換其他方式吧,php是www用戶去訪問的,可以執行shell的話,不安全
C. php執行shell腳本,為什麼執行不了
直接執行shell腳本沒有許可權問題,因為一般你也是root登陸的。但是使用php執行就會存在。這里你要先確定使用shell腳本操作的文件或者文件夾是否開啟777許可權
D. PHP執行shell命令的問題
在Windows平台下安裝PHP後,在使用PHP的exec、shell_exec等函數時,經常會遇到報錯:unable to fork...,這實際上是因為PHP對cmd.exe沒有足夠的許可權引起的。
解決方法:為C:\Windows\System32\cmd.exe(系統不是安裝在C盤請相應更改)添加IUSR_ComputerName (ComputerName是你的計算機名稱)用戶的讀取、運行許可權,因為exec和shell_exec這兩個函數實際上是調用了cmd.exe來執行其它的程序。
E. php執行shell命令許可權問題
這個是許可權不足的問題
為apache添加一個用戶 例如apache
visudo
F. PHP調用shell命令,怎麼實現,我為什麼shell_exec的返回值總是null呢
是許可權問題,php默認的用戶沒有許可權執行shell
G. 想讓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的應用程序才能夠正常運行。
H. 利用php利用root許可權執行shell腳本必須進行以下幾個步驟
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
intmain()
{
uid_tuid,euid;
uid=getuid();
euid=geteuid();
//printf("myuid:%u ",getuid());
//printf("myeuid:%u ",geteuid());
if(setreuid(euid,uid))
perror("setreuid");
//printf("aftersetreuiid:%u ",getuid());
//printf("aftersetreuideuid:%u ",geteuid());
system("/home/houqingdong/myshell/mkdir.sh/home/hou_test");
return0;
}
I. 如何通過php頁面執行shell腳本
如果php允許那麼大的許可權,可以用 exec 函數, 不過這樣做很危險。
換個思考方式, 可以php向某個文件寫入一個指定數據, shell腳本定時監測這個文件,然後判斷內容,再執行指定腳本