如何在PHP WEB页面点击链接执行SHELL脚本
我现在做法是在WEB页面做了个链接,链到getexl.php,如下:
WEB调用代码:
生成EXL
getexl.php代码:
system("/usr/local/bin/php /www/xxxx/exllfile.php");//生成EXL程序
?>
点链接后IE下边进度条非常慢,执行不了。 /www/xxxx/exllfile.php这个程序一点问题没有,LINUX下运行只有几秒钟,这是什么问题?
回复讨论(解决方案)
没有权限了吧
需要什么权限?我目录和文件都已经是777了
需要服务器对WEB执行的权限配置?
需要服务器设置对WEB执行的权限配置?
点链接后IE下边进度条非常慢,执行不了。
是没有生成文件还是生成了文件不能下载。
如果是生成了文件不能下载。/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');
是执行不了system里的php,system("/usr/local/bin/php /www/xxxx/exllfile.php");内容只有一句echo也执行不了
是否是php关闭了system函数。 disabled_function参数
disabled_function参数是php.ini里配吗?
是把这个参数设成on就可以吧,这样disable_functions = on?
是把这个参数设成on就可以吧,这样disable_functions = on?
不是,这个位置是填写想禁用的方法。例如:
disable_functions = system,exec,shell_exec,passthru,proc_open,proc_close, proc_get_status,checkdnsrr,getmxrr,getservbyname,getservbyport, syslog,popen,show_source,highlight_file,dl,socket_listen,socket_create,socket_bind,socket_accept, socket_connect, stream_socket_server, stream_socket_accept,stream_socket_client,ftp_connect, ftp_login,ftp_pasv,ftp_get,sys_getloadavg,disk_total_space, disk_free_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
那打开PHP的system函数应该怎么设呢?
那打开PHP的system函数应该怎么设呢?
把 system 函数从 配置文件中 disable_functions 段中删除
检查安全模式。。。。
另外,生成exl也不用这样吧?
已经解决,谢谢大家!
上一篇: 2PHP缓存种