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权限